Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [inny] formularz z wysyłaniem do MySQL
raszbu
post 23.03.2011, 14:22:32
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 23.03.2011

Ostrzeżenie: (0%)
-----


Witam,

Prowadzę stronę z linkami do transmisji sportowych ( http://transmisje.org.pl/ ). Chciałbym do niej dodać formularz dzięki któremu użytkownicy będą mogli dodawać swoje transmisje. Przy dużej pomocy google udało mi się stworzyć coś takiego: http://www.raszbu2.unixstorm.org/test/test2.php

Kod źródłowy prezentuje się tak:

  1. <html>
  2. <head>
  3. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
  4. </head>
  5. <?php
  6. // nawiazujemy polaczenie
  7. $connection = @mysql_connect('xxxxxx', 'raszbu2_test2', 'xxxxxx')
  8. // w przypadku niepowodznie wyświetlamy komunikat
  9. or die('Brak połączenia z serwerem MySQL.<br />Błąd: '.mysql_error());
  10. // połączenie nawiązane ;-)
  11. echo "Udało się połączyć z serwerem!<br />";
  12. // nawiązujemy połączenie z bazą danych
  13. $db = @mysql_select_db('raszbu2_test2', $connection)
  14. // w przypadku niepowodzenia wyświetlamy komunikat
  15. or die('Nie mogę połączyć się z bazą danych<br />Błąd: '.mysql_error());
  16. // połączenie nawiązane ;-)
  17. echo "Udało się połączyć z bazą dancych!";
  18. // zamykamy połączenie
  19. mysql_close($connection);
  20.  
  21. mysql_query("insert into nazwa_tabeli (pole1, pole2, pole3) values ('".$_POST['pole1']."','".$_POST['pole2']."', '".$_POST['pole1']."');");
  22. ?>
  23.  
  24.  
  25.  
  26. <table>
  27. <form action="" method="post">
  28. <tr>
  29. <td><b>Data:</b></td>
  30. <td><input type="text" name="formName"/></td>
  31. </tr>
  32.  
  33. <tr>
  34. <td><b>Godzina:</b></td>
  35. <td><input type="text" name="formNazwa"/></td>
  36. </tr>
  37.  
  38. <tr>
  39. <td><b>Nazwa:</b></td>
  40. <td><input type="text" name="formText"/></td>
  41. </tr>
  42.  
  43. <tr>
  44. <td><b>Link:</b></td>
  45. <td><textarea name="text"></textarea></td>
  46. </tr>
  47.  
  48. <tr>
  49. <td><b>Nazwa kanału:</b></td>
  50. <td><textarea name="formText"></textarea></td>
  51. </tr>
  52.  
  53. <tr>
  54. <td>&nbsp;</td>
  55. <td><input type="submit" name="submit" value="Wyślij formularz"/></td>
  56. </tr>
  57. </form>
  58. </table>
  59.  
  60.  
  61. </html>



Problem polega na tym że nic się nie dzieje w bazie danych - jest pusta mimo iż wysyłam do niej próbne treści.
Proszę żeby ktoś poprawił mi ten kod aby działał.

Ten post edytował raszbu 23.03.2011, 14:50:56
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 14)
Daiquiri
post 23.03.2011, 21:36:35
Post #2





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Przenoszę do przedszkola. Usuń @ w kodzie tak na początek.
Go to the top of the page
+Quote Post
marius94
post 23.03.2011, 21:52:41
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 23.03.2011

Ostrzeżenie: (0%)
-----


w 19 linijce masz zamkniecie polaczenia MySQL, wiec sie nie wykonuje
w 27 dodaj adres pliku
Go to the top of the page
+Quote Post
raszbu
post 24.03.2011, 00:15:19
Post #4





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 23.03.2011

Ostrzeżenie: (0%)
-----


Rozdzieliłem stronę z formularzem od strony ze skryptem php - wyczytałem że jest to bardziej bezpieczne.

Wyszło coś takiego:

