 |
Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Comunitatea PHP Romania
|
| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
roman_marian
Data înscrierii: 24/Aug/2007
Mesaje: 16
|
| Trimis: Sâm Sep 06, 2008 11:29 pm Titlul subiectului: probleme la recuperare parola |
|
|
am urmatorul cod
Cod: if($act=="recupereaza")
{
$utilizator = $_POST["utilizator"];
$email = $_POST["email"];
$i = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM tabela WHERE utilizator='".$utilizator."'"));
if($i[0]==0)
{
echo "<big>Utilizatorul nu exista !!</big><br><br>";
echo "<a href=\"index.php?actiune=p\"><b>Inapoi</b></a><br>";
}
else
{
$i = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM tabela WHERE utilizator='".$utilizator."' AND email='".$email."'"));
if($i[0]==0)
{
echo "Adresa aceasta de email nu exista la acest utilizator<br><br>";
echo "<a href=\"index.php?actiune=p\">Inapoi</a><br>";
}
else
{
$c = time();
$parola = substr(preg_replace('/\W/', '', md5(rand())), 0, 10);
mysql_query("UPDATE tabela SET parola='".md5($c)."' WHERE utilizator='".$utilizator."'");
$cerere= mysql_fetch_array(mysql_query("SELECT utilizator FROM tabela WHERE utilizator='".$utilizator."'"));
$msg = "\n Utilizator: ".$cerere[0]." \n Noua parola: ".$cerere." \n\n ".$siturl." aici este o comunitate prietenoasa, si suntem bucurosi sa va avem printre noi. Puteti veni impreuna cu colegii dumneavoastra \n\nMultumesc\n".$stitle."";
$subj = "Noua dvs parola de pe ".$stitle."";
$headers = 'From: admin@yourdomain.com' . "\r\n" .
'Reply-To: admin@localhost' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($email, $subj, $msg, $headers);
echo "Noua dumneavoastra parola a fost trimisa catre adresa de e-mail $email<br><br>";
echo "<a href=\"index.php\">Meniu principal</a>";
}
}
}
}
?>
toate bune si frumoase...parola se reseteaza, iar in e-mail primesc datele de confirmare.. Utilizator: blabla
Noua parola: Array .unde am gresit? |
|
| Sus |
|
Amenthes
Data înscrierii: 12/Dec/2005
Mesaje: 620
|
| Trimis: Dum Sep 07, 2008 12:06 am Titlul subiectului: |
|
|
Pai:
$cerere= mysql_fetch_array(
Noua parola: ".$cerere."
Ce poate fi daca nu un array?
Offtopic (sau nu):
Observ ca ai pus bucata de cod in tag-uri <code> si tot bulita arata... va rog eu, incercati sa aveti si voi un stil in a scrie cod, nu mai borati caractere unde va vine voua, ca de asta imi injur zilele cand trebuie sa intretin aplicatii facute de unii (si nu cred ca sunt singurul). |
|
| Sus |
|
olympia
Data înscrierii: 26/Mai/2008
Mesaje: 179
|
| Trimis: Dum Sep 07, 2008 12:57 am Titlul subiectului: |
|
|
Amenthes, ai vazut-o din prima :) observa insa ca in cod a tinut seama de ca interogarea ii returneaza un array, ca a specificat $cerere[0].
@roman
n-ai nevoie de fetch_array, k scoti doar o inregistrare.
si inca ceva, tu selectezi doar coloana utilizator si vrei si parola?
deci:
Cod:
$cerere2 = "SELECT utilizator, parola FROM tabela WHERE utilizator='".$utilizator."'";
$cerere1 = mysql_query($cerere2) or die(mysql_error());
$cerere = mysql_result($cerere1,"utilizator");
$parola = mysql_result($cerere1,"parola");
am mers pe logica ta, ramane sa tii tu seama de care variabila merge unde. |
|
| Sus |
|
dechim
Data înscrierii: 10/Mai/2005
Mesaje: 656
Locație: Drobeta Turnu Severin
|
| Trimis: Dum Sep 07, 2008 3:11 am Titlul subiectului: |
|
|
Noua parola este $c ($c = time(); ) Nu trebuie sa o citeasca din tabela, acolo e criptata MD5.
Linia :
$parola = substr(preg_replace('/\W/', '', md5(rand())), 0, 10);
nu foloseste la nimic, variabila $parola nu mai apare nicaieri insa in tabela scrie :
mysql_query("UPDATE tabela SET parola='".md5($c)."' WHERE utilizator='".$utilizator."'");
Deci inlocuieste
... Noua parola: ".$cerere." ...
cu
... Noua parola: ".$c." ...
Ai mai multe variabile in mesaj care in bucata de script nu sunt declarate, probabil sunt declarate mult mai sus.
Si inca ceva: utilizatorul il stii, de ce-l recitesti din tabela ?
Cod:
if($act=="recupereaza")
{
$utilizator = $_POST["utilizator"];
$email = $_POST["email"];
$i = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM tabela WHERE utilizator='".$utilizator."'"));
if($i[0]==0)
{
echo "<big>Utilizatorul nu exista !!</big><br><br>";
echo "<a href=\"index.php?actiune=p\"><b>Inapoi</b></a><br>";
}
else
{
$i = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM tabela WHERE utilizator='".$utilizator."' AND email='".$email."'"));
if($i[0]==0)
{
echo "Adresa aceasta de email nu exista la acest utilizator<br><br>";
echo "<a href=\"index.php?actiune=p\">Inapoi</a><br>";
}
else
{
$c = time();
mysql_query("UPDATE tabela SET parola='".md5($c)."' WHERE utilizator='".$utilizator."'");
$msg = "\n Utilizator: ".$utilizator." \n Noua parola: ".$c." \n\n ".$siturl." aici este o comunitate prietenoasa, si suntem bucurosi sa va avem printre noi. Puteti veni impreuna cu colegii dumneavoastra \n\nMultumesc\n".$stitle."";
$subj = "Noua dvs parola de pe ".$stitle."";
$headers = 'From: admin@yourdomain.com' . "\r\n" .
'Reply-To: admin@localhost' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($email, $subj, $msg, $headers);
echo "Noua dumneavoastra parola a fost trimisa catre adresa de e-mail $email<br><br>";
echo "<a href=\"index.php\">Meniu principal</a>";
}
}
}
|
|
| Sus |
|
roman_marian
Data înscrierii: 24/Aug/2007
Mesaje: 16
|
| Trimis: Dum Sep 07, 2008 3:31 am Titlul subiectului: |
|
|
| intradevar dechim, acolo era pb...in loc de.$cerere. trebuia .$c., nu stiu la ce mi-a stat capul :D multumesc frumos |
|
| Sus |
|
olympia
Data înscrierii: 26/Mai/2008
Mesaje: 179
|
| Trimis: Dum Sep 07, 2008 11:36 am Titlul subiectului: |
|
|
aseara dupa ce am postat, mi-am dat seama ca parola e un hash, deci nu trebuie scoasa din db.
interogarea aia e inutila, ptr ca trebuia un if si trimis un mail cu variabilele deja disponibile dk totul e ok in update (de fapt asa cum bine a sesizat Dechim :)). |
|
| Sus |
|
PHPRomania Bot
Bot Member
Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google |
| Trimis: Mie Dec 26, 2007 7:01 pm Titlul subiectului: Ad |
|
|
|
|
|
| Sus |
|
| |
|