[PHP] Validazione email e password

  • Creatore Discussione Creatore Discussione kogaijy
  • Data di inizio Data di inizio

kogaijy

Nuovo Utente
19 Gen 2011
14
0
1
Salve a tutti. Ho creato un form di registrazione ed ho la necessità di un controllo su email e pass.
Dovrei controllare se l'email esiste nel database e se il suo formato è corretto (cosi da evitare inserimenti tipo dagtaagaga), per quanto riguarda la pass devo controllare semplicemente che siano uguali. Il tutto dovrebbe restituire dei messaggi di errore in caso di email esistente o pass uguali.

Al momento sono riuscito a risolvere solamente la convalida della pass con un semplice script javascript.
Per quanto riguarda la mail non riesco a concludere nulla purtroppo.

Qualche consiglio? Allego alcune porzioni di codice:

Con questa gestisco l'inserimento dei campi nel db.
Codice:
<?php

if(isset($_POST['user'])&&isset($_POST['pass1'])){
$pass=md5($_POST['pass1']);
$user=addslashes(strip_tags($_POST['user']));
$mail=addslashes(strip_tags($_POST['mail']));

mysql_query("INSERT INTO utenti (nickname, password, mail) VALUES ('$user', '$pass', '$mail')");
$q = mysql_query("SELECT nickname,password,idutente,master FROM utenti WHERE nickname = '$user'");
$r = mysql_fetch_array($q, MYSQL_NUM);
$_SESSION['user']=$r[0];
$_SESSION['idutente']=$r[2];
$_SESSION['master']=$r[3];
$fp = fopen('log/iscrizioni.txt', 'a');   
fwrite($fp, "[NEW USER] [". date("d/m/Y") ."] [". date("H.i:s") ."] [" . $_SERVER['REMOTE_ADDR'] . "] [".

$_SESSION['user'] ."]\n");
    header("location: home.php");
}

if (isset($_SESSION['user'])) {
    header("location: home.php");
}

?>

Con questa controllo se le pass sono differenti o meno:
Codice:
<script language="Javascript" type="text/javascript">
<!--
function testpass(modulo){


  // Verifico che il campo password sia valorizzato in caso contrario
  // avverto dell'errore tramite un Alert
  if (modulo.pass1.value == ""){
    alert("Errore: inserire una password!")
    modulo.pass1.focus()
    return false
  }
  // Verifico che le due password siano uguali, in caso contrario avverto
  // dell'errore con un Alert
  if (modulo.pass1.value != modulo.pass2.value) {
    alert("La password inserita non coincide con la prima!")
    modulo.pass1.focus()
    modulo.pass1.select()
    return false
  }
  return true
} 

-->
 
ciao
ti schematizzo
comunque una cosa abbandona le vecchie istruzioni mysql obsolete e in via di estinzione e passa alle nuove mysqli
PHP:
//.......
$pass=md5($_POST['pass1']);
$user=addslashes(strip_tags($_POST['user']));
$mail=$_POST['mail'];
$mail=filter_var($mail,FILTER_SANITIZE_EMAIL);
if(!filter_var($mail, FILTER_VALIDATE_EMAIL)){
    //errore, messaggio e rimandi dove vuoi
}else{
    $q=mysqli_query($conn,"SELECT mail FROM utenti WHERE mail='$mail'");
    if(mysqli_num_rows($q) > 0){
        //email esitente, messaggio e rimandi dove vuoi
    }
}
$q=mysqli_query($conn,"SELECT password FROM utenti WHERE password='$pass'");
if(mysqli_num_rows($q) > 0){
        //password esitente, messaggio e rimandi dove vuoi
}
//fai quello che devi fare
 

Discussioni simili