Newsgroup: it.comp.www.php
Titolo: Errore in script per recuperare password

Sto realizzando nel mio portale uno script per la registazione, oggi stavo
cercando di fare lo script per recuperare la password inviala in email dallo
script riportato qui sotto ma mi da l'errore
Errore nell'esecuzione della query Resource id #3
Mi aiutato a trovare il problema e far funzionare lo script???
Grazie mille
<?
session_start();
$email = $_POST['email'];
if((!$email)){
echo "Per piacere inserisci tutte le informazioni! <br />";
include 'login.htm';
exit();
}
$host="localhost";
$user="xxx";
$pass="xxx";
$database="registrazione";
$tabella="users";
$db=mysql_connect($host,$user,$pass) or die ("Errore durante la connessione
al server database");
mysql_select_db($database, $db) or die ("Errore durante la selezione del
database ".$database);
$sql = mysql_query("SELECT * FROM users WHERE email_address='$email'");
$result=mysql_query($sql, $db) or die ("Errore nell'esecuzione della query
".$sql);
while ($row=mysql_fetch_array($result)) {
// INVIO EMAIL TRAMITE POSTA
}
?>

> $sql = mysql_query("SELECT * FROM users WHERE email_address='$email'");
Non dovrebbe essere: $sql="SELECT....."
Visto che poi fai:
$result=mysql_query($sql, $db) or die ("Errore nell'esecuzione della query
".$sql);
? 

Ora la query funziona perň non mi trova niente quindi l'errore dovrebbe
essere qui:
$sql = "SELECT * FROM users WHERE email_address='$email'";
$email č la variabile che viene passata quindi questa query va a cercare se
nel mysql sotto email_address c'č un valore come email
ora facciamo finta che invece di invia username e pass via email voglia
stamparli:
while ($row=mysql_fetch_array($result)) {
$username = $row["username"];
$password = $row["password"];
echo "username: ".$username."<br> password:".$password."";
echo "".$email."";
}
C'č qualche errore messo cosě?


Mi sembra di no ma io userei mysql_fetch_assoc e non lo metterei in un ciclo 
while. Anzi, io usere direttamente mysql_result visto che il risultato 
dovrebbe essere solo uno. Cmq controlla con mysql_num_rows($sql) che ci sia 
l'email nel database.. 


Io non ne vedo. Fatti stampare il numero dei record recuperati prima di 
entrare nel ciclo while:
echo '<br />Numero records: '.mysql_num_rows($result).'<br />';
Magari il recordset tornato č vuoto.
Ciao.
	-Ema-

 echo '<br />Numero records: '.mysql_num_rows($result).'<br />';
Mi da 0 risultati.
Allora ho provato a farmi stampare la variabile $email e mi restituisce lo
stesso valore che sta nel campo email_address
quindi perchè
$sql = "SELECT * FROM users WHERE email_address='$email'";
nn funziona?

 
Sei sicuro di aver selezionato il database giusto? Magari ne hai fatta 
una copia ma hai dimenticato di modificare l'istruzione mysql_select_db.
Prova a farti sampare la variabile $sql e ad eseguire la query con 
phpMyAdmin.
Ciao.
	-Ema-

Eh la cosa è buffa...si può dire che ho perso un pomeriggio inutilmente.
In pratica il campo email_adress era settato a max 25 caratteri io avevo
settato una mail più lunga di 25 caratteri quindi veniva tagliata.
e tutti sanno che
us...@dominio.est != user@dominio
Vabbè grazie lo stesso x il vostro prezioso aiuto

come posso fare in modo che se
.mysql_num_rows($result).
è uguale a 0 dice che nn è stata trovata nessuna corrispondenza?