Autor Zpráva
Argonisius
Profil
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
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
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
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
Argonisius
ani ten můj první příklad ti nefunguje ?
Argonisius
Profil
Ono to funguje všechno kromě ověření té domény...

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0