Script pe rgarantire univocita' mail nel db mysql

frank ocean

Nuovo Utente
13 Ott 2012
18
0
0
Salve ragazzi vorrei impostare una funzione in maniera tale che venga impedito l'inserimento (tramite form)di un utente con una mail gia presente nel database mysql


PHP:
<?php

if (isset($cognome,$nome,$azienda,$ruolo,$telefono,$cellulare)) {

echo "la variabile e' valorizzata";
}

$cognome=$_POST['cognome'];
$nome=$_POST['nome'];
$azienda=$_POST['azienda'];
$ruolo=$_POST['ruolo'];
$email=$_POST['email'];
$telefono=$_POST['telefono'];
$cellulare=$_POST['cellulare'];




//ho richiamato il file di configurazione 

require 'config.php'; 


//ho richiamato il file di connessione 

require 'connect.php'; 


//ho inserito la query per l'upload dei dati sul database 

$query="INSERT INTO clienti_registrati(cognome,nome,azienda,ruolo,email,telefono,cellulare) 
       
        VALUES('$cognome','$nome','$azienda','$ruolo','$email','$telefono','$cellulare')"; 
		

         
$result = mysql_query($query); 

   if (!$result) { 
    die("Errore nella query $query: " . mysql_error()); 
     
               }
 

echo 'Query eseguita correttamente'; 


         



?>
 
codice

$query="SELECT email FROM clienti_registrati WHERE email LIKE ".$email.";
$risultati = mysql_query($query);

if(mysql_num_rows($risultati) > 0) {

//email già presente

} else {

// email non presente quindi inserisci i dati


}


......
 
niente da fare la query viene eseguita e continuo ad avere doppioni sul database

PHP:
<?php

if (isset($cognome,$nome,$azienda,$ruolo,$telefono,$cellulare)) {

echo "la variabile e' valorizzata";
}

$cognome=$_POST['cognome'];
$nome=$_POST['nome'];
$azienda=$_POST['azienda'];
$ruolo=$_POST['ruolo'];
$email=$_POST['email'];
$telefono=$_POST['telefono'];
$cellulare=$_POST['cellulare'];




//ho richiamato il file di configurazione 

require 'config.php'; 


//ho richiamato il file di connessione 

require 'connect.php'; 

$query="SELECT email FROM clienti_registrati WHERE email LIKE '.$email.'"; 
$risultati = mysql_query($query);

if(mysql_num_rows($risultati) > 0) {

echo 'email già presente';

} else {

echo 'email non presente quindi inserisci i dati';


}
 
//ho inserito la query per l'upload dei dati sul database 

$query="INSERT INTO clienti_registrati(cognome,nome,azienda,ruolo,email,telefono,cellulare) 
       
        VALUES('$cognome','$nome','$azienda','$ruolo','$email','$telefono','$cellulare')"; 
		

         
$result = mysql_query($query); 

   if (!$result) { 
    die("Errore nella query $query: " . mysql_error()); 
     
               }
 

echo 'Query eseguita correttamente'; 


         



?>
 
niente da fare la query viene eseguita e continuo ad avere doppioni sul database

PHP:
$query="SELECT email FROM clienti_registrati WHERE email LIKE '.$email.'"; 
$risultati = mysql_query($query);

if(mysql_num_rows($risultati) > 0) {

echo 'email già presente';

} else {

echo 'email non presente quindi inserisci i dati';


}
 
//ho inserito la query per l'upload dei dati sul database 

$query="INSERT INTO clienti_registrati(cognome,nome,azienda,ruolo,email,telefono,cellulare) 
       
        VALUES('$cognome','$nome','$azienda','$ruolo','$email','$telefono','$cellulare')";


Pensavo di esser stato chiaro...

$query="INSERT INTO clienti_registrati(cognome,nome,azienda,ruolo,email,telefono,cellulare)

VALUES('$cognome','$nome','$azienda','$ruolo','$email','$telefono','$cellulare')";

questo codice va nell'else. Se lo lasci fuori dall'if verrà eseguito in qualunque caso.. nell'else invece viene eseguito solo nel caso in cui la mai non è già presente nel database. Ti scrivo il codice per essere più sicuro


