Newsgroup: it.comp.www.php
Titolo: Password persa, come fare?

Come faccio per far recuperare la password ai miei iscritti?
Nel db la password è in md5.
Ho fatto una funzione per creare la nuova password da inviare via
email, ma una volta inserito email e nick nel form per richiedere la
password persa non succede nulla... avete qualche consiglio?

Mabo ha scritto:
 > Come faccio per far recuperare la password ai miei iscritti?
 > Nel db la password č in md5.
 > Ho fatto una funzione per creare la nuova password da inviare via
 > email, ma una volta inserito email e nick nel form per richiedere la
 > password persa non succede nulla... avete qualche consiglio?
 >
Come diceva il buon vecchio Setec definisci "non succede nulla"... cosa 
dovrebbe fare questa funzione?

 dovrebbe fare questa funzione?
A proposito [OT] ma che fine ha fatto Setec? 

Piergiorgio Bolla ha scritto:
 >> Come diceva il buon vecchio Setec definisci "non succede nulla"... cosa
 >> dovrebbe fare questa funzione?
 >
 > A proposito [OT] ma che fine ha fatto Setec?
 >
 >
Purtroppo non si sa più nulla, spero che stia bene e che se ne sia 
andato solo perchè si era rotto di rispondere a tutti.
E pensare che da lui ho imparato tantissimo...

 Purtroppo non si sa più nulla, spero che stia bene e che se ne sia 
a quanto pare sta bene
http://groups.google.it/group/it.lavoro.professioni.webmaster/msg/dc3b4184b52af449
rimane il mistero dell'improvvisa scomparsa da usenet ...
la data dell'ultimo post è il 3 maggio 2006 ...

 la data dell'ultimo post è il 3 maggio 2006 ...
Uhm... già...
dove sarà finito? :(
Anch'io spero stia bene.
David
-- 
Linux Registered User #334216
Get FireFox! >> 
http://www.spreadfirefox.com/?q=affiliates&id=48183&t=1
Staff >> 
http://www.debianizzati.org
 <<

Allora la funzione che crea la password è questa:
///////////////////////////////////////////////////////////////////////////
function creaPassword(){
	$chars='azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN0123456789';
	$password=NULL;
	for($i=0;$i<8;$i++)
		$password.=$chars{mt_rand(0,strlen($chars)-1)};
	return $password;
}
///////////////////////////////////////////////////////////////////////////
IL FILE E' QUESTO:
///////////////////////////////////////////////////////////////////////////
<?if(!$HTTP_POST_VARS){?>
	<form method="post" action="<?echo
$_SERVER['PHP_SELF']."?id=login";?>">
		<table>
			<tr><td>Username:</td><td><input name="username" type="text"
/></td></tr>
			<tr><td>E-mail:</td><td><input name="email" type="text" /></td></tr>
			<tr><td><input type="reset" name="cancella" value="Cancella"
/></td><td><input type="submit" name="invia" value="Invia" /></td></tr>
		</table>
	</form>
<?
} else {
	// Depurazione del registro POST per evitare sql injection, cross
scripting ecc
	$username=trim(addslashes(strip_tags($_POST['username'])));
	$email=trim(addslashes(strip_tags($_POST['email'])));
	// Controlla che l'indirizzo email sia corretto
	if(!eregi("^[a-z0-9][_\.a-z0-9-]+@([a-z0-9][0-9a-z-]+\.)+([a-z]{2,4})$",$email)){
		echo "Devi inserire un indirizzo email valido";
		exit();
	}
	// Controlla che lo username sia registrato nel DB
	connetti();
	$controllo=mysql_query("select
username,password,email,livello,nome,cognome from Utenti where
username='$username' union select
username,password,email,livello,nome,cognome from Agenti where
username='$username'");
	if(mysql_num_rows($controllo)>0){
		$res=@mysql_fetch_array($controllo);
		if($res['username']=="ghost"){
			echo "<script>location.href='index.php?id=newPass';</script>";
			exit();
		}
		if($res['email']!=$email){
			echo "<script>location.href='index.php?id=newPass';</script>";
			exit();
		}
		// Creazione password
		$password=creaPassword();
		$passwd=md5($password);
		// Creazione codice attivazione
		$codice=attivazione($username,$password,$email);
		if(($res['livello']==3)||($res['livello']==4)){
			$table="Agenti";
			$agente=1;
		}
		$query=mysql_query("update $table set
livello=0,passwd='$passwd',attivazione='$codice' where
username='".$res['username']."'");
		echo "La nuova password &egrave; stata inviata alla casella email con
cui ti sei registrato.<br /><br />Grazie!<br />Lo staff";
		// Invio della mail di conferma all'iscritto col codice di
attivazione
		$oggetto="Nuova Password";
		$messaggio="Buongiorno ".$res['nome']." ".$res['cognome'].", la
password da te richiesta e' $password.\n\nPer attivare la registazione
a MAbbEf basta cliccare sul link qui sotto: ";
		if($agente==1)
			$messaggio.=strtolower(strtok($_SERVER['SERVER_PROTOCOL'],
'/'))."://".$_SERVER['HTTP_HOST'].dirname($_SERVER['SCRIPT_NAME'])."/registra.php?user=".$res['username']."&lev=agente&code=$codice";
		$messaggio.="\n\nGrazie!\nLo staff";
		mailuser($email,$oggetto,$messaggio);
	} else echo "<script>location.href='index.php?id=login';</script>";
}
?>
///////////////////////////////////////////////////////////////////////////

 		mailuser($email,$oggetto,$messaggio);
Definisci mailuser().
Perché non utilizzi mail()?
Saluti,


function mailuser($dest,$oggetto,$messaggio){
	$intestazioni ="MIME-Version: 1.0\r\n";
	$intestazioni.="Content-Type: text/plain; charset=ISO-8859-1\r\n";
	$intestazioni.="From: ".$GLOBALS['mailAdmin']."\r\n";
 
	mail($dest,$oggetto,$messaggio,$intestazioni);
}

Nessuno saprebbe aiutarmi?

Sistemato tutto!
Chiudo il Topic!

 
http://groups.google.it/group/it.lavoro.professioni.webmaster/msg/dc3b4184b52af449
 
meno male!!!!!
massimiliano