Hogy tudom az alábbi kódban megvizsgálni az e-mailt ezzel a parancsal: <? php ereg ("^[a-zA-Z0-9_]+@[a-zA-Z0-9\-]+\. [a-zA-Z0-9\-\. ]+$]", $email) ; ? >?
A másik része:
<?php
if ( !empty($_POST['nev']) and !empty($_POST['felado']) and !empty($_POST['targy']) and !empty($_POST['uzenet']))
{
$to = '....@gmail.com';
$subject = $targy;
$message = $uzenet;
$headers = "From: ". $nev . " <" . $felado . ">\r\n";
mail($to, $subject, $message, $headers);
$kimenet.='Kedves '.$_POST['nev'].' az üzenete sikeresen el lett küldve!';
}
else { $kimenet.='Kérem, hogy töltse ki az összes mezőt!';}
?>
ereg -et nem használjuk már, php5-ben már elavult.. helyette:
preg_match() használata ajánlott...
de amúgy:
$mail = ; //amelyiket ellenőrizni akarod..pl $felado
if(!$mail OR ($mail == (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,6}$",$mail)))) {
$kimenet.='Kérem, hogy töltse ki az összes mezőt!';
}
else {
$kimenet.='Kedves '.$_POST['nev'].' az üzenete sikeresen el lett küldve!';
}
A reguláris kifejezéssel is gond van. Néhány szabályos email címet nem enged át, míg néhány nem szabályosat igen.
Pl. nem engedi át a gipsz.jakab@valami.hu -t, vagy a gipszjakab+hirlevel@valami.hu -t.
Átengedi viszont a gipszjakab@valami.tulhosszuorszagkod -t.
Én ezt a kis függvényt használom email ellenőrzésre:
function is_email($email){
$x = '\d\w!\#\$%&\'*+\-/=?\^_`{|}~'; //megengedett karakterek az accountnévben
return count($email = explode('@', $email, 3)) == 2
&& strlen($email[0]) < 65 //domain hossza<65
&& strlen($email[1]) < 256 //accountnév hossza<256
&& preg_match("#^[$x]+(\.?([$x]+\.)*[$x]+)?$#", $email[0]) //accountnév ellenőrzés (a végén nem lehet pont)
&& preg_match('#^(([a-z0-9]+-*)?[a-z0-9]+\.)+[a-z]{2,6}.?$#', $email[1]); //domain név ellenőrzés (2-6 karakteres országkód, nem lehet -- sorozat benne)
}
De még ez sem korrekt, köszönhetően az ékezetes domain neveknek.
Az a gond, hogy nem érted az alapvető programozási elemeket sem. Össze akarsz gányolni valami kódot, mindenféle programozási alapismeret nélkül. Aztán szépen összevágsz két kódot, amiben pl. ugyanaz a ciklusváltozó van egymáson belül, azt csodálkozol, hogy miért nem akarja befejezni a levélküldést. Szegény szerencsétlen áldozatok meg megkapják 2000 példányban a leveledet, ráadásul esetleg hibás karakterkódolással, mert ez nincs tisztázva a levélen belül…
Tudod mekkora kockázatot jelent egy POST paraméterként megadható címzett? Remekül ki tudnám használni, hogy valakinek a levelezőrendszerébe generáljak pár tízezer levelet, csak a megfelelő HTTP kérést kell ismételgetnem…
Szóval bocs, de én személy szerint nem fogok segíteni egy kód összebarkácsolásában, amíg egy feltételes elágazással nem bírsz megbirkózni.
ez nem egy működő oldal lesz, csak tanulok. éppen ezért kellene a segítség, hogy lássam, hogy hogy néz ki egy ilyen. nem fog senki sem több ezer levelet kapni, mert ez csak egy próba. szóval légy szíves írd le :)
egy php mail-t akarok egy e-mail ellenőrzéssel összekötni. semmi extra :)
Jó, legyen: [link]
De nehogy használd ezt a kódot élesben! Fel ne töltsd a netre! Oké, lokális gépen kísérletezéshez, tanulásra jó, de számtalan probléma van vele.
Pl. a tárgy vagy a név megfelelő preparálásával egészen másra lehet rávenni a rendszert, mint amit el szeretnél érni. Pl. hozzáadni címzetteket, megváltoztatni a feladót, stb…
Nem elég azt ellenőrizni, hogy egy formból érkező adat ki van-e töltve, hanem ellenőrizni kell azt is, hogy a megfelelő formátumban van-e. Pl. a tárgyban vagy a névben nincs-e sortörés. Vagy a név nem egy üres szóköz-e, stb…
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!