Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Adres e-mail
Forum PHP.pl > Forum > PHP
Domin
Cześć! Mam dwa skrypty. Jeden do zapisywania adresu e-mail w bazie danych, a drugi do sprawdzania poprawności tego adresu. Nie wiem jak je połączyć w jedno ..., chciałbym też aby gdy e-mail jest nie poprawny żeby została wyświetlona informacja że takieo e-maila nie ma. Macie jakieś pomysły?? Chciałbym to zrobić jak najszybciej bo ludzie zawalają mi bazę danych nieistniejacymi e-mailami. Poniżej zamieszczam dwa kody php.

Kod dodający (do niego trzeba połączyć w jeden skrypt drugą część):

  1. <?php
  2. if ( isset($_POST['wpisz']) ){
  3. $mail = escape_data($_POST['mail']);
  4. $ip=$REMOTE_ADDR;
  5. $host=gethostbyaddr($ip);
  6.  
  7. $query2 = "INSERT INTO newsttler ( mail, data, ip, host) VALUES ( '$mail', NOW(), '$ip', '$host' )";
  8. $result2 = mysql_query ($query2);
  9.  
  10.  echo '<div align="center"><font color="red">Twój adres e-mail został dodany</font></div>';
  11.  }else{
  12.  echo '<div align="center"><font color="red" align=center>Twój adres nie został dodany</font></div>';
  13.  }}
  14.  
  15.  
  16. <form name="wpisz" action="index.php" method="post">
  17. <tr><td align="center">
  18. <input type="text" name="mail" value="Twój adres e-mail"/></td></tr>
  19. <tr><td align="center">
  20. <input type="hidden" name="ip" value="'.$ip.'" />
  21. <input type="hidden" name="host" value="'.$host.'" />
  22. <input type="submit" name="wpisz" value="Dopisz się" /></form>';
  23. ?>


I Skrypt sprawdzajacy:

  1. <?php
  2. function verifyEmail($mail) {
  3.  
  4.  $wholeexp = '/^(.+?)@(([a-z0-9.-]+?).[a-z]{2,5})$/i';
  5.  
  6.  $userexp = "/^[a-z0-9~!#$%&()-_+=[];:'",./]+$/i";
  7.  
  8.  if (preg_match($wholeexp, $mail, $regs)) {
  9.  
  10.  $nick = $regs[1];
  11.  
  12.  $host = $regs[2];
  13.  
  14.  if (checkdnsrr($host, MX)) {
  15.  
  16.  if (preg_match($userexp, $nick)) {
  17.  
  18.  return true;
  19.  
  20.  } else {
  21.  
  22.  return false;
  23.  
  24.  }
  25.  
  26.  } else {
  27.  
  28.  return false;
  29.  
  30.  }
  31.  
  32.  } else {
  33.  
  34.  return false;
  35.  
  36.  }
  37.  
  38. }
  39. ?>
mike
  1. <?php
  2.  
  3. function verifyEmail( $email ) 
  4. {
  5. // ciało funkcji;
  6. }
  7.  
  8. if ( isset( $_POST[ 'wpisz' ] ) && verifyEmail( escape_data( $_POST[ 'mail' ] ) ) )
  9. {
  10. // operacje związane z dodawaniem maila do bazy
  11. }
  12.  
  13. ?>
Domin
Zrobiłęm tak, ale wywala mi taki błąd:
  1. <?php
  2. Fatal error: Call to undefined function: checkdnsrr() in c:&#092;usrkrasnalwwwradioincludesfunkcje.php on line 15
  3. ?>
chfast
Cytat(Domin @ 2005-12-16 13:55:30)
Zrobiłęm tak, ale wywala mi taki błąd:
  1. <?php
  2. Fatal error: Call to undefined function: checkdnsrr() in c:&#092;usrkrasnalwwwradioincludesfunkcje.php on line 15
  3. ?>

Funkcja checkdnsrr" title="Zobacz w manualu php" target="_manual nie jest zaimplementowana dla platformy Windows. Proponuje wyrzucić całkowicie sprawdzania czy host istnieje z funkcji weryfikującej emial.
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.