Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][HTML] Weryfikacja formularza kontaktowego
jaroslavt
post 29.10.2008, 15:28:54
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 31.05.2008
Skąd: Katowice

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


Mam taki formularz:

Kod
<?php
   // sprawdzamy, czy zmienna $submit jest pusta
   if (empty($_POST['submit'])) {
       // wyświetlamy formularz
       echo "<table align=\"center\" border=\"0\"><form method=\"post\">
  
   <tr>
   <td>Imię i nazwisko:</td>
   <td><input type=\"text\" name=\"imie\" style=\"width: 240px; font-size: 12px\"></td>
   </tr>
  
   <tr>
   <td>Twój e-mail:</td>
   <td><input type=\"text\" name=\"email\" style=\"width: 240px; font-size: 12px\"></td>
   </tr>
  
   <tr>
   <td>Treść:</td>
   <td><textarea name=\"tresc\" style=\"width: 240px; height: 200px; font-size: 12px\"></textarea></td>
   </tr>
  
   <tr>
   <td>&nbsp;</td>
   <td><input type=\"submit\" name=\"submit\" value=\"&nbsp;&nbsp;&nbsp;Wyślij&nbsp;&nbsp;&nbsp;\" style=\"border: 1px; font-size: 9px\">&nbsp;
   <input type=\"reset\" value=\"&nbsp;&nbsp;&nbsp;Reset&nbsp;&nbsp;&nbsp;\" style=\"border: 1px; font-size: 9px\"></td></form>
   </tr>
   </table>";
   }
   // sprawdzamy, czy zmienne przesłane z formularza nie sš puste
   elseif (!empty($_POST['tresc']) && !empty($_POST['imie']) && !empty($_POST['email'])) {
       // jeżeli powyższy warunek jest spełniony tworzona jest wiadomoœć
       // zmienna $message zawiera treść wiadomości
       $message = "<b>Wiadomość od:</b> $_POST[imie]
   <b>Adres e-mail:</b> $_POST[email]
  
   <b>Treść wiadomości:</b>
   $_POST[tresc]";
       // zmienna $header zawiera przede wszystkim adres zwrotny
  
   $header .= "From: $_POST[imie] <$_POST[email]>"."\n";
   $header .= "Content-type: text/html; charset=iso-8859-2"."\n";
  
  
       // funkcja mail() za pomocą której wiadomość zostanie wysłana
       @mail("info@ireflex.pl","Wiadomość z iREFLEX.pl","$message","$header")
       or die('<p class="contents2">Nie udało się wysłać wiadomości</div>');
       // wyświetlenie komunikatu w przypadku powodzenia
       echo '<p class="contents2">Wiadomość została wysłana poprawnie!</div>';
   }
   // lub w przypadku nie wypełnienia formularza do końca
   else echo '<p class="contents2">Wypełnij wszystkie pola formularza! Cofnij.</p>';
  
   ?>


Jak dodać do niego kolejne okienko "Wpisz swój adres email ponownie" w celu zweryfikowania czy korzystający z formularza wprowadził swój adres email poprawnie.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
blooregard
post 29.10.2008, 16:20:06
Post #2


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Normalnie, dodajesz kolejne pole, nazywasz je np. email2, a potem sprawdzasz warunek: ($email === $email2) i już.


--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
kefirek
post 29.10.2008, 16:25:21
Post #3





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

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


