Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Niedziałający Formularz
Forum PHP.pl > Forum > Gotowe rozwiązania
Herkules
Mam taki forumularz:
  1. <html> 
  2. <head> 
  3. <meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-2\">
  4. </head> 
  5. <body bgcolor=\"#ffffff\"> 
  6. <center>
  7. <?php 
  8. if($imie && $nazwisko && $email && $rodzaj && $szczegoly) { 
  9. $imie = addslashes(htmlspecialchars($imie));
  10. $nazwisko = addslashes(htmlspecialchars($nazwisko)); 
  11. $email= addslashes(htmlspecialchars($email)); 
  12. $rodzaj = addslashes(htmlspecialchars($rodzaj)); 
  13. $szczegoly = addslashes(htmlspecialchars($szczegoly)); 
  14. $db = mysql_connect(&#092;"localhost\",\"root\", \"krasnal\") or die (\"Nie można połączyć się z MySQL!\"); 
  15. mysql_select_db(&#092;"formularz\", $db) or die (\"Nie można połączyć się z bazą danych!\"); 
  16. $date = date(&#092;"Y-m-d\"); 
  17. $sql = &#092;"insert into formularz values(NULL, $imie, $nazwisko, $email, $rodzaj, $szczegoly)\"; 
  18. mysql_query($sql); 
  19. echo(&#092;"Dziękujemy, zlecenie wysłane!\"); 
  20. } else { 
  21. ?> 
  22. <form method=post> 
  23. <table bgcolor=\"#d3d3d3\" align=left> 
  24. <TR><TD>Wszystkie pola są wymagane!<BR><BR></TD></TR>
  25. <tr><td>Imie: <? if(isset($submit) && !$imie) { echo &#092;"Pole wymagane!\" ; } ?><br> 
  26. <input type=text size=36 name=\"imie\" maxlength=40 VALUE=\"<? echo $imie ?>\">
  27. </input></td></tr> 
  28. <tr><td>Nazwisko: <? if(isset($submit) && !$nazwisko) { echo &#092;"Pole wymagane!\" ;} ?><br> 
  29.  
  30. <input type=text size=36 name=\"nazwisko\" maxlength=40 VALUE=\"<? echo $nazwisko ?>\">
  31. </input></td></tr> 
  32. <tr><td>Email: <? if(isset($submit) && !$email) { echo &#092;"Pole wymagane\" ; } ?><br> 
  33. <input type=text name=\"email\" maxlength=40 size=40 VALUE=\"<? echo $email ?>\">
  34. </input></td></tr> 
  35. <tr><td>Rodzaj zlecenia: <? if(isset($submit) && !$rodzaj) { echo &#092;"Pole wymagane!\" ; } ?><br> 
  36. <input type=text name=\"rodzaj\" maxlength=40 size=40 value\"<? echo $rodzaj ?>\">
  37. </td></tr> 
  38. <tr><td>Szczegóły zlecenia: <? if(isset($submit) && !$szczegoly) { echo &#092;"Pole wymagane\" ; } ?><br> 
  39. <SELECT name=\"szczegoly\" value=\"<? echo $szczegoly ?>\">
  40. <OPTION> pierwsza pozycja
  41. <OPTION> druga pozycja
  42. <OPTION> trzecia pozycja
  43. </SELECT>
  44. <TR>
  45. <TD>
  46. <BR><input TYPE=submit name=\"submit\" VALUE=\"Wyślij\"></form> 
  47. </TD>
  48. </TR>
  49. </table> 
  50. <? 
  51. }
  52. ?> 
  53. </center></body></html>



I teraz dlaczego jak dam wyslij otrzymuje komunikat o poprawnym wysłaniu formularza a w bazie nic nie ma?

Z góry dzięki za pomoc.
kszychu
Czy przy insercie, ta pierwsza wartość NULL to ma być wstawiona do pola autoincrement? Bo jeśli tak, to usuń ją i nic tam nie wstawiaj.
Herkules
poprawiłem i nadal nic.
Może to jest spowodowane tym że nic nie mam w bazie? dry.gif
silent
Proponuję wstawić takie coś:
  1. <?php
  2. echo(&#092;"Dziękujemy, zlecenie wysłane!\");
  3. ?>
tumczasty
  1. <?php
  2. $sql = &#092;"insert into formularz values(NULL, $imie, $nazwisko, $email, $rodzaj, $szczegoly)\";
  3. ?>

te wszystkie wstawiane zmienne to chyba stringi, więc muszą być w apostrofach - tak mi się wydaje

a mysql_error" title="Zobacz w manualu PHP" target="_manual() jest genialną i niesamowicie przydatną funkcją - bez niej zwykle ani rusz smile.gif

i najlepiej korzystać z tablicy $_POST, czyli $_POST['nazwisko'], nie $nazwisko
Herkules
hm więc wszystkie poprawki zastosowałem,. kod wygląda tak. I mam taki błąd:
  1. Something IS wrong IN your syntax obok '', , , , )' w linii 1


Pomożecie mi prawda smile.gif
tumczasty
pomożemy!

z tym $_POST jak już zmienić, to wszędzie - np. na samym początku dać:
  1. <?php
  2. $nazwisko=$_POST['nazwisko']; $imie=$_POST['imie']; // itd.
  3. ?>


a dalej zostawić tak, jak jest teraz. Ale to nie jest teraz najważniejsze...

miałem na myśli coś takiego:
  1. <?php
  2. $sql = &#092;"insert into formularz values(NULL, '$imie', '$nazwisko', '$email', '$rodzaj', '$szczegoly')\";
  3. ?>

te apostrofy niech będą przy tych kolumnach, które mają typ "łańcuchowy", czyli np. CHAR, VARCHAR, TEXT itp. (bo nie wiem, które taki mają, więc dopisałem apostrofy wszędzie, oprócz NULL)
Herkules
więc zmieniłem te zapytanie. i teraz mam taki komunikacik.
  1. COLUMN count doesn't match value count at row 1

Coś nieco rozumie ale nie bardzo smile.gif
tumczasty
pokaż strukturę tej tabeli "formularz"
Parti
Uwaga ogólna. Wyrób sobie dobry nawyk pisania zapytań insert w taki sposób:
  1. INSERT INTO tabela (kolumna1, kolumna2, ... ) VALUES (warosc1, wartosc2, ... )

W Twoim przykładzie to będzie mniej więcej coś takiego:
  1. INSERT INTO formularz (id, imie, nazwisko, email, rodzaj, szczegoly) VALUES (NULL, '$imie', '$nazwisko', '$email', '$rodzaj', '$szczegoly')


PS. Kolumne id można pominąć (razem z tym NULL'em), jeśli jest to auto_increment. Po więcej szczegółów odsyłam tutaj.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.