Autor | Zpráva | ||
---|---|---|---|
Argonisius Profil |
#1 · Zasláno: 17. 9. 2009, 15:03:37
Dobrý den, potřeboval bych poradit, jak do tohoto jednoduchého csriptu zakomponovat kontrolu správnosti emailu.
<? $predmet = $_POST['predmet']; $email = $_POST['email']; $antispam = $_POST['antispam']; $zprava = $_POST['zprava']; if ($predmet!="" and $email!="" and $zprava!="" and $antispam=="2") { mail("mail@mail.cz", $predmet, $zprava, "From: muj web"); echo 'Váš e-mail byl úspěšně odeslán.'; } else { echo 'Váš e-mail se nepodařilo odeslat.'; } ?> Díky. |
||
Taps Profil |
#2 · Zasláno: 17. 9. 2009, 16:55:58 · Upravil/a: Taps
Argonisius
<? $predmet = $_POST['predmet']; $email = $_POST['email']; $antispam = $_POST['antispam']; $zprava = $_POST['zprava']; if ($predmet!="" and $email!="" and $zprava!="" and $antispam=="2") { if(ereg('^[_a-zA-Z0-9\.\-]+@[_a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,6}$',$email){ mail("mail@mail.cz", $predmet, $zprava, "From: muj web"); echo 'Váš e-mail byl úspěšně odeslán.'; } else{echo "nesprávný formát emailu;"} } else { echo 'Váš e-mail se nepodařilo odeslat.'; } ?> |
||
Argonisius Profil |
#3 · Zasláno: 17. 9. 2009, 17:35:41
Díky.
|
||
Nitram Profil * |
Ještě doplním, PHP má funkci checkdnsrr, která umí zkontrolovat, jestli doména je platná, takže např. tímto způsobem odfiltultrujete e-mailové adresy s nesmyslnou doménou...
<? $predmet = $_POST['predmet']; $email = $_POST['email']; $antispam = $_POST['antispam']; $zprava = $_POST['zprava']; if ($predmet!="" and $email!="" and $zprava!="" and $antispam=="2") { if(ereg('^[_a-zA-Z0-9\.\-]+@[_a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,6}$',$email) && if(checkdnsrr(array_pop(explode("@",$email))))){ mail("mail@mail.cz", $predmet, $zprava, "From: muj web"); echo 'Váš e-mail byl úspěšně odeslán.'; } else{echo "Nesprávná adresa."} } else { echo 'Váš e-mail se nepodařilo odeslat.'; } ?> |
||
SwimX Profil |
Argonisius:
a ještě doplním, že zde uvedený regulár neřeší adresu například ondrej------sejvl@seznam.cz takže bych koukl ještě sem: http://interval.cz/clanky/regularni-vyrazy-v-php-2/ (jen pozor na zvýrazněnou změnu oprti originálnímu výrazu) if (EregI("^[a-z0-9]+[a-z0-9\._-]*[a-z0-9]+@[a-z0-9]+[a-z0-9\._-]*[a-z0-9]+\.[a-z]{2,6}$", $adresa) && !EregI("\.{2,}", $adresa) && !EregI("_{2,}", $adresa) && !EregI("-{2,}", $adresa) ): echo "Platná adresa"; else: echo "Neplatná adresa"; endif; |
||
Argonisius Profil |
#6 · Zasláno: 18. 9. 2009, 16:35:21
Tak.. nějak jsem to zkombinoval, ale pořád mi nefunguje to "odfiltrování" nesmyslné adresy. Kód je zde:
<? $predmet = $_POST['predmet']; $email = $_POST['email']; $antispam = $_POST['antispam']; $zprava = $_POST['zprava']; if ($predmet!="" and $email!="" and $zprava!="" and $antispam=="2") { if (EregI("^[a-z0-9]+[a-z0-9\._-]*[a-z0-9]+@[a-z0-9]+[a-z0-9\._-]*[a-z0-9]+\.[a-z]{2,6}$", $email) && !EregI("\.{2,}", $email) && !EregI("_{2,}", $email) && !EregI("-{2,}", $email) && checkdnsrr(array_pop(explode("@",$email)))) { mail("mail@mail.cz", $predmet, $zprava, "From: " . $email); header("Location: uspesne_odeslan.php"); exit(); } else { echo 'Nesprávný formát e-mailu!'; } } else { echo 'Váš e-mail se nepodařilo odeslat. Pravděpodobně jste špatně vyplnili údaje.'; } ?> Nevíte kde je chyba? |
||
Taps Profil |
#7 · Zasláno: 18. 9. 2009, 22:13:49
Argonisius
ani ten můj první příklad ti nefunguje ? |
||
Argonisius Profil |
#8 · Zasláno: 19. 9. 2009, 08:53:05
Ono to funguje všechno kromě ověření té domény...
|
||
Časová prodleva: 15 let
|
0