Problema con funzione preg_match() per controllo email

donot85

Nuovo Utente
25 Ott 2012
4
0
0
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:
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 :)
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
per validare un indirizzo email usa

PHP:
$email=filter_var($email, FILTER_VALIDATE_EMAIL);
da bool FALSE se l'email non sintatticamente corretta, è molto più comoda di preg_match
 

donot85

Nuovo Utente
25 Ott 2012
4
0
0
ciao
per validare un indirizzo email usa

PHP:
$email=filter_var($email, FILTER_VALIDATE_EMAIL);
da bool FALSE se l'email non sintatticamente corretta, è molto più comoda di preg_match

Grazie Borgo,
non conoscevo questa funzione e lo script adesso fa il suo dovere senza problemi :)
Saluti
 
Discussioni simili
Autore Titolo Forum Risposte Data
M Problema con connessione MySqli e funzione PHP 2
A [PHP] Problema invio mail con funzione mail() PHP 3
F [Javascript] Problema funzione jquery con elementi css esterni Javascript 1
S Problema con funzione "imagecreatefrompng" PHP 10
R Problema funzione caricate con il body Javascript 1
G Problema con la funzione array_combine PHP 2
L problema con la funzione header!!! AIUTO! PHP 24
M problema con elementi della funzione Javascript 3
L problema nella implementare una funzione con ritorno PHP 2
F Problema con funzione cambia password PHP 5
S Problema return con funzione PHP 2
L problema email con funzione mail PHP 1
B Problema con funzione JS Javascript 4
S problema con funzione php PHP 3
D Problema apostrofo con funzione unlink PHP 7
C Problema nel Caricare file e spostarlo con la funzione move_uploaded_file PHP 14
Neptune7650 Piccolo problema con la funzione include PHP 1
asevenx problema con funzione per far apparire e scomparire un form di commenti PHP 1
asevenx problema con la funzione AVG() PHP 1
P Problema con la funzione mail PHP 13
G ajax php myqsl - problema con funzione javascript Ajax 1
F Problema con funzione di RainTpl PHP 3
dk-wamp problema con la funzione sleep PHP 4
jan267 Problema con funzione getElementsByClassName Javascript 2
O Principiante: problema con funzione CURL ###URGENTE### PHP 1
O problema con dvr dahua xvr5116 IP Cam e Videosorveglianza 0
G Problema con Xampp Web Server 1
andrea barletta Problema con miniature comandi Photoshop 0
I problema con alice Posta Elettronica 0
N Problema con position absolute e overflow HTML e CSS 4
L Problema con inner join PHP 11
K [php] Problema con inner join PHP 4
K [PHP] Problema con variabili concatenate. PHP 1
O problema con query PHP 4
I problema con 2 account Posta Elettronica 1
L problema collegamento file css con html HTML e CSS 1
E Problema accesso a file con app sviluppata con MIT APP INVENTOR 2 Sviluppo app per Android 0
M Problema con Try Catch PHP 0
Sergio Unia Problema con gli eventi del mouse su una data table: Javascript 2
T PROBLEMA CON SESSIONI PHP 3
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
R problema con else PHP 0
T PROBLEMA CON ARRAY PHP 8
L problema con query select PHP 2
R Problema query con ricerca id numerico PHP 2
F Problema con risposta PHP 0
S problema con recupero dati tabella mysql PHP 2
Z Problema con il mio tp-l i nk Reti LAN e Wireless 1
L Problema RAM con Tomcat 8 Apache 0
napuleone problema con sort e asort PHP 4

Discussioni simili