Buongiorno ragazzi,
Ho scritto una banale funzione per controllare se una stringa inserita attraverso un form , corrisponde al formato di un indirizzo email.. Il problema è che mi restituisce sempre FALSE. Anche quando la stringa soddisfa i requisiti dell'espressione regolare che ho usato come $pattern..
il codice del form:
nel file register.php semplicemente istanzio l'oggetto della classe , e faccio partire la funzione per l'inserimento utente:
infine la classe NewUser() :
Se ad esempio inserisco [email protected] mi restituisce FALSE.
Magari sto utilizzando un espressione regolare sbagliata? Qualche idea? Sto diventando scemo.
Grazie in anticipo e buon proseguimento di giornata
Ho scritto una banale funzione per controllare se una stringa inserita attraverso un form , corrisponde al formato di un indirizzo email.. Il problema è che mi restituisce sempre FALSE. Anche quando la stringa soddisfa i requisiti dell'espressione regolare che ho usato come $pattern..
il codice del form:
HTML:
<form action="register.php" method="POST" id="register">
username:<br/>
<input type="text" name="username" maxlength="20" id="name" class="input_form ui-corner-all"><br /><br />
email:<br/>
<input type="text" name="email" maxlength="60" class="input_form ui-corner-all" id="email"><br /><br />
password:<br />
<input type="password" name="password" maxlength="20" class="input_form ui-corner-all" id="password"><br /><br />
ripeti password:<br/>
<input type="password" name="password" maxlength="20" class="input_form ui-corner-all" id="password2"><br /><br />
<input type="submit" name="submit" value="registrati" class="button ui-corner-all ui-state-default">
</form>
nel file register.php semplicemente istanzio l'oggetto della classe , e faccio partire la funzione per l'inserimento utente:
PHP:
<?php
include_once 'lib/newuser.class.php';
$obj = new NewUser();
if(isset($_POST['submit'])) {
$obj->AddUser();
die;
}
if(isset($_POST['key'])) {
$obj->VerifyUser();
die;
}
if(isset($_POST['login'])) {
$obj->VerifyLogin();
die;
}
?>
infine la classe NewUser() :
PHP:
//la funzione AddUser() rimanda alla funzione per il controllo degli errori ErrorReport()
public function AddUser() {
$this->ErrorReport();
}
protected function ErrorReport() {
if($this->IsEmptyField()) {
$this->ErrorResult(1);
}
if($this->VerifyPassword()) {
$this->ErrorResult(2);
}
if($this->UsernameExists()) {
$this->ErrorResult(3);
}
if($this->EmailExists()) {
$this->ErrorResult(4);
}
if(!$this->VerifyEmail()) {
$this->ErrorResult(5);
}
$this->InsertNewUser();
}
public function ErrorResult($num) {
header("Location: subscription.php?alert=" .$num);
die;
}
// infine ecco la funzione che mi sta dando problemi
protected function VerifyEmail() {
$pattern = "^([a-zA-Z0-9])+([a-zA-Z0-9]+[-_\.]?)*([a-zA-Z0-9])+(@)([a-zA-Z0-9])+([a-zA-Z0-9]+[-_\.]?)*([a-zA-Z0-9])+(\.[a-z]{2,4})$";
if(preg_match($pattern,$_POST['email'])) {
return TRUE;
}
else {
return FALSE;
}
}
Se ad esempio inserisco [email protected] mi restituisce FALSE.
Magari sto utilizzando un espressione regolare sbagliata? Qualche idea? Sto diventando scemo.
Grazie in anticipo e buon proseguimento di giornata