Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

probleme la recuperare parola
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> Cod PHP
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  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> Cod PHP
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community