Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][MySQL][PHP]Formularz -zapis do bazy
Forum PHP.pl > Forum > Przedszkole
mrRosso
Witajcie ponownie wink.gif

Słuchajcie mam taki oto problem, postawiłem skracacza linków na www.wytnij.tk i utworzyłem zakładkę 'kontakt' w której umieściłem formularz kontaktowy. Maile pięknie przychodzą na mój adres aczkolwiek ta wiadomości która przyszła do mnie powinna zapisać się też do bazy danych (MySQL) Przy wysłaniu nie wyskakuje żaden błąd więc to jest bardzo dziwne. Oto kod:

Formularz:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <meta http-equiv="Content-Language" content="pl" />
  6. <meta name="Author" content="Mateusz Pietrzak" />
  7. <meta name="Keywords" content="tnij, skróć, skroc, krótki, link, strona" />
  8. <meta name="Description" content="Skracaj długie linki na krótkie, miłe dla oczu do zapamiętania..." />
  9. <link rel="stylesheet" href="style.css" type="text/css" />
  10. <title>www.wytnij.tk - Kontakt</title>
  11. </head>
  12. <body>
  13.  
  14.  
  15. <h1><b><center>Skracanie linków</center></b></h1></div>
  16.  
  17. <div id="kontener">
  18.  
  19.  
  20.  
  21. <div id="tresc">
  22. <center>
  23. <table bgcolor="#000000">
  24. <tr><td><a href="index.php"><img src="images/strona_glowna.gif"></img></a></td><td><a href="regulamin.php"><img src="images/regulamin.gif"></img></a></td><td><a href="kontakt.php"><img src="images/kontakt.gif"></img></a></td><td><a href="pomoc.php"><img src="images/pomoc.gif"></img></a></td>
  25. </tr>
  26. </table>
  27. </center>
  28. <br>
  29. <br>
  30. <h1><center>KONTAKT</center></h1>
  31. <hr>
  32. <br>
  33.  
  34. <?php
  35. include("config.php");
  36.  
  37. if(empty($_POST['submit'])){
  38. ?>
  39. <center><table border="0" cellpadding="1" cellspacing="4">
  40. <form method="post">
  41. <tr><td class="dane"><b>Imię:</b></td>
  42. <td><input type="text" name="imienazwisko" style="width:220px;"/></td>
  43. </tr><tr>
  44. <td class="dane"><b>E-mail:</b></td>
  45. <td><input type="text" name="email" style="width:220px;"/></td>
  46. </tr><tr>
  47. <td class="dane"><b>Treść:</b>&nbsp;</td>
  48. <td><textarea name="trescwiadomosci" style="height:60px;width:220px;"></textarea></td>
  49. </tr><tr>
  50. <td>&nbsp;</td>
  51. <td><input type="submit" name="submit" value="Wyślij"/></td>
  52. </form></tr>
  53. </table></center>
  54. <?php
  55.  
  56. }elseif(!empty($_POST['imienazwisko']) && !empty($_POST['email']) && !empty($_POST['trescwiadomosci'])){
  57. /* Funkcja sprawdzająca poprawność E-Maila */
  58. function SprawdzEmail($email) {
  59. if (!eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$" , $email)){
  60. return false;
  61. }
  62. return true;
  63. }
  64. if(SprawdzEmail($_POST['email'])){
  65. /* Tworzymy szkielet wysyłanej wiadomości */
  66. $adresemail="mati_132@interia.eu";
  67. $ip=$_SERVER['REMOTE_ADDR'];
  68. $host=gethostbyaddr($_SERVER['REMOTE_ADDR']);
  69. $wiadomosc="Od: $_POST[imienazwisko] ($_POST[email])\nIP: $ip, HOST: $host\n\n$_POST[trescwiadomosci]";
  70. $nadawca="From: $_POST[email]";
  71. @mail($adresemail, "Formularz kontaktowy", "$wiadomosc", "$nadawca") or die('Formularz nie został wysłany');
  72.  
  73.  
  74. echo "E-mail został wysłany.";
  75. }else{ echo "Wprowadzony adres e-mail jest niepoprawny"; }
  76. }else{ echo "Wypełnij wszystkie pola formularza"; }
  77.  
  78.  
  79.  
  80. $sql_conn = mysql_connect($adres_bazy , $baza_user, $baza_pass);
  81. $godzina = date('H:i:s');
  82. $data = date("d-m-Y");
  83. $zapytanie = "INSERT INTO `".$nazwa_tabeli2."` ( `email` , `nick` , `tresc` , `ip` , `godzina` , `czas` ) VALUES ('".$_POST[email].''.$_POST[imienazwisko]."', '".$_POST[trescwiadomosci]."', '".$ip."', '".$godzina."', '".$data."');";
  84.  
  85. ?>
  86.  
  87. </FORM>
  88.  
  89. </P>
  90. </BODY>
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98. </div>
  99.  
  100. </div>
  101. <br><hr><center>&copy; By Mateusz Pietrzak</center>
  102.  
  103.  
  104.  
  105. </body>
  106. </html>