$query="SELECT email FROM clienti_registrati WHERE email LIKE '.$email.'";
$risultati = mysql_query($query);

if(mysql_num_rows($risultati) > 0) {

echo 'email già presente';

} else {

echo 'email non presente quindi inserisci i dati';

//ho inserito la query per l'upload dei dati sul database

$query="INSERT INTO clienti_registrati(cognome,nome,azienda,ruolo,email,telefono,cellulare)

VALUES('$cognome','$nome','$azienda','$ruolo','$email','$telefono','$cellulare')";

mysql_query($query);


}
 
includendo la query di upload dati nell'else come hai detto tu:

PHP:
if(mysql_num_rows($risultati) > 0) {

echo 'email già presente';

} else {

echo 'email non presente quindi inserisci i dati';
//ho inserito la query per l'upload dei dati sul database 

$query="INSERT INTO clienti_registrati(cognome,nome,azienda,ruolo,email,telefono,cellulare) 
       
        VALUES('$cognome','$nome','$azienda','$ruolo','$email','$telefono','$cellulare')"; 
	$result = mysql_query($query); 

   
	    }




ECCO COSA SUCCEDE PROVANDO AD INSERIRE UN UTENTE CON UNA MAIL GIA PRESENTE NEL DB:

connesso con successo email non presente quindi inserisci i dati.
 
includendo la query di upload dati nell'else come hai detto tu:

PHP:
if(mysql_num_rows($risultati) > 0) {

echo 'email già presente';

} else {

echo 'email non presente quindi inserisci i dati';
//ho inserito la query per l'upload dei dati sul database 

$query="INSERT INTO clienti_registrati(cognome,nome,azienda,ruolo,email,telefono,cellulare) 
       
        VALUES('$cognome','$nome','$azienda','$ruolo','$email','$telefono','$cellulare')"; 
	$result = mysql_query($query); 

   
	    }




ECCO COSA SUCCEDE PROVANDO AD INSERIRE UN UTENTE CON UNA MAIL GIA PRESENTE NEL DB:

connesso con successo email non presente quindi inserisci i dati.


prova con questo

PHP:
<?php 

if (isset($cognome,$nome,$azienda,$ruolo,$telefono,$cellulare)) { 

echo "la variabile e' valorizzata"; 
} 

$cognome=$_POST['cognome']; 
$nome=$_POST['nome']; 
$azienda=$_POST['azienda']; 
$ruolo=$_POST['ruolo']; 
$email=$_POST['email']; 
$telefono=$_POST['telefono']; 
$cellulare=$_POST['cellulare']; 




//ho richiamato il file di configurazione  

require 'config.php';  


//ho richiamato il file di connessione  

require 'connect.php';  

$query="SELECT email FROM clienti_registrati WHERE email LIKE '".$email."'";  
$risultati = mysql_query($query); 

if(mysql_num_rows($risultati) > 0) { 

	echo 'email già presente'; 

} else { 

$query="INSERT INTO clienti_registrati(cognome,nome,azienda,ruolo,email,telefono,cellulare)  
        
        VALUES('$cognome','$nome','$azienda','$ruolo','$email','$telefono','$cellulare')";
	
		$result = mysql_query($query);  

		if (!$result) {  
			die("Errore nella query $query: " . mysql_error());  
		} else {
		
			echo 'Query eseguita correttamente';  
		} 

?>
 
Ultima modifica di un moderatore:
Grazie Domenico alla fine ho trovato la soluzione al problema, come ogni cosa bisogna sbattere la testa una dozzina di volte prima di raggiungere la soluzione al problema! Adesso dovro' cercare di creare lo script relativo al messaggio di avvenuta registrazione dell'utente
 
Prego

Grazie Domenico alla fine ho trovato la soluzione al problema, come ogni cosa bisogna sbattere la testa una dozzina di volte prima di raggiungere la soluzione al problema! Adesso dovro' cercare di creare lo script relativo al messaggio di avvenuta registrazione dell'utente


si infatti lo script era giusto, c'era solo qualche errore di scrittura perchè non scrivendo su un editor è facile sbagliare. Di nulla :)
 

Discussioni simili