V súčasnosti mám na svojej webovej stránke registračný skript, ktorý vyžaduje, aby e-mail bol z konkrétnej domény.
V tomto príklade teda povieme, že používateľ sa musí prihlásiť pomocou e-mailu @ gmail.com.
$gmail = "gmail.com";
$emailCheck = strpos($_POST["email"],$gmail);
Pred pokračovaním skontrolujte, či e-mail odoslaný prostredníctvom formulára používateľov obsahuje gmail.com.
if($emailCheck === false) {
$err[]="Only @gmail.com email addresses are currently accepted.";
}
Až potom pokračujem v registrácii pomocou kontroly a zistím, či sa vyskytli nejaké chyby $ err [].
if(!count($err)) {
// INSERT IN DB, ETC. //
}
Problém, ktorý mám, je, že ak používateľ vyplní údajeuser@yahoo.com skript poskytuje a chyba. Ak používateľ poskytne adresu user@gmail.com, funguje to tak, ako má. Ak však používateľ zadá iba prvú časť e-mailu vynechávajúcu @ gmail.com, funguje to tiež, spustením dotazu SQL a zadaním hodnôt do databázy DB.
Akákoľvek pomoc by bola veľmi ocenená!
odpovede:
2 pre odpoveď č. 1$input=trim($_POST["email"]);
if (preg_match("/^S+@gmail.com$/i", $input) {
// INSERT IN DB, ETC. //
}
else {
$err[]="Only valid <your_login>@gmail.com email addresses are currently accepted.";
}