Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Niedziałający Formularz
Herkules
post
Post #1





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 7.05.2004
Skąd: Rybnik

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


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.

Ten post edytował Herkules 30.08.2004, 16:00:29
Go to the top of the page
+Quote Post
kszychu
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


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.


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
Herkules
post
Post #3





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 7.05.2004
Skąd: Rybnik

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


poprawiłem i nadal nic.
Może to jest spowodowane tym że nic nie mam w bazie? dry.gif
Go to the top of the page
+Quote Post
silent
post
Post #4





Grupa: Zarejestrowani
Postów: 127
Pomógł: 0
Dołączył: 18.08.2004
Skąd: Jastrzębie Zdrój

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


Proponuję wstawić takie coś:
  1. <?php
  2. echo(&#092;"Dziękujemy, zlecenie wysłane!\");
  3. ?>
Go to the top of the page
+Quote Post
tumczasty
post
Post #5





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 2.08.2004
Skąd: Rzeszów

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


  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
Go to the top of the page
+Quote Post
Herkules
post
Post #6





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 7.05.2004
Skąd: Rybnik

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


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
Go to the top of the page
+Quote Post
tumczasty
post
Post #7





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 2.08.2004
Skąd: Rzeszów

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


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)
Go to the top of the page
+Quote Post
Herkules
post
Post #8





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 7.05.2004
Skąd: Rybnik

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


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
Go to the top of the page
+Quote Post
tumczasty
post
Post #9





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 2.08.2004
Skąd: Rzeszów

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


pokaż strukturę tej tabeli "formularz"
Go to the top of the page
+Quote Post
Parti
post
Post #10





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 22.07.2004

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


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.

Ten post edytował Parti 31.08.2004, 10:21:13
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 Aktualny czas: 19.08.2025 - 20:05