Autor | Zpráva | ||
---|---|---|---|
gogy27 Profil |
#1 · Zasláno: 6. 4. 2012, 10:48:09
Mám menši problém.
Nasledujúci kód mi aj napriek správne zadanému e-mailu vyhodi chybnú hlášku: zle zadaný e-mail: $email = htmlspecialchars(addslashes($_POST["email"])); if (!ereg("^[a-zA-Z0-9_]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$]",$email)) { $chyby.="Nesprávne vyplnený e-mail<br>"; } Môže byť chybou práve tie funkcie: htmlspecialchars respektíve addslashes (používam ich samozrejme na ochranu proti sql útokom. |
||
ATi Profil * |
#2 · Zasláno: 6. 4. 2012, 14:52:35
if (!preg_match( '/^[A-Z0-9._-]+@[A-Z0-9][A-Z0-9.-]{0,61}[A-Z0-9]\.[A-Z.]{2,6}$/i' , $adresa)) { echo "Email nemá správný tvar!"; }
else { //Tady pokracuje kdyz je email OK } |
||
peta Profil |
gogy27:
$email = $_POST["email"]; echo '<br>BEGIN'.$email.'END'; $email = addslashes($email); echo '<br>BEGIN'.$email.'END'; $email = htmlspecialchars($email); echo '<br>BEGIN'.$email.'END'; A tak jeste muzes zkusit primy test, bez tech funkci, kdyz myslis, ze na to maji vliv. $email = $_POST["email"]; if (!ereg("^[a-zA-Z0-9_]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$]",$email)) { $chyby.="Nesprávne vyplnený e-mail<br>"; } Jeste ti popisi vyraz, pro pochopeni, co se v nem deje. Lomitko v druhe sade znaku pred minus jen rika, ze to ma byt minus pro reg. vyraz. totez v posledni sade. ^ zacatek
[a-zA-Z0-9_]+ opakovani znaku v zavorce, 1 az n
@ zavinac
[a-zA-Z0-9\-]+ opakovani znaku v zavorce, 1 az n
\. tecka
[a-zA-Z0-9\-\.]+ opakovani znaku v zavorce, 1 az n
$ konec
"a@a.aa" platny " a@a.aa" neplatny, vyresila by funkce trim() "a@a.aa " neplatny, vyresila by funkce trim() "peter.mlich@a.aa " neplatny, obsahuje tecku, znak, ktery neni uvedeny v sade znaku pred zavinacem (podobne prvni 2 pripady, obsahuji mezeru, ta take neni v sade pred a v druhem pripade v sade po zavinaci) |
||
Str4wberry Profil |
#4 · Zasláno: 6. 4. 2012, 16:25:56
„Môže byť chybou práve tie funkcie: htmlspecialchars respektíve addslashes (používam ich samozrejme na ochranu proti sql útokom.“
První funkce ovlivňuje znaky < , > , & a " , druhá zase \ , " a ' . Takže to asi problém nebude, zkus si najít jiný regulární výraz pro kontrolu e-mailu.
Funkce htmlspecialchars , mimochodem, není ochrana před sql útokom.
|
||
gogy27 Profil |
#5 · Zasláno: 6. 4. 2012, 21:47:10
Dakujem za vysvetlenie :)
|
||
Časová prodleva: 13 let
|
0