Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]Problem z walidacja formularza
MatBlo
post
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 27.05.2010

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


Zacznę od początku. Niedawno rozpocząłem swoja przygodę z PHP i język sprawa mi sporo problemu. Jestem w trakcje tworzenia strony www z elementami PHP. Struktura strony wygląda następująco menu poziome wraz z grafiką znajdującą się po prawej stronie jest statyczne natomiast treść znajdująca się po lewej dynamiczna. Problem ten rozwiązałem za pomocą instrukcji include_once(), jednak nie na tym problem polega jedna z podstron kontakt.php posiada następujący kod:
  1.  
  2. <h3>Formularz kontaktowy:</h3>
  3.  
  4. <form method="post" action="index.php?id=8">
  5. <div class="tabelaNazwa"><label for="firstname">Imię*:</label></div>
  6. <div class="tabelaTresc"><input type="text" id="firstname" name="firstname" style="width:290px;" /><br /></div>
  7. <div class="clear" style="height: 5px;"></div>
  8. <div class="tabelaNazwa"><label for="email">E-mail:</label></div>
  9. <div class="tabelaTresc"><input type="text" id="email" name="email" style="width:290px;" /><br /></div>
  10. <div class="clear" style="height: 5px;"></div>
  11. <div class="tabelaNazwa"><label for="phone">Telefon:</label></div>
  12. <div class="tabelaTresc"><input type="text" id="phone" name="phone" style="width:290px;" /><br /></div>
  13. <div class="clear" style="height: 5px;"></div>
  14. <div class="tabelaNazwa"><label for="theme">Temat*:</label></div>
  15. <div class="tabelaTresc"><input type="text" id="theme" name="theme" style="width:290px;" /><br /></div>
  16. <div class="clear" style="height: 5px;"></div>
  17. <div class="tabelaNazwa"><label for="other">Wiadomość:</label></div>
  18. <div class="tabelaTresc"><textarea id="other" name="other" rows="7" cols="50"></textarea><br /></div>
  19. <div class="clear" style="height: 10px;"></div>
  20. <div class="tabelaTresc"><input type="submit" value="Wyślij" name="Wyślij" /></div>
  21. </form>


natomiast skrypt odpowiedzialny za wysyłanie wygląda następująco:
  1. <?php
  2. $imie = $_POST['firstname'];
  3. $email = $_POST['email'];
  4. $tel = $_POST['phone'];
  5. $temat = $_POST['theme'];
  6. $wiadomosc = $_POST['other'];
  7. $to = '...@gmail.com';
  8. $subject = "$temat";
  9. $msg = "Imię: $imie\n" .
  10. "Telefon: $tel\n" .
  11. "Treść wiadomości: $wiadomosc";
  12. mail($to, $subject, $msg, 'From:'.$email);
  13. ?>
  14.  
  15. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  16. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  17. <head>
  18. <title>Salon Dom</title>
  19. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  20. <link rel="stylesheet" href="styl.css" type="text/css" />
  21.  
  22. </head>
  23.  
  24. <body>
  25.  
  26. <p>Dziękuję za przesłanie formularza</p>
  27.  
  28. </body>
  29. </html>


W takim wypadku formularz działa, wysyła maila odraz w miejscu formularza wyświetlany jest komunikat dziękujący za wysłanie maila. W momencie gry zamiast fragmentu napisanego w html użyć echo nie wyświetla mi się podziękowanie. I nie bardzo wiem dlaczego ;/ Chciałem również dokonać sprawdzenia dwóch pól imię i temat napisałem taki kawałek kodu:
  1. <?php
  2. if (isset($_POST['submit'])) {
  3. $imie = $_POST['firstname'];
  4. $email = $_POST['email'];
  5. $tel = $_POST['phone'];
  6. $temat = $_POST['theme'];
  7. $wiadomosc = $_POST['other'];
  8. if(empty($imie) && empty($temat)) {
  9. echo'Nie podałeś imienia i tematu wiadomości.<br />';
  10. }
  11. if(empty($imie) && (!empty($temat))) {
  12. echo'Nie podałeś imienia.<br />';
  13. }
  14. if((!empty($imie)) && empty($temat)) {
  15. echo'Nie podałeś tematu.<br />';
  16. }
  17. if((!empty($imie)) && (empty($temat))) {
  18. $to = '...@gmail.com';
  19. $subject = "$temat";
  20. $msg = "Imię: $imie\n" .
  21. "Telefon: $tel\n" .
  22. "Treść wiadomości: $wiadomosc";
  23. mail($to, $subject, $msg, 'From:'.$email);
  24. echo 'Dziękuję za przesłanie formularza';
  25. }
  26. }
  27. ?>


po wrzuceniu tego kodu na serwer ani nie wyświetla się żaden komunikat anie mail nie zostaje wysłany. Tematy na formum przeglądałem jednak nie znalazłem odp na mój problem - być może źle szukałem .

Ten post edytował MatBlo 2.06.2010, 10:57:21
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
MatBlo
post
Post #2





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 27.05.2010

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


