Aiuto creazione reinvio password utenti

  • Creatore Discussione Creatore Discussione CIMO
  • Data di inizio Data di inizio

CIMO

Nuovo Utente
8 Apr 2007
18
0
0
Ciao a tutti ho un problema con la creazione di un reinvio password da parte degli utenti

Questo e' il mio file register.php
Codice:
<?

include 'db.php';

if(!eregi("^[a-z]{5,15}$",$first_name)){
echo "Nome non valido ";
echo "<a href=\"./join_form.php\">Torna</a>";
exit;
}

if(!eregi("^[a-z]{5,15}$",$last_name)){
echo "Cognome non valido ";
echo "<a href=\"./join_form.php\">Torna</a>";
exit;
}

if (!eregi( "^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4}$",$email_address)){
echo "E-mail non valida ";
echo "<a href=\"./join_form.php\">Torna</a>";
exit;
}

if(!eregi("^[0-9a-z]{4,10}$",$username)){
echo "Username non valido ";
echo "<a href=\"./join_form.php\">Torna</a>";
exit;
}

// Define post fields into simple variables
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$email_address = $_POST['email_address'];
$username = $_POST['username'];

/* Lets strip some slashes in case the user entered
any escaped characters. */

$first_name = stripslashes($first_name);
$last_name = stripslashes($last_name);
$email_address = stripslashes($email_address);
$username = stripslashes($username);

/* Let's do some checking and ensure that the user's email address or username
 does not exist in the database */

 $sql_email_check = mysql_query("SELECT email_address FROM users WHERE email_address='$email_address'");
 $sql_username_check = mysql_query("SELECT username FROM users WHERE username='$username'");

 $email_check = mysql_num_rows($sql_email_check);
 $username_check = mysql_num_rows($sql_username_check);

 if(($email_check > 0) || ($username_check > 0)){
 	if($email_check > 0){
 		echo "<strong>La tua E-mail risulta gia' registrata nel nostro database. Inserisci una diversa E-mail!<br />";
 		unset($email_address);
 	}
 	if($username_check > 0){
 		echo "L' Username risulta gia' registrato nel nostro database. Inserisci un diverso Username!<br />";
 		unset($username);
 	}
 	include 'join_form.php'; // Show the form again!
 	exit();  // exit the script so that we do not create this account!
 }

/* Everything has passed both error checks that we have done.
It's time to create the account! */

/* Random Password generator.
http://cimo.altervista.org/file_reg.../passRandom.php

We'll generate a random password for the
user and encrypt it, email it and then enter it into the db.
*/

function makeRandomPassword() {
  bla bla =P
}

$random_password = makeRandomPassword();

$db_password = md5($random_password);

// Enter info into the Database.
$info2 = htmlspecialchars($info);
$sql = mysql_query("INSERT INTO users (first_name, last_name, email_address, username, password, info, signup_date, decrypted_password)
		VALUES('$first_name', '$last_name', '$email_address', '$username', '$db_password', '$info2', now(), '$random_password')") or die (mysql_error());

if(!$sql){
	echo 'Errore nel creare il tuo account!! Contatta il WebMaster.';
} else {
	$userid = mysql_insert_id();
	$activatepath = "activate.php?id=$userid&code=$db_password";
	// Let's mail the user!
	$subject = "Richiesta registrazione $sitename";
	$message = "$first_name $last_name,
	Hai inviato la registrazione su $sitepath

	Per attivare il tuo account, clicca qui: $sitepath$activatepath

	I tuoi dati:
	Username: $username
	Password: $random_password
	
	CONSERVA QUESTI DATI XCHE' PER LA TUA PRIVACY E QUELLA DEGLI ALTRI I DATI SONO CRIPTATI!!

	Grazie!
	WebMaster, $sitename

	Questa E-mail viene generata automaticamente quindi non rispondere!";

	mail($email_address, $subject, $message, "From: $sitename <$adminemail>\nX-Mailer: PHP/" . phpversion());
	
	echo 'La tua richiesta e' stata inviata alla tua E-mail controlla!';
}
?>

E questo e' il mio file rec.php
Codice:
<?php

include 'db.php';

$message="Ciao $username_check,\n ecco i dati di accesso che hai richiesto:\n
nick: $username\n
password: $random_password\n
A presto!!\n
Staff di $nomesito.\n\n\n\n\n";

mail($email_address, $subject, $message, "From: $sitename <$adminemail>\nX-Mailer: PHP/" . phpversion());

/* Let's do some checking and ensure that the user's email address or username
 does not exist in the database */

$sql_email_check = mysql_query("SELECT email_address FROM users WHERE email_address='$email_address'");

if(email_check >0){
echo "<html>
<head>
<meta http-equiv=\"refresh\" content=\"3;url=./index.htm\">
<link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\">
</head>
<body>
<div align=\"center\" class=tit>I dati richiesti sono stati inviati a $email_address</div>
</body>
</html>";
}else{
echo "Si è verificato un errore<br>non è stato possibile inviare i dati richiesti a $email_address";
}
?>

Voglio che quando mi sono registrato e tutto .. mettiamo per caso un fulmine che mi colpisce mentre sto' cac... al bagno mi dimentico la pass ke ho trovato nell'e-mail che mi e' stata inviata e voglio richiederla nuovamente e essere inviata alla mia e-mail

Be' ho fatto questi due file...ma nn va'...dove sbaglio aiutami ti prego voglio capire davvero e risolvere!!

E poi ho notato che nel db quando mi registro la mia e-mail viene tagliata?!!?
Codice:
email_address -> '[email protected]'

Mi date una mano? tnx =)
 