test3.html
  1. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
  2. </head>
  3.  
  4. <form action="skrypt_dodaj.php" method="post">
  5. <tr>
  6. <td><b>Data:</b></td>
  7. <td><input type="text" name="data"/></td>
  8. </tr>
  9.  
  10. <tr>
  11. <td><b>Godzina:</b></td>
  12. <td><input type="text" name="godzina"/></td>
  13. </tr>
  14.  
  15. <tr>
  16. <td><b>Nazwa:</b></td>
  17. <td><input type="text" name="nazwa"/></td>
  18. </tr>
  19.  
  20. <tr>
  21. <td><b>Link:</b></td>
  22. <td><textarea name="link"></textarea></td>
  23. </tr>
  24.  
  25. <tr>
  26. <td><b>Nazwa kanału:</b></td>
  27. <td><textarea name="nazwa_kanalu"></textarea></td>
  28. </tr>
  29.  
  30. <tr>
  31. <td>&nbsp;</td>
  32. <td><input type="submit" value="Wyślij formularz"/></td> <!-- nazwę przycisku usunąłem, bo nie trzeba go nawet nazywać (chyba że potrzebujesz tego np. do JS) -->
  33. </tr>
  34. </form>
  35.  
  36. </html>



skrypt_dodaj.php
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
  4. </head>
  5.  
  6. <?php
  7. $mysqli = new mysqli( 'XX.XXX.XXX.XXX,'raszbu2_test2','xxxxx','raszbu2_test2');
  8. if($mysqli) echo "udało się połączyć z serwerem mysqli";
  9. if( isset($_POST['data']) && isset($_POST['godzina']) && isset($_POST['nazwa']) && isset($_POST['link']) && isset($_POST['nazwa_kanalu']))
  10. {
  11. $mysqli->query("insert into nazwa_tabeli (pole1, pole2, pole3, pole4, pole5) values ('".$_POST['data']."','".$_POST['godzina']."', '".$_POST['nazwa']."', '".$_POST['link']."', '".$_POST['nazwa_kanalu']."');");
  12. }
  13. else
  14. echo "nie dobrze - skrypt nie otrzymał danych od użytkownika!!!";
  15. $mysqli->close();
  16. ?>


Problem teraz wygląda tak że nie tworzy się nic w bazie danych - jest całkowicie pusta.

http://www.raszbu2.unixstorm.org/test/test3.html

Jak widać po linku serwer www znajduje się w firmie: http://www.unixstorm.org/ pakiet: biznes
Go to the top of the page
+Quote Post
Daiquiri
post 24.03.2011, 00:18:48
Post #5





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Chyba coś poknociłeś w 7 linijce z przecinkami i apostrofami w $mysqli; smile.gif

POSTY mają dane?
Powód edycji: [Daiquiri]:
Go to the top of the page
+Quote Post
marius94
post 24.03.2011, 00:36:30
Post #6





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 23.03.2011

Ostrzeżenie: (0%)
-----


nie ma apostrofu konczacego po podanym hoscie.

zrob sobie jeszcze przed polaczeniem z baza

  1. print_r($_POST);


i sprawdz czy w ogole te dane dochodza. sprobuj tez wywalic na chwile linijki 9 i 10 i wtedy sprawdz czy sie cos dodaje do bazy. sprobuj tez wyslac od razu jakies dane zamiast tych z POSTa


ps. dlaczego rozdzielenie formularza od strony ze skryptem jest bezpieczniejsze? mozna prosic o jakis link do tego? smile.gif
Go to the top of the page
+Quote Post
raszbu
post 24.03.2011, 14:21:38
Post #7





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 23.03.2011

Ostrzeżenie: (0%)
-----


Takie coś?:

  1. <html>
  2. <head>
  3. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
  4. </head>
  5.  
  6. <?php
  7.  
  8. $mysqli = new mysqli( 'host','raszbu2_test2','haslo','raszbu2_test2');
  9. if($mysqli) echo "udało się połączyć z serwerem mysqli";
  10. if( isset($_POST['data']) && isset($_POST['godzina']) && isset($_POST['nazwa']) && isset($_POST['link']) && isset($_POST['nazwa_kanalu']));
  11. {
  12. $mysqli->query("insert into nazwa_tabeli (pole1, pole2, pole3, pole4, pole5) values ('".$_POST['data']."','".$_POST['godzina']."', '".$_POST['nazwa']."', '".$_POST['link']."', '".$_POST['nazwa_kanalu']."');");
  13. }
  14. else
  15. echo "nie dobrze - skrypt nie otrzymał danych od użytkownika!!!";
  16. $mysqli->close();
  17. ?>



Ale w tedy wyskakuje taki błąd:
Kod
Parse error: syntax error, unexpected T_ELSE in /home/raszbu2/domains/raszbu2.unixstorm.org/public_html/test/skrypt_dodaj.php on line 14
Go to the top of the page
+Quote Post
melkorm
post 24.03.2011, 14:27:17
Post #8





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


//PARSER MODE ON
Kod
if( isset($_POST['data']) && isset($_POST['godzina']) && isset($_POST['nazwa']) && isset($_POST['link']) && isset($_POST['nazwa_kanalu'])); // średnik

//PARSER MODE OFF


--------------------
Go to the top of the page
+Quote Post
raszbu
post 24.03.2011, 15:21:21
Post #9





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 23.03.2011

Ostrzeżenie: (0%)
-----


Cytat(melkorm @ 24.03.2011, 14:27:17 ) *
//PARSER MODE ON
Kod
if( isset($_POST['data']) && isset($_POST['godzina']) && isset($_POST['nazwa']) && isset($_POST['link']) && isset($_POST['nazwa_kanalu'])); // średnik

//PARSER MODE OFF


Nie widzę różnicy pomiędzy kodem tym który podałeś a który był.
Go to the top of the page
+Quote Post
melkorm
post 24.03.2011, 15:40:42
Post #10





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


A komentarz widzisz? Który jasno i wyraźnie opisuje Twój błąd?


--------------------
Go to the top of the page
+Quote Post
raszbu
post 24.03.2011, 15:45:58
Post #11





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 23.03.2011

Ostrzeżenie: (0%)
-----


Cytat(melkorm @ 24.03.2011, 15:40:42 ) *
A komentarz widzisz? Który jasno i wyraźnie opisuje Twój błąd?


Nie
Go to the top of the page
+Quote Post
Daiquiri
post 24.03.2011, 16:28:41
Post #12





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Forum to nie parser. Średniki popraw!
Go to the top of the page
+Quote Post
raszbu
post 24.03.2011, 17:37:56
Post #13





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 23.03.2011

Ostrzeżenie: (0%)
-----


Dodałem ten średnik (wink.gif już i dalej nie działa.
Go to the top of the page
+Quote Post
melkorm
post 24.03.2011, 17:42:05
Post #14





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Eh, jednak bash ma w sobie coś racji ...
Cytat
<ivo> wiesz jaki jest najkrótszy żart informatyczny?
<J@R@$> ?
<ivo> programista php


Nie wkleję Tobie gotowca bo forum to nei parser jak już Daiquiri wspomniała.

Masz usunąć średnik który znajduje się na końcu linijki gdzie masz IF'a.

Ten post edytował melkorm 24.03.2011, 17:42:42


--------------------
Go to the top of the page
+Quote Post
raszbu
post 24.03.2011, 18:40:32
Post #15





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 23.03.2011

Ostrzeżenie: (0%)
-----


Średnik usunięty:

  1. <html>
  2. <head>
  3. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
  4. </head>
  5.  
  6. <?php
  7.  
  8. $mysqli = new mysqli('85.232.255.138','raszbu2_test2','ZKtvEqn9','raszbu2_test2');
  9. if($mysqli) echo "udało się połączyć z serwerem mysqli";
  10.  
  11. if( isset($_POST['data']) && isset($_POST['godzina']) && isset($_POST['nazwa']) && isset($_POST['link']) && isset($_POST['nazwa_kanalu']))
  12. {
  13. $mysqli->query("insert into nazwa_tabeli (pole1, pole2, pole3, pole4, pole5) values ('".$_POST['data']."','".$_POST['godzina']."', '".$_POST['nazwa']."', '".$_POST['link']."', '".$_POST['nazwa_kanalu']."');");
  14. }
  15. else
  16. echo "nie dobrze - skrypt nie otrzymał danych od użytkownika!!!";
  17. $mysqli->close();
  18. ?>


Dzięki za pomoc ale dalej nic mi się nie pojawia w bazie sad.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 17.06.2025 - 14:46