vonski
Nie wnikam w samo zapytanie czy jest dobrze ułożone, bo przede wszystkim nigdzie go nie wykonujesz smile.gif Przypisujesz do zmiennej $zapytanie tekst i na tym koniec. Musisz jeszcze wykonać zapytanie za pomocą mysql_query
mrRosso
czy tak może być?

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <meta http-equiv="Content-Language" content="pl" />
  6. <meta name="Author" content="Mateusz Pietrzak" />
  7. <meta name="Keywords" content="tnij, skróć, skroc, krótki, link, strona" />
  8. <meta name="Description" content="Skracaj długie linki na krótkie, miłe dla oczu do zapamiętania..." />
  9. <link rel="stylesheet" href="style.css" type="text/css" />
  10. <title>www.wytnij.tk - Kontakt</title>
  11. </head>
  12. <body>
  13.  
  14.  
  15. <h1><b><center>Skracanie linków</center></b></h1></div>
  16.  
  17. <div id="kontener">
  18.  
  19.  
  20.  
  21. <div id="tresc">
  22. <center>
  23. <table bgcolor="#000000">
  24. <tr><td><a href="index.php"><img src="images/strona_glowna.gif"></img></a></td><td><a href="regulamin.php"><img src="images/regulamin.gif"></img></a></td><td><a href="kontakt.php"><img src="images/kontakt.gif"></img></a></td><td><a href="pomoc.php"><img src="images/pomoc.gif"></img></a></td>
  25. </tr>
  26. </table>
  27. </center>
  28. <br>
  29. <br>
  30. <h1><center>KONTAKT</center></h1>
  31. <hr>
  32. <br>
  33.  
  34. <?php
  35. include("config.php");
  36.  
  37. if(empty($_POST['submit'])){
  38. ?>
  39. <center><table border="0" cellpadding="1" cellspacing="4">
  40. <form method="post">
  41. <tr><td class="dane"><b>Imię:</b></td>
  42. <td><input type="text" name="imienazwisko" style="width:220px;"/></td>
  43. </tr><tr>
  44. <td class="dane"><b>E-mail:</b></td>
  45. <td><input type="text" name="email" style="width:220px;"/></td>
  46. </tr><tr>
  47. <td class="dane"><b>Treść:</b>&nbsp;</td>
  48. <td><textarea name="trescwiadomosci" style="height:60px;width:220px;"></textarea></td>
  49. </tr><tr>
  50. <td>&nbsp;</td>
  51. <td><input type="submit" name="submit" value="Wyślij"/></td>
  52. </form></tr>
  53. </table></center>
  54. <?php
  55.  
  56. }elseif(!empty($_POST['imienazwisko']) && !empty($_POST['email']) && !empty($_POST['trescwiadomosci'])){
  57. /* Funkcja sprawdzająca poprawność E-Maila */
  58. function SprawdzEmail($email) {
  59. if (!eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$" , $email)){
  60. return false;
  61. }
  62. return true;
  63. }
  64. if(SprawdzEmail($_POST['email'])){
  65. /* Tworzymy szkielet wysyłanej wiadomości */
  66. $adresemail="mati_132@interia.eu";
  67. $ip=$_SERVER['REMOTE_ADDR'];
  68. $host=gethostbyaddr($_SERVER['REMOTE_ADDR']);
  69. $wiadomosc="Od: $_POST[imienazwisko] ($_POST[email])\nIP: $ip, HOST: $host\n\n$_POST[trescwiadomosci]";
  70. $nadawca="From: $_POST[email]";
  71. @mail($adresemail, "Formularz kontaktowy", "$wiadomosc", "$nadawca") or die('Formularz nie został wysłany');
  72.  
  73.  
  74. echo "E-mail został wysłany.";
  75. }else{ echo "Wprowadzony adres e-mail jest niepoprawny"; }
  76. }else{ echo "Wypełnij wszystkie pola formularza"; }
  77.  
  78.  
  79.  
  80. $sql_conn = mysql_connect($adres_bazy , $baza_user, $baza_pass);
  81. $godzina = date('H:i:s');
  82. $data = date("d-m-Y");
  83. $zapytanie = "INSERT INTO `".$nazwa_tabeli2."` ( `email` , `nick` , `tresc` , `ip` , `godzina` , `czas` ) VALUES ('".$_POST[email].''.$_POST[imienazwisko]."', '".$_POST[trescwiadomosci]."', '".$ip."', '".$godzina."', '".$data."');";
  84. $idzapytania = mysql_query($zapytanie);
  85. if(!$idzapytania){ echo 'błąd zapytania do bazy.';
  86.  
  87.  
  88. }else{
  89. mysql_close($sql_conn);
  90.  
  91.  
  92. ?>
  93.  
  94. </FORM>
  95.  
  96. </P>
  97. </BODY>
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105. </div>
  106.  
  107. </div>
  108. <br><hr><center>&copy; By Mateusz Pietrzak</center>
  109.  
  110.  
  111.  
  112. </body>
  113. </html>
  114.  
vonski
Tak, teraz to co jest w $zapytanie wykona się z tym, że jeśli zapytanie jest niepoprawne (a jest), to w wyniku dostaniesz false i nic się nie doda do bazy. Masz błąd między $_POST[email] i $_POST[imienazwisko]

P.S.
Możesz wziąć indeksy w $_POST w 'ciapki' (czyli np. $_POST[email] -> $_POST['email']).
mrRosso
ale teraz błąd wywala ;|

  1. Parse error: syntax error,
  2. unexpected $end in /home/
  3. gaduczat/public_html /wytnij.tk /
  4. kontakt.php on line 122
Leihto
Usuń ostatnie else przed
  1. mysql_close($sql_conn);

I sprawdź ilość klamer w skrypcie..
mrRosso
zrobiłem porządek z klamrami i całość wygląda tak


  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <meta http-equiv="Content-Language" content="pl" />
  6. <meta name="Author" content="Mateusz Pietrzak" />
  7. <meta name="Keywords" content="tnij, skróć, skroc, krótki, link, strona" />
  8. <meta name="Description" content="Skracaj długie linki na krótkie, miłe dla oczu do zapamiętania..." />
  9. <link rel="stylesheet" href="style.css" type="text/css" />
  10. <title>www.wytnij.tk - Kontakt</title>
  11. </head>
  12. <body>
  13.  
  14.  
  15. <h1><b><center>Skracanie linków</center></b></h1></div>
  16.  
  17. <div id="kontener">
  18.  
  19.  
  20.  
  21. <div id="tresc">
  22. <center>
  23. <table bgcolor="#000000">
  24. <tr><td><a href="index.php"><img src="images/strona_glowna.gif"></img></a></td><td><a href="regulamin.php"><img src="images/regulamin.gif"></img></a></td><td><a href="kontakt.php"><img src="images/kontakt.gif"></img></a></td><td><a href="pomoc.php"><img src="images/pomoc.gif"></img></a></td>
  25. </tr>
  26. </table>
  27. </center>
  28. <br>
  29. <br>
  30. <h1><center>KONTAKT</center></h1>
  31. <hr>
  32. <br>
  33.  
  34. <?php
  35.  
  36. if(empty($_POST['submit'])){
  37. ?>
  38. <center><table border="0" cellpadding="1" cellspacing="4">
  39. <form method="post">
  40. <tr><td class="dane"><b>Imię:</b></td>
  41. <td><input type="text" name="imienazwisko" style="width:220px;"/></td>
  42. </tr><tr>
  43. <td class="dane"><b>E-mail:</b></td>
  44. <td><input type="text" name="email" style="width:220px;"/></td>
  45. </tr><tr>
  46. <td class="dane"><b>Treść:</b>&nbsp;</td>
  47. <td><textarea name="trescwiadomosci" style="height:60px;width:220px;"></textarea></td>
  48. </tr><tr>
  49. <td>&nbsp;</td>
  50. <td><input type="submit" name="submit" value="Wyślij"/></td>
  51. </form></tr>
  52. </table></center>
  53. <?php
  54.  
  55. include("config.php");
  56.  
  57.  
  58. }elseif(!empty($_POST['imienazwisko']) && !empty($_POST['email']) && !empty($_POST['trescwiadomosci'])){
  59. /* Funkcja sprawdzająca poprawność E-Maila */
  60. function SprawdzEmail($email) {
  61. if (!eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$" , $email)){
  62. return false;
  63. }
  64. return true;
  65. }
  66. if(SprawdzEmail($_POST['email'])){
  67. /* Tworzymy szkielet wysyłanej wiadomości */
  68. $adresemail="mati_132@interia.eu";
  69. $ip=$_SERVER['REMOTE_ADDR'];
  70. $host=gethostbyaddr($_SERVER['REMOTE_ADDR']);
  71. $wiadomosc="Od: $_POST[imienazwisko] ($_POST[email])\nIP: $ip, HOST: $host\n\n$_POST[trescwiadomosci]";
  72. $nadawca="From: $_POST[email]";
  73. @mail($adresemail, "Formularz kontaktowy", "$wiadomosc", "$nadawca") or die('Formularz nie został wysłany');
  74.  
  75.  
  76. echo "E-mail został wysłany.";
  77. }else{ echo "Wprowadzony adres e-mail jest niepoprawny"; }
  78. }else{ echo "Wypełnij wszystkie pola formularza"; }
  79.  
  80.  
  81.  
  82. $sql_conn = mysql_connect($adres_bazy , $baza_user, $baza_pass);
  83. $godzina = date('H:i:s');
  84. $data = date("d-m-Y");
  85. $zapytanie = "INSERT INTO `".$nazwa_tabeli2."` ( `email` , `nick` , `tresc` , `ip` , `godzina` , `czas` ) VALUES ('".$_POST[email]."', '".$_POST[imienazwisko]."', '".$_POST[trescwiadomosci]."', '".$ip."', '".$godzina."', '".$data."');";
  86. $idzapytania = mysql_query($zapytanie);
  87. if(!$idzapytania){ echo 'błąd zapytania do bazy.';
  88.  
  89.  
  90. mysql_close($sql_conn);
  91.  
  92.  
  93. ?>
  94.  
  95. </FORM>
  96.  
  97. </P>
  98. </BODY>
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106. </div>
  107.  
  108. </div>
  109. <br><hr><center>&copy; By Mateusz Pietrzak</center>
  110.  
  111.  
  112.  
  113. </body>
  114. </html>


ale błąd ten sam

  1. Parse error: syntax error,
  2. unexpected $end in /home/
  3. gaduczat/public_html /wytnij.tk /
  4. kontakt.php on line 117

vonski
Na pewno zrobiłeś już porządek z klamrami?
mrRosso
no nie mogę dopatrzyć się błędu:) może to coś z $_POST['submit']?
vonski
Na końcu skryptu masz:

  1. if(!$idzapytania){ echo 'błąd zapytania do bazy.';
  2.  
  3.  
  4. mysql_close($sql_conn);
  5.  
  6.  
  7. ?>


Brakuje klamry, stąd ten komunikat o błędzie.
mrRosso
racja brakowało biggrin.gif

strona działa ale po wysłaniu maila wywala taki błąd mimo że dane do bazy są dobre ;|

  1. Warning: mysql_connect()
  2. [ function.mysql-connect ]: Access
  3. denied for user
  4. 'gaduczat'@'localhost' (using
  5. password: NO) in /home/gaduczat /
  6. public_html/wytnij. tk/kontakt. php
  7. on line 82
  8. Warning: mysql_select_db()
  9. [ function.mysql-select- db ]: Access
  10. denied for user
  11. 'gaduczat'@'localhost' (using
  12. password: NO) in /home/gaduczat /
  13. public_html/wytnij. tk/kontakt. php
  14. on line 83
  15. Warning: mysql_select_db()
  16. [ function.mysql-select- db ]: A link to
  17. the server could not be established
  18. in /home/gaduczat/ public_html/
  19. wytnij.tk/ kontakt.php on line 83
  20. Warning: mysql_query()
  21. [ function.mysql-query ]: Access
  22. denied for user
  23. 'gaduczat'@'localhost' (using
  24. password: NO) in /home/gaduczat /
  25. public_html/wytnij. tk/kontakt. php
  26. on line 87
  27. Warning: mysql_query()
  28. [ function.mysql-query ]: A link to the
  29. server could not be established in /
  30. home/gaduczat/public _html/
  31. wytnij.tk/ kontakt.php on line 87
  32. błąd zapytania do bazy.
  33. Warning: mysql_close(): supplied
  34. argument is not a valid MySQL-Link
  35. resource in /home/gaduczat/
  36. public_html/wytnij. tk/kontakt. php
  37. on line 91
vonski
Sprawdź co zawiera zmienna $baza_pass bo ten komunikat wsakzuje na to, że logujesz się do bazy nie podając żadnego hasła.
mrRosso
zawiera hasło prawidłowe. Ta sama zmienna jest w index.php przy dodawaniu do bazy skracanego linku i działa prawidłowo.
vonski
Ok, a w ktorym miejscu przypisujesz te zmienne: $adres_bazy , $baza_user, $baza_pass? W config.php?
mrRosso
właśnie tak smile.gif include jest do połączenia z tym plikiem:)
vonski
  1. if(empty($_POST['submit'])){
  2. ?>
  3. <center><table border="0" cellpadding="1" cellspacing="4">
  4. <form method="post">
  5. <tr><td class="dane"><b>Imię:</b></td>
  6. <td><input type="text" name="imienazwisko" style="width:220px;"/></td>
  7. </tr><tr>
  8. <td class="dane"><b>E-mail:</b></td>
  9. <td><input type="text" name="email" style="width:220px;"/></td>
  10. </tr><tr>
  11. <td class="dane"><b>Treść:</b>&nbsp;</td>
  12. <td><textarea name="trescwiadomosci" style="height:60px;width:220px;"></textarea></td>
  13. </tr><tr>
  14. <td>&nbsp;</td>
  15. <td><input type="submit" name="submit" value="Wyślij"/></td>
  16. </form></tr>
  17. </table></center>
  18. <?php
  19.  
  20. include("config.php");
  21.  
  22.  
  23. }elseif(!empty($_POST['imienazwisko']) && !empty($_POST['email']) && !empty($_POST['trescwiadomosci'])){
  24.  
  25. ...
  26. }


Przyjrzyj się kiedy dołączny jest plik config.php. W pierwszym twoim poście było ok, a teraz include() powędrowało niżej i config.php dołączasz tylko wtedy, kiedy formularz NIE został wysłany.
mrRosso
działa! rzeczywiście miałeś racjęwink.gif dzięki wielkie duży plus leci! :-)

Temat do zamknięcia smile.gif
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.