Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML] Weryfikacja formularza kontaktowego
Forum PHP.pl > Forum > Przedszkole
jaroslavt
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.
blooregard
Normalnie, dodajesz kolejne pole, nazywasz je np. email2, a potem sprawdzasz warunek: ($email === $email2) i już.
kefirek
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. ?>
jaroslavt
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
blooregard
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.
YaQzi
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().
jaroslavt
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.
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.