Coś mi nie wychodzi - muszę chyba być prowadzonym jak dziecko za rękę. Wykorzystałem Twój skrypt jednak nie działa do końca prawidłowo. Co prawda jeśli nie wpiszę imienia to mail nie zostanie wysłany jednak nie otrzymuje również informacji o braku imienia. W przypadku podania imienia nie mam wiadomości o wysłaniu :?
  1. <?php
  2. if(count($_POST)) {
  3. $imie = $_POST['firstname'];
  4. $email = $_POST['email'];
  5. $tel = $_POST['phone'];
  6. $temat = $_POST['theme'];
  7. $wiadomosc = $_POST['other'];
  8. $submit = true;
  9. if(empty($imie))
  10. {
  11. echo'Nie podałeś imienia i tematu wiadomości.<br />';
  12. $submit = false;
  13. }
  14. if($submit)
  15. {
  16. $to = '...@gmail.com';
  17. $subject = "$temat";
  18. $msg = "Imię: $imie\n" .
  19. "Telefon: $tel\n" .
  20. "Treść wiadomości: $wiadomosc";
  21. mail($to, $subject, $msg, 'From:'.$email);
  22. echo 'Dziękuję za przesłanie formularza';
  23. }
  24. }
  25. ?>


Ten post edytował MatBlo 2.06.2010, 10:56:16
Go to the top of the page
+Quote Post

Posty w temacie
- MatBlo   [php]Problem z walidacja formularza   2.06.2010, 09:53:25
- - zend   [PHP] pobierz, plaintext //toif (isset($_P...   2.06.2010, 09:58:34
- - MatBlo   Wstawiłem formularz do body, if zamieniłem i pomog...   2.06.2010, 10:15:31
- - zend   [PHP] pobierz, plaintext $submit = true; if...   2.06.2010, 10:21:32
- - MatBlo   Coś mi nie wychodzi - muszę chyba być prowadzonym ...   2.06.2010, 10:45:31
- - zend   [PHP] pobierz, plaintext ini_set('display_erro...   2.06.2010, 10:54:58
- - MatBlo   Niestety nie ma żadnych zmian. Tak wyglądała cała ...   2.06.2010, 11:01:49
- - zend   Dorzuć do każdego warunku if warunek else z inną w...   2.06.2010, 11:11:55
- - Damiian   Powinno być ok.. [PHP] pobierz, plaintext <?ph...   2.06.2010, 11:26:28
- - MatBlo   Po drobnych przeróbkach działa [PHP] pobierz, pla...   2.06.2010, 12:01:17
- - gigzorr   Pewnie masz dwa pliki czyli formularz i action=...   2.06.2010, 12:08:06
- - Damiian   Tak jak kolega wyżej powiedział Stare action zamie...   2.06.2010, 12:17:51
- - MatBlo   Sprawa nie wygląda tak łatwo, a to dlatego że jeśl...   2.06.2010, 12:59:02
- - Damiian   Dlatego że pisujesz samo: [PHP] pobierz, plaintex...   2.06.2010, 13:12:38
- - MatBlo   Wkleiłem tak jak podaliście i nadal to samo.   2.06.2010, 16:20:16
- - bastard13   [PHP] pobierz, plaintext if($_POST){ ...   2.06.2010, 23:11:03
- - MatBlo   [HTML] pobierz, plaintext <h3> ...   6.07.2010, 09:44:33
- - gigzorr   marginesami to ustaw .   6.07.2010, 09:51:47
- - MatBlo   Możesz trochę rozwinąć swoją wypowiedź.   6.07.2010, 09:59:59
- - Ruio   Zrób coś alla to : [HTML] pobierz, plaintext ...   6.07.2010, 11:14:28
- - MatBlo   Nie o to mi chodzi - pytam jak za pomocą jakiś ins...   6.07.2010, 11:19:41
- - Ruio   Ustaw sobie do każdego inną zmienną np: [PHP] pob...   6.07.2010, 11:37:05
- - MatBlo   coś mi nie działa ;/ mam tak [HTML] pobierz, pla...   6.07.2010, 12:03:04
- - Ruio   Nie widzę błędu w tym co ci podałem ani w twoim. ...   6.07.2010, 12:11:52
- - MatBlo   Niestety nie pomogło to.   6.07.2010, 12:15:53
- - Ruio   Pokaż cały kod php który tyczy się tych ifów po po...   6.07.2010, 12:19:55
- - MatBlo   Najpierw chciałem sprawdzić z jednym błędem czy je...   6.07.2010, 12:24:53
- - Ruio   [PHP] pobierz, plaintext <?php if...   6.07.2010, 12:41:57
- - MatBlo   Wielkie dzięki (ofc za pomoc podziekowałem) nie w...   6.07.2010, 12:52:20
- - thek   Kolejność ma znaczenie. Przecież nie możesz wywoła...   6.07.2010, 13:03:56
- - MatBlo   Dzięki na pewno skorzystam.   6.07.2010, 13:35:38


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 27.12.2025 - 19:35