Autor Zpráva
dzambo
Profil *
Ahoj, mám kod na ztrátu hesla, problém je ten, že se mi hesla posílaj v MD5
jak je potřeba upravit kod:
	$heslo = $row["password"]; 


na netu sem našel samí encrypt a když decrypt tak sem nebyl schopen to udělat.
Alphard
Profil
md5() je hash, žádná funkce md5_decrypt() neexistuje. Vygenerujte nové heslo a to pošlete uživateli.
Joker
Profil
Alphard + (edit- odstraněn přivolávač moderátorů), co to přidat do FAQ? Podobný dotaz se už řešil X-krát.
(Ne že bych si od toho sliboval něco víc, než že příštímu tazateli budeme moci omlátit o hlavu, že to je v FAQ)

aktualizace 31.8. 2010, přidáno do FAQ.
Alphard
Profil
[#3]
Můžeme. To mi připomíná, že jsem se před několika měsíci zasazoval o možnost nadpisů, abych mohl FAQ zpřehlednit. Naplánuji si to do blízké budoucnosti. Nebo jestli se do toho chce tobě, zlobit se nebudu :-)
Majkl578
Profil
Určitě jsem pro přidání FAQ. Osobně by se mi líbilo rozšiřovat FAQ častěji, přecijen je tu dost opakujících se dotazů.

dzambo:
Jediná možnost je vygenerovat a poslat nové heslo.
joe
Profil
Přidat do FAQ můžete, otázkou je kdo to bude číst. Z vlastních zkušeností vím, že každej se radši ihned zeptá, než použije hledání nebo nedej bože nějaké dlouhé čtení FAQ :-)
Joker
Profil
joe:
otázkou je kdo to bude číst
S tím počítám už v #3, ale je to méně práce pro nás :-) Je jednodušší odkázat na FAQ, než hledat, kde se to řešilo naposledy, nebo odpověď psát znovu.
dzambo
Profil *
Ještě vědět jak vygenerovat nové heslo, resp jak ho zadat v md5 do databáze a uživatelovi napsat do emailu ve správnym formátě, generování hesla sem našel
          function Random_Password($delka_hesla) {
  $mozne_znaky = 'abcdefghijklmnopqrstuvwxyz123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  $vystup = '';
  $pocet_moznych_znaku = strlen($mozne_znaky);
  for ($i=0;$i<$delka_hesla;$i++) {
    $vystup .= $mozne_znaky[mt_rand(0,$pocet_moznych_znaku)];
  }
  return $vystup;
 }


jajk teda udělat, aby zadal návštěvníh svuj email a heslo se mu vygenerovalo nové a poslalo na email?
Alphard
Profil
Heslo vygenerované touto funkcí pošlete na email. A verzi md5($heslo) uložte do databáze.
Ještě by bylo dobré chtít potvrzení, obvykle bývá v zaslaném emailu aktivační odkaz. A ten email samozřejmě musí být shodný s tím, který má uživatel v profilu.
Chamurappi
Profil
Reaguji na joa:
každej se radši ihned zeptá, než použije hledání
Když se ptá tady, tak to při vyplňování titulku samo hledá.
Ještě bychom možná mohli detekovat, jestli tazatel četl FAQ a pokud ne, tak mu ho přednostně doporučit. Ale to by se hodilo až do nového způsobu zakládání vláken.


Reaguji na Majkla578, Alpharda a Jokera:
Doporučuji doplňovat FAQ v malých dávkách a často. Kdykoliv se něco zajímavého či užitečného šustne v JavaScriptu, už to láduji do tamního FAQ.
Jen si dejte bacha na limit délky příspěvku. Nadpisy a formátování toho sežerou dost místa a zpráva tu může mít v HTML nanejvýš (tuším) 10240 znaků.


Reaguji na dzamba:
jajk teda udělat, aby zadal návštěvníh svuj email
Tvorbu formulářů najdeš na JPW.

a heslo se mu vygenerovalo nové
Zavoláš funkci, kterou uvádíš.

a poslalo na email?
Pokud se nemýlím, tak to najdeš v tom FAQ, o kterém tu všichni mluví.
dzambo
Profil *
to vím, ale neumím z tý funkce udělat to aby se to uložilo do databáze
jenikkozak
Profil
Použitím výše uvedené funkce uložíš nové heslo do proměnné.
$heslo=Random_Password(10); //desetimístné heslo

Hodnotu této proměnné pak uložíš do databáze či odešleš na mail.
dzambo
Profil *
V emailu se mi to už bygeneruje, ale nedaří se mi změnt v databázi...

search_user = MySQL_Query("SELECT * FROM users WHERE email = '$addemail' ");
	                     $num = MySQL_Num_Rows($search_user);
	                        if ($num<1):
	                        	echo error("Uživatel neexistuje.");
	                        else:
function Random_Password($delka_hesla) {
  $mozne_znaky = 'abcdefghijklmnopqrstuvwxyz123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  $vystup = '';
  $pocet_moznych_znaku = strlen($mozne_znaky);
  for ($i=0;$i<$delka_hesla;$i++) {
    $vystup .= $mozne_znaky[mt_rand(0,$pocet_moznych_znaku)];
  }
  return $vystup;
 }
 
 $heslo=Random_Password(10);
	                        
$sql_hledej = MySQL_Query("UPDATE users WHERE password = '$heslo' ");
nightfish
Profil
dzambo:
UPDATE `tabulka` SET `sloupec` = 'hodnota' WHERE `sloupec2` = '$hodnota2'
dzambo
Profil *
a když chci aby heslo do databáze bylo v MD5 a v emailu normálně?

 
$heslo=MD5(Random_Password(10));


tak budu mit i v emailu v MD5 a kdyz udělám pouze
 
$heslo2=Random_Password(10);


tak se mi vygeneruje dvě náhodný hesla ne?
nightfish
Profil
dzambo:
$heslo=MD5(Random_Password(10));
co třeba takto?
$heslo=Random_Password(10);
$heslo_hash = md5($heslo);
dzambo
Profil *
teďkon už se heslo mění v databázi jako MD5, ale nějak mi přestalo fungovat posílání emailu :(
jakmile sem odstranil:
 else:
	  $sql_hledej = MySQL_Query("SELECT * FROM users WHERE email = '$addemail' ");
					$row = MySQL_Fetch_Array($sql_hledej);
                    $email = $row["email"]; 
					$heslo = $row["password"]; 
- stímhle to běží
nahradil:
 else:
function Random_Password($delka_hesla) {
  $mozne_znaky = 'abcdefghijklmnopqrstuvwxyz123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  $vystup = '';
  $pocet_moznych_znaku = strlen($mozne_znaky);
  for ($i=0;$i<$delka_hesla;$i++) {
    $vystup .= $mozne_znaky[mt_rand(0,$pocet_moznych_znaku)];
  }
  return $vystup;
 }
 
$heslo=Random_Password(10);
$heslo_hash = md5($heslo);
$sql_hledej = MySQL_Query("UPDATE `users` SET `password` = '$heslo_hash' WHERE `email` = '$addemail'");


někdo nějaký nápady? :)
nightfish
Profil
dzambo:
někdo nějaký nápady? :)
E-mailovou adresu máš uloženu v proměnné $addemail, posílání mailu ji očekává v $email.
dzambo
Profil *
To je ono :) , vše funguje jak má, děkuju moc všem :))

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0