Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] formularz kontaktowy, $_POST, strlng()
Forum PHP.pl > Forum > Przedszkole
hi5
Jest to moj pierwszy temat, więc witam Wszystkich użytkowników smile.gif.

Jestem początkujący więc nie wiem czy błąd wyda sie skomplikowany czy nie, otóż napisałem formularz kontaktowy i chciałem sprawdzić długość wprowadzannych zmiennych aby wygenerowac w razie potrzebny odpowienide informacje o błędzie. Pola są sprawdzane dobrze przez funkcje empty() a już strlng() zwraca 0, var_dump mowie ze zmienne sa string w tablicy a po przypisaniu do zmiennej is_string że nie, sam juz nie wiem co jest nie tak. Wydaje mi się ze cos z przypisywaniem posta albo skladnia zwalilem ale siedze juz nad tym 2 dzien i nie mam siły sam walczyc.smile.gif Wykomentowana część to moje "dochodzenie" błedu...

  1. $form_block = "
  2. <form method=\"POST\" action=\"\">
  3. <table>
  4. <tr style=\"font-size:135%\"><strong><br />Formularz kontaktowy:<br /><br /></strong></tr>
  5. <tr>
  6. <td><strong>Nazwisko:<span style=\"color:red\">*</span></strong></td>
  7. <td><input type=\"text\" name=\"sender_sname\" value=\"$sender_sname\" style=\"width: 200px\"></td>
  8. </tr>
  9. <tr>
  10. <td><strong>Imię:</strong><br /></td>
  11. <td><input type=\"text\" name=\"sender_fname\" value=\"$sender_fname\" style=\"width: 200px\"></td>
  12. <tr>
  13. <td><strong>Adres e-mail:<span style=\"color:red\">*</span></strong></td>
  14. <td><input type=\"text\" name=\"sender_email\" value=\"$sender_email\" style=\"width: 300px\"></td>
  15. </tr>
  16. <tr>
  17. <td style=\"valign:top\"><strong>Wiadomość:<span style=\"color:red\">*</span></strong></td>
  18. <td><textarea name=\"message\" style=\"width: 500px; height: 150px\" >$message</textarea></td>
  19. </tr>
  20. <tr>
  21. <td></td>
  22. <td><input type=\"submit\" name=\"submit\" value=\"Wyślij wiadomość\">&nbsp;<input type=\"reset\" value=\"Wyczyść\"></td>
  23. </tr>
  24. <tr>
  25. <td><span style=\"color:red\">*</span><span style=\"font-size:75%\"> - Wartości obowiązkowe</span></td>
  26. <input type=\"hidden\" name=\"zxc_\" value=\"1\">
  27. </tr>
  28. </table>
  29. </form>
  30. ";
  31. //echo var_dump($_POST)."<br />";
  32. //echo mb_detect_encoding($sender_sname, 'utf-8, iso-8859-2, iso-8859-1'); //sprawdzenie kodowania
  33. //$sender_sname=$_POST['$sender_sname'];
  34. //echo $sender_sname."<br />";
  35. //echo is_array($sender_sname) ? 'Array' : 'Not an Array';echo "<br />";
  36. //echo is_string($sender_sname) ? 'String' : 'Not a String';echo "<br />";
  37. //echo var_dump($sender_sname)."<br />";
  38.  
  39. if (empty($_POST['zxc_'])) {
  40. echo $form_block;
  41. } else if (!empty($_POST['sender_sname']) && !empty($_POST['sender_email']) && !empty($_POST['message'])) {
  42.  
  43. $ssn=strlen($_POST['$sender_sname']);
  44. if ( $ssn > 1 && $ssn < 26 ) {}else{
  45. $sname_error = "<span style=\"color:red\">Nazwisko może składać sie maksymalnie z 25 znaków a minimalnie z 2!</span><br />";
  46. $send = "no";
  47. }
  48. /* echo "tab:".$_POST['$sender_fname']."<br />";
  49. $sender_fname = $_POST['$sender_fname'];
  50. echo "zawartosc zmieniej $sender_fname:".$sender_fname."<br />";
  51. $sfn = strlen($sender_fname);
  52. echo "długość imienia z strlen:".$sfn."<br />";
  53. */ if ( $sfn > 1 && $sfn < 16 ) {}else{
  54. $fname_error = "<span style=\"color:red\">Imię może składać sie maksymalnie z 15 znaków a minimalnie z 2!</span><br />";
  55. $send = "no";
  56. }
  57.  
  58. $se=strlen($_POST['$sender_email']);
  59. //echo $se;
  60. if ( $se > 4 && $se < 50) {}else{
  61. $email_error = "<span style=\"color:red\">E-mail może składać sie maksymalnie z 50 znaków!</span><br />";
  62. $send = "no";
  63. }
  64.  
  65. $m=strlen($_POST['$message']);
  66. //echo "m:".$m;
  67. if ( $m > 1000 ) {
  68. $message_error = "<span style=\"color:red\">Wiadomość może składać się maksymalnie z 1000 znaków!</span><br />";
  69. $send = "no";
  70. }
  71.  
  72. if ( $send == "no") {
  73.  
  74. echo "<br />";
  75. echo "$sname_error";
  76. echo "$fname_error";
  77. echo "$email_error";
  78. echo "$message_error";
  79. echo "$form_block";
  80. } else {
  81.  
  82. $to = "localhost";
  83. $subject = "Wiadomość z strony...";
  84. $msg = "E-mail wysłany z witryny WWW \n";
  85. $msg .= "Nazwisko nadawcy: $sender_name \n";
  86. $msg .= "E-mail nadawcy: $sender_email \n";
  87. $msg .= "Wiadomość: $message \n\n";
  88. $mailheaders = "From: Moja witryna WWW <> \n";
  89. $mailheaders .= "Reply_To: $sender_email \n\n";
  90.  
  91. if (@mail($to, $subject, $msg, $mailheaders))
  92. echo "<p>Widaomość została wysłana!</p>";
  93. else echo "Server nie obsługuje funkcji mail()";
  94. }
  95. } else echo "<span style=\"color: red; text-align: center;\"><br /><strong>Wypełnij wszystkie pola obowiązkowe formularza!</strong><br /><br /></span>".$form_block;

Daiquiri
$ssn=strlen($_POST['$sender_sname']); ? Chyba raczej chciałeś tam wsadzić $_POST['sender_sname'] - dolar jest zbędny smile.gif.
cycofiasz
Nie ma takiej funkcji strlng. Źle nazywasz pola POST, nie $_POST['$sender_sname'] a $_POST['sender_sname']
Fifi209
Cytat(cycofiasz @ 15.10.2011, 14:55:35 ) *
Nie ma takiej funkcji strlng.

A gdzie Ty ją widzisz w kodzie?
hi5
Heh, rzeczywiscie z tymi $ walnąłem gapę cześć dobrze a pozniej cos mi sie musialo pomieszać kopiujac juz nazwy zmiennych, a strlng to oczywiscie literowka chodzilo mi o strlen http://php.net/manual/en/function.strlen.php, dzięki za pomoc już wszystko jest jak trzeba, jednak jak ktos rzuci świeżym spojrzeniem na kod to wyłapuje to czego człowiek nie może przez kilka godzin tongue.gif

Ed. do zamknięcia :]
cycofiasz
Cytat(Fifi209 @ 15.10.2011, 15:05:52 ) *
A gdzie Ty ją widzisz w kodzie?


Nie ma jej w kodzie. Za to jest w tytule tematu i w opisie.
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.