E' un pochetto pasticciato :-)Originariamente inviato da stest
sono alle prime armi con il php , per mettere in pratica quello che ho imparato finora sto provando a realizzare un accesso ad un sito , ho cominciato dalla parte che reputo piu semplice ( quella dell'iscrizione questa ) ... ma ora mi sono imbattuto in un problema .... sostanzialemente quando cerco di verificare che il username X non sia gia registrato ( poi dovro estenderlo anche alla mail ma questo lo affronto capendo dove sbaglio ora ) mi risponde o che esiste ( pur non esistendo ) o che non esite ( pur esistendo ) ...
questo è il codice
dove sbaglio ?Codice PHP:
<?php include('config.php'); ?>
<title>attendi</title>
<?php
$db = mysql_connect($host, $users) or die("impossibile accedere al db");
mysql_select_db($database, $db) or die("impossibile connettersi al db");
$query = "INSERT INTO login " . "(nome, user, email)" . "VALUES('" . $_REQUEST['nome'] . "','" . $_REQUEST['user'] . "','" . $_REQUEST['email'] . "')";
$query2 = " SELECT user FROM login WHERE user = $user"; $risultato =
mysql_query($query2, $db); $num = mysql_num_rows($risultato);
if ($num == 0)
{ print("spiacente ma il nick è stato scelto
");
exit; } else { print("possiamo procedere
");
}
$mail = 'email';
if (!mysql_query($query, $db))
{
print("attenzione impossibile aggiungere l'account");
} else {
print("utente registrato in attesa di conferma");
$to = $mail;
$subject = 'prova';
$message = 'ciaooooo';
$headers = 'From: [email]webmaster@example.com[/email]' . "\r\n" ;
'Reply-To: [email]webmaster@example.com[/email]' ;"\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
}
mysql_close($db);
?>
un altra cosa come mai non riesce ad ereditare dal form o dal db per usarlo come destinatario ?
comunque da quello che leggo
tu dichiari la Query al db nella variabile "$query" ma non la esegui!
quindi l'INSERT non lo fa!
Subito dopo tenti di fare una SELECT....
(e la esegui con $risultato = mysql_query($query2, $db)
di un dato che non è stato ancora scritto!
e comunque quello che più mi confonde è che:
- inserisci i dati nel DB
- controlli che esiste l'user
- se NON esiste ($num == 0) allora scrivi "spiacente ma il nick è stato scelto...
- altrimenti possiamo procedere
non dovrebbe essere il contrario?
L'ultimo pezzo di codice
if (!mysql_query($query, $db))
non l'ho capito
cosa dovrebbe fare?
"Mi pare di capire dalle stringhe"
che vorresti controllare che l'utente è già registrato ma non ha confermato giusto?
ma non capisco in base a quale criterio!
se cosi fosse dovresti aggiungere un campo nel DB es Status con 1 o 0 dove 1 è gia confermato 0 in attesa di conferma..
Ma magari non ho ben capito io!
detto questo facci sapere.
Ciao