Zobacz tak
  1. <?php
  2. if (isset($_POST['submit'])) {  
  3.  
  4. $imie = $_POST['mailname'];  
  5. $tresc = $_POST['tresc'];  
  6. $email = $_POST['email'];  
  7.    
  8.  
  9. if ($email == "" || !preg_match("/^[-0-9A-Z_.]{1,50}@([-0-9A-Z_.]+.){1,50}([0-9A-Z]){2,4}$/i", $email)) {
  10. $error .= "ˇ <span class='alt'>Wpisz poprawny adres email</span><br>";
  11. }
  12.  
  13.  
  14. if (!$error) {
  15.  
  16. $message = "<b>Wiadomość od:</b> $imie
  17. <b>Adres e-mail:</b> $email
  18.  
  19. <b>Treść wiadomości:</b>
  20. $tresc";
  21.  
  22.  
  23. $header .= "From: $imie <$email>"."\n";
  24. $header .= "Content-type: text/html; charset=iso-8859-2"."\n";
  25.  
  26.  
  27.  
  28. @mail("[email="info@ireflex.pl"]info@ireflex.pl","Wiadomość[/email] z iREFLEX.pl","$message","$header")
  29. or die('<p class="contents2">Nie udało się wysłać wiadomości</div>');  
  30.  
  31. echo "<center>Wiadmość wysłano poprawnie</center><br>";
  32.  
  33. } else {
  34.  
  35. echo "<center><br>Nie udało sie wysłać wiadmości<br><br>\n$error</center><br>\n";
  36.  
  37. }
  38.  
  39.  
  40.  
  41. } else {  
  42.  
  43.      
  44.   echo "<table align=\"center\" border=\"0\"><form method=\"post\">
  45.  
  46.   <tr>
  47.   <td>Imię i nazwisko:</td>
  48.   <td><input type=\"text\" name=\"imie\" style=\"width: 240px; font-size: 12px\"></td>
  49.   </tr>
  50.  
  51.   <tr>
  52.   <td>Twój e-mail:</td>
  53.   <td><input type=\"text\" name=\"email\" style=\"width: 240px; font-size: 12px\"></td>
  54.   </tr>
  55.  
  56.   <tr>
  57.   <td>Treść:</td>
  58.   <td><textarea name=\"tresc\" style=\"width: 240px; height: 200px; font-size: 12px\"></textarea></td>
  59.   </tr>
  60.  
  61.   <tr>
  62.   <td>&nbsp;</td>
  63.   <td><input type=\"submit\" name=\"submit\" value=\"&nbsp;&nbsp;&nbsp;Wyślij&nbsp;&nbsp;&nbsp;\" style=\"border: 1px; font-size: 9px\">&nbsp;
  64.   <input type=\"reset\" value=\"&nbsp;&nbsp;&nbsp;Reset&nbsp;&nbsp;&nbsp;\" style=\"border: 1px; font-size: 9px\"></td></form>
  65.   </tr>
  66.   </table>";
  67. }
  68. ?>
Go to the top of the page
+Quote Post
jaroslavt
post 29.10.2008, 21:50:44
Post #4





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 31.05.2008
Skąd: Katowice

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


blooregard - do tego już sam doszedłem, nie wiem tylko (a raczej przede wszytskim) gdzie ten kod mam wstawić tak by był on poprawny :/

kefirek - nie o taką weryfikacje mi chodziło
Go to the top of the page
+Quote Post
blooregard
post 30.10.2008, 00:02:12
Post #5


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Kod
elseif (!empty($_POST['tresc']) && !empty($_POST['imie']) && !empty($_POST['email'])) {
       // jeżeli powyższy warunek jest spełniony tworzona jest wiadomoœć
       // zmienna $message zawiera treść wiadomości

// TUTAJ
      if ($_POST['email'] === $_POST['email2']) {
         // TU DAJESZ CALY KOD TWORZACY I WYSYLAJACY MAILA

     } else {
        echo "powtorzony adres e-mail jest inny";
}

// I TU CALA  RESZTA


Ale to nie jest eleganckie rozwiązanie z tej prostej przyczyny, że Twój skrypt jest lekko zagmatwany. Podziel sobie na dwa pliki: formularz oraz weryfikację danych (inkludowaną po kliknięciu submit-a), dodaj walidację pól formularza itp.


--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
YaQzi
post 30.10.2008, 00:10:35
Post #6





Grupa: Zarejestrowani
Postów: 94
Pomógł: 31
Dołączył: 12.10.2008
Skąd: WAT

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


Może chodzi o weryfikację, która sprawdza czy user nie poleciał w kulki z adresem email i czy faktycznie ma taki właśnie adres jak podał? Czyli taka jakby aktywacja konta poprzez email? Jeśli tak, musisz wysłać userowi na podany przez niego adres wiadomość z linkiem do skryptu potwierdzającego adres email, zawierającym parametry GET np. login, mail, lub losowy kod utworzony dla usera i przyporządkowany mu w bazie danych, dodatkowo najlepiej wszystko zahaszować md5().


--------------------
 Wszystkie wielkości świata nie są tyle warte, co dobra przyjaźń...
Go to the top of the page
+Quote Post
jaroslavt
post 30.10.2008, 20:19:38
Post #7





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 31.05.2008
Skąd: Katowice

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


Dzięki blooregard o to własnie mi chodziło. Fakt bardzo zagmatwanie sie zrobiło. Póki co ważne, że działa a teraz zajme sie uporządkowaniem tego.

YaQzi - aż tak znów nie jest to potzebne. Wystarczyło mi aby wpisujący podał właściwego maila by można mu odp ponieważ były takie przypadki że były literówki etc.
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 - 01:08