Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Formularz i sprawdzanie pól
wiktor96
post 4.10.2009, 13:46:24
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 28.09.2009

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


Mam formularz kontaktowy ale chciałbym aby jak ktoś nie wypełni pola otrzymywał komunikat

Kod formularza

  1. <form action="<?=$PHP_SELF; ?>" method="post">
  2. <p style="font-size: 12px;">Imię</p>
  3. <input type="text" name="name" style="width: 230px;" >
  4. <p style="font-size: 12px;">Temat</p>
  5. <input type="text" name="subject" style="width: 230px;" >
  6. <p style="font-size: 12px;">Twój E-mail</p>
  7. <input type="text" name="email" style="width: 230px;" >
  8. <p style="font-size: 12px;">Treść</p>
  9. <textarea name="message" rows="3" cols="1" style="width: 300px;"></textarea>
  10. <br >
  11. <input type="submit" name="submit" value="Wyślij" >
  12. <input type="hidden" name="do" value="send" >
  13. <input type="reset" name="reset" value="Wyczyść" >
  14. <br >
  15. <?PHP
  16.  
  17. $do = ($_POST['do']);
  18.  
  19. if($do == "send")
  20. {
  21. $recipient = "wiktor_1996_96@o2.pl";
  22. $subject = ($_POST['subject']);
  23. $name = ($_POST['name']);
  24. $email = ($_POST['email']);
  25. $message = ($_POST['message']);
  26. $formsend = mail("$recipient", "$subject", "$message", "From: $email ($name)\r\nReply-to:$email");
  27.  
  28. echo ("<p>Wiadomość została wysłana</p>");
  29. }
  30. ?>


Niedawno zadawałem pytanie dotyczące księgi ale gdy wkleiłem ten kawałek kodu wychodził błąd.
Go to the top of the page
+Quote Post
Wicepsik
post 4.10.2009, 14:03:58
Post #2





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


empty


--------------------
Go to the top of the page
+Quote Post
wiktor96
post 4.10.2009, 15:19:36
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 28.09.2009

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


  1. <?php
  2. $var = 0;
  3.  
  4. // Evaluates to true because $var is empty
  5. if (empty($var)) {
  6. echo '$var is either 0, empty, or not set at all';
  7. }
  8.  
  9. // Evaluates as true because $var is set
  10. if (isset($var)) {
  11. echo '$var is set even though it is empty';
  12. }
  13. ?>

  1. gdzie mam to wkleić i co mam wpisać tu echo '$var is set even though it is empty';
Go to the top of the page
+Quote Post
darko
post 4.10.2009, 18:51:29
Post #4





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Jeśli przyjdą dane z fomularza ( if($do=="sent") {//(tutaj)}), dokonaj podobnej do zamieszczonej poniżej walidacji
  1. $error = false;
  2. $error_reason = array();
  3. $posted_names = array("name","subject","email","message");
  4. $max = count($posted_names);
  5. for($i=0;$i<$max;$i++) {
  6. if(is_null($_POST[$posted_names[$i]]) || empty($_POST[$posted_names[$i]]) || $_POST[$posted_names[$i]] == "") {
  7. $error = true;
  8. $error_reason[] = $i;
  9. }
  10. }
  11. if(!$error) {
  12. $recipient = "wiktor_1996_96@o2.pl";
  13. $subject = ($_POST['subject']);
  14. $name = ($_POST['name']);
  15. $email = ($_POST['email']);
  16. $message = ($_POST['message']);
  17. $formsend = mail("$recipient", "$subject", "$message", "From: $email ($name)\r\nReply-to:$email");
  18. }
  19. else {
  20. echo "<br/>proszę podać <b>";
  21. foreach($error_reason as $er) {
  22. switch($er) {
  23. case 0:
  24. echo "imię ";
  25. break;
  26.  
  27. case 1:
  28. echo " temat wiadomości";
  29. break;
  30.  
  31. case 2:
  32. echo " adres e-mail";
  33. break;
  34.  
  35. case 3:
  36. echo " treść wiadomości";
  37. break;
  38. }
  39. }
  40. echo "</b><br/>";
  41. // tu jeszcze raz pokaż form (najlepiej użyć funkcji do wyświetlenia formularza, natomiast dodaj value="$_POST['name']" etc. żeby form trzymał poprzednio wpisane dane);
  42. }
  43.  
  44. if($formsend) {
  45. echo "<br/>wiadomość została wysłana";
  46. }
  47. else {
  48. die "<br/>wystąpił nieokreślony błąd nieujęty powyższą logiką walidacji<br/>";
  49. }





--------------------
Nie pomagam na pw, tylko forum.
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: 14.08.2025 - 09:46