Per l'email che viene tagliata probabilmente hai un campo varchar troppo piccolo, tutto qui!

Per il recupero: hai bisogno della filosofia del funzionamento dello script o del codice?
 
Di un bell'aiuto!!! =D

Questo e' il mio file register.php
Codice:
<?

include 'db.php';

if(!eregi("^[a-z]{5,15}$",$first_name)){
echo "Nome non valido ";
echo "<a href=\"./join_form.php\">Torna</a>";
exit;
}

if(!eregi("^[a-z]{5,15}$",$last_name)){
echo "Cognome non valido ";
echo "<a href=\"./join_form.php\">Torna</a>";
exit;
}

if (!eregi( "^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4}$",$email_address)){
echo "E-mail non valida ";
echo "<a href=\"./join_form.php\">Torna</a>";
exit;
}

if(!eregi("^[0-9a-z]{4,10}$",$username)){
echo "Username non valido ";
echo "<a href=\"./join_form.php\">Torna</a>";
exit;
}

// Define post fields into simple variables
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$email_address = $_POST['email_address'];
$username = $_POST['username'];

/* Lets strip some slashes in case the user entered
any escaped characters. */

$first_name = stripslashes($first_name);
$last_name = stripslashes($last_name);
$email_address = stripslashes($email_address);
$username = stripslashes($username);

/* Let's do some checking and ensure that the user's email address or username
 does not exist in the database */

 $sql_email_check = mysql_query("SELECT email_address FROM users WHERE email_address='$email_address'");
 $sql_username_check = mysql_query("SELECT username FROM users WHERE username='$username'");

 $email_check = mysql_num_rows($sql_email_check);
 $username_check = mysql_num_rows($sql_username_check);

 if(($email_check > 0) || ($username_check > 0)){
     if($email_check > 0){
         echo "<strong>La tua E-mail risulta gia' registrata nel nostro database. Inserisci una diversa E-mail!<br />";
         unset($email_address);
     }
     if($username_check > 0){
         echo "L' Username risulta gia' registrato nel nostro database. Inserisci un diverso Username!<br />";
         unset($username);
     }
     include 'join_form.php'; // Show the form again!
     exit();  // exit the script so that we do not create this account!
 }

/* Everything has passed both error checks that we have done.
It's time to create the account! */

/* Random Password generator.
http://cimo.altervista.org/file_reg.../passRandom.php

We'll generate a random password for the
user and encrypt it, email it and then enter it into the db.
*/

function makeRandomPassword() {
  bla bla =P
}

$random_password = makeRandomPassword();

$db_password = md5($random_password);

// Enter info into the Database.
$info2 = htmlspecialchars($info);
$sql = mysql_query("INSERT INTO users (first_name, last_name, email_address, username, password, info, signup_date, decrypted_password)
        VALUES('$first_name', '$last_name', '$email_address', '$username', '$db_password', '$info2', now(), '$random_password')") or die (mysql_error());

if(!$sql){
    echo 'Errore nel creare il tuo account!! Contatta il WebMaster.';
} else {
    $userid = mysql_insert_id();
    $activatepath = "activate.php?id=$userid&code=$db_password";
    // Let's mail the user!
    $subject = "Richiesta registrazione $sitename";
    $message = "$first_name $last_name,
    Hai inviato la registrazione su $sitepath

    Per attivare il tuo account, clicca qui: $sitepath$activatepath

    I tuoi dati:
    Username: $username
    Password: $random_password
    
    CONSERVA QUESTI DATI XCHE' PER LA TUA PRIVACY E QUELLA DEGLI ALTRI I DATI SONO CRIPTATI!!

    Grazie!
    WebMaster, $sitename

    Questa E-mail viene generata automaticamente quindi non rispondere!";

    mail($email_address, $subject, $message, "From: $sitename <$adminemail>\nX-Mailer: PHP/" . phpversion());
    
    echo 'La tua richiesta e' stata inviata alla tua E-mail controlla!';
}
?>

Questo e' il file rec

Codice:
<?

include 'db.php';

/* Let's do some checking and ensure that the user's email address or username
does not exist in the database */

$sql_email_check = mysql_query("SELECT email_address FROM users WHERE email_address='$email_address'");
$email_check = mysql_num_rows($sql_email_check);

if($email_check > 0){
echo "<html>
<head>
<meta http-equiv=\"refresh\" content=\"3;url=./index.htm\">
<link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\">
</head>
<body>
<div align=\"center\" class=tit>I dati richiesti sono stati inviati a $email_address</div>
</body>
</html>";
}else{
echo "Si è verificato un errore<br>non è stato possibile inviare i dati richiesti a $email_address";
}
$message="Ciao $username_check,\n ecco i dati di accesso che hai richiesto:\n
nick: $username\n
password: $random_password\n
A presto!!\n
Staff di $nomesito.\n\n\n\n\n";

mail($email_address, $subject, $message, "From: $sitename <$adminemail>\nX-Mailer: PHP/" . phpversion());
?>

Quando vado per inserire l'e-mail mi dice ke nn e' possibile esegurire l'operazione...Nn calcola l'email di striscio..eppure le va' a salvare nel db?!?!

Ho notato ke in questo pezzo di codice dove verifica se nel db ci sono usernmane e password gia' registrati ( e quindi nega la registrazione se gia' esistenti ) l'username mi funziona ma l'e-mail no...e' allora ho pensato ke nn le va' a cercare proprio nel database...e mi sembra strano xche' e' uguale come l'username ma cambiano solo le variabili ma nn funziona...
Uff aiutatemi vi prego nn so' piu' dove sbattere la testa...

Codice:
$sql_email_check = mysql_query("SELECT email_address FROM users WHERE email_address='$email_address'");
 $sql_username_check = mysql_query("SELECT username FROM users WHERE username='$username'");

 $email_check = mysql_num_rows($sql_email_check);
 $username_check = mysql_num_rows($sql_username_check);

 if(($email_check > 0) || ($username_check > 0)){
     if($email_check > 0){
         echo "<strong>La tua E-mail risulta gia' registrata nel nostro database. Inserisci una diversa E-mail!<br />";
         unset($email_address);
     }
     if($username_check > 0){
         echo "L' Username risulta gia' registrato nel nostro database. Inserisci un diverso Username!<br />";
         unset($username);
     }
     include 'join_form.php'; // Show the form again!
     exit();  // exit the script so that we do not create this account!
 }
Tnx =)
 
Ultima modifica:
Ho risolto tutto ho riffatto tutto d'accapo e ora va'....
L'unica cosa e' il codice di restituzione della password se viene dimenticata...
Invia l'e-mail e tutto ma le variabili .. nada...
Come faccio per richiamarle visto che stanno nel file reg.php
Questo e' il codice della restituzione password...
Help tnx =)
Codice:
<?

include 'db.php';

$sql_email_check = mysql_query("SELECT email FROM utenti WHERE email='$email'");
$email_check = mysql_num_rows($sql_email_check);

$sql_username_check = mysql_query("SELECT username FROM utenti WHERE username='$username'");
$username_check = mysql_num_rows($sql_username_check);

if($email_check > 0){
echo "<html>
<head>
<meta http-equiv=\"refresh\" content=\"3;url=./login.php\">
<link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\">
</head>
<body>
<div align=\"center\" class=tit>I dati richiesti sono stati inviati a $email</div>
</body>
</html>";
}else{
echo "Si è verificato un errore<br>non è stato possibile inviare i dati richiesti a $email";
}

$soggetto = "Richiesta password dimenticata $nomesito";
$messaggio="Ciao $username,\n ecco i dati di accesso che hai richiesto:\n
nick: $username_\n
password: $password_random\n
A presto\n
Staff di $nomesito.\n\n\n\n\n";

mail($email, $soggetto, $messaggio, "From: $nomesito <$emailadmin>\nX-Mailer: PHP/" . phpversion());

?>
 

Discussioni simili