Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak sprawdzić poprawność adresu e-mail ???
boya
post
Post #1





Grupa: Zarejestrowani
Postów: 287
Pomógł: 0
Dołączył: 26.02.2003
Skąd: Ow/Pn

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


Wlasnie jak wiecie to mi napiszci tongue.gif [/b]


--------------------
Reklamowa Oklejanie Samochodów: oklejanie pojazdów / tel. 62 597 74 48
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
rzseattle
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

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


FAQ

Cytat
4.14 Jak sprawdzić poprawność adresu e-mail?
Poniższa funkcja (napisana przez lemming nine) wykonuje dokładne sprawdzanie poprawności adresu e-mail. Sprawdza także czy domena istnieje i posiada prawidłowy rekord MX:


Kod
function verifyEmail($email) {

    $wholeexp = '/^(.+?)@(([a-z0-9.-]+?).[a-z]{2,5})$/i';

    $userexp = "/^[a-z0-9~!#$%&()-_+=[];:'",./]+$/i";

    if (preg_match($wholeexp, $email, $regs)) {

        $username = $regs[1];

        $host = $regs[2];

        if (checkdnsrr($host, MX)) {

            if (preg_match($userexp, $username)) {

                return true;

            } else {

                return false;

            }

        } else {

            return false;

        }

    } else {

        return false;

    }

}


A nasteonym razem najpierw sprawdz zanim zapytasz


--------------------
"Real children don't go hoppity-skip unless they are on drugs."
Go to the top of the page
+Quote Post
Goveer
post
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 8.03.2003
Skąd: Warszawa

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


[ciach]
A nasteonym razem najpierw sprawdz zanim zapytasz

nie latwiej tak:

if (!eregi("^.+@.+..+$", $email)) {
echo "<p align=center>Podano nieprawidłowy adres e-mail!</p><br><hr size=1><center>[ <a href=java script:history.go(-1)>popraw</a> ]</center>";
die();
}

najprostrze co moze byc (ja i tak wole Twoj, ale ten prostszy).
Go to the top of the page
+Quote Post
GeoS
post
Post #4





Grupa: Zarejestrowani
Postów: 602
Pomógł: 0
Dołączył: --
Skąd: W - WA -> GRO

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


Moze i latwiej, ale nie wiesz, czy adres rzeczywiscie istnieje :!:


--------------------
Zanim zadasz pytanie, zawsze wczesniej zajrzyj do manuala ( pl.php.net/manual/pl/ ).
Szukasz skryptow - www.hotscripts.com
Go to the top of the page
+Quote Post
user2
post
Post #5





Grupa: Zarejestrowani
Postów: 41
Pomógł: 3
Dołączył: 26.01.2005

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


Wiem, że to istna archeologia odkopywać temat po 5 latach, ale próbowałem dzisiaj skorzystać z powyższego skryptu, ale nie zadziałał.

Okazało się, że "popsute" są dwie linijki:

  1. <?php
  2. $wholeexp = '/^(.+?)@(([a-z0-9.-]+?).[a-z]{2,5})$/i';
  3.  
  4. $userexp = "/^[a-z0-9~!#$%&()-_+=[];:'",./]+$/i";
  5. ?>


powinno być:

  1. <?php
  2. $wholeexp = '/^(.+?)@(([a-z0-9.-]+?).[a-z]{2,5})$/i';
  3.  
  4. $userexp = "/^[a-z0-9!#$%&()-_+=[];:’\",./]+$/i";
  5. ?>


Czyli w całości:

  1. <?php
  2. function verifyEmail($email) {
  3. $wholeexp = '/^(.+?)@(([a-z0-9.-]+?).[a-z]{2,5})$/i';
  4.  
  5. $userexp = "/^[a-z0-9!#$%&()-_+=[];:’\",./]+$/i";
  6.  
  7.  if (preg_match($wholeexp, $email, $regs)) {
  8.  
  9.  $username = $regs[1];
  10.  
  11.  $host = $regs[2];
  12.  
  13.  if (checkdnsrr($host, MX)) {
  14.  
  15.  if (preg_match($userexp, $username)) {
  16.  
  17.  return true;
  18.  
  19.  } else {
  20.  
  21.  return false;
  22.  
  23.  }
  24.  
  25.  } else {
  26.  
  27.  return false;
  28.  
  29.  }
  30.  
  31.  } else {
  32.  
  33.  return false;
  34.  
  35.  }
  36. }
  37. ?>

Może się to komuś przyda, może nie, ale lepiej, żeby działało w razie czego smile.gif
Go to the top of the page
+Quote Post
dsinfo
post
Post #6





Grupa: Zarejestrowani
Postów: 20
Pomógł: 2
Dołączył: 30.03.2006

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


Najprostszy sposób sprawdzania poprawności adresu e-mail:

Plik - emp.php

  1. <?php
  2.  
  3. if (!ereg("^.+@.+..+$",$_POST[email])) {
  4. echo('Błąd!', 'red');
  5. }
  6. else {
  7. echo("Poprawnie");
  8. }
  9.  
  10. ?>
  11.  
  12. <form action="emp.php" method="post">
  13. <input type="text" name="email" value="<?php echo $_POST['email']; ?>" /><br>
  14. <input type="submit" value="Wyślij" />


Można by jeszcze dodać sprawdzanie długości wpisanego adresu e-mail, za pomocą polecenia - "strlen()".

Przykład:

  1. <?php
  2. strlen($_POST[email])<|| strlen($_POST[email])>8
  3. ?>


W tym wypadku powyższy kod sprawca, czy wpisane wyrażenie nie jest krótsze niż pięć znaków oraz
czy nie jest dłuższe niż osiem znaków.

Można także za pomocą funkcji "strpos()" - sprawdzić czy dany symbol znajduje się w odpowiedniej
zmiannej (w tym wypadku w naszym adresie e-mail).

Na poniższym przykładzie, sprawdzimy czy w naszym adresie znajduje się znak "+"?

  1. <?php
  2.  
  3. if (strpos($_POST[email],'+')) {
  4. echo("W podanym adresie znajduje się znak +");
  5. }
  6. else {
  7. echo("W podanym adresie nie znajduje się znak +");
  8. }
  9.  
  10. ?>
  11.  
  12. <form action="emp.php" method="post">
  13. <input type="text" name="email" value="<?php echo $_POST['email']; ?>" /><br>
  14. <input type="submit" value="Wyślij" />


Wystarczy wpisać np. "a+" i wcisnąć przycisk "Wyślij", aby ujrzeć napis "W podanym adresie znajduje się znak +".

To oczywiście tylko przykład. Ale, tą formułę można wykorzystać także do sprawdzania poprawności adresu.
Z pomoca tej funkcji wykryjemy czy w polu adresu wpisano niedozwolone znaki.
Go to the top of the page
+Quote Post
katsuo
post
Post #7





Grupa: Zarejestrowani
Postów: 18
Pomógł: 1
Dołączył: 1.05.2007

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


Mieszacie... http://pl.php.net/manual/pl/function.filter-var.php

Nie prosciej?;p
Pzdr.
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 Aktualny czas: 21.08.2025 - 03:56