Preskoči na sadržaj
Ista raja. Nova runda.
GAMERZ.ba — REBORN
Diskusija Zaključana

PHP zaboravljeni password skripta

206 pregleda · 12 odgovora · otvorena 29.08.2011. u 10:35

Dobro jutro

Eh ovako potrebna mi je php skripta za funkciju forgot password ali ima jedan problem.Moja registraciona skripta u databasu sprema random pw neki random brojevi,znaci ne sprema tacno ukucan password vec od njega pravi neke random brojeve koje spremi u bazu, eh sad meni ne mogu pomoci one obicne skripte to sam vec probavao jer one salju tacnu vrijednost iz databaze, tako da one koresniku posalju te random brojeve.Meni znaci treba skripta koja ce te random brojeve pretvoriti u pw i poslat korisniku na mail.Nemam bodova ali eto valjda ce se naci neko da pomogne.
Ako ti je password u bazi podataka u md5 onda ne mozes, najbolje ti je napraviti da dodijelis korisniku novi password ili mogucnost kreiranja novog.
Sto jednostavno ne napravis da salje link sa kojim ce moci promeniti md5 pw u databazi nego da mu izlistava njegov pw ?
Behko jel to kodiraš?
Vidi imaš 2 mogućnosti, da u bazu ubacujes novi i na email da mu salje novi pw, znaci koji se automaski generise od nekih brojeva,đ

ili nesto sto je riskantno da napravis novu kolonu "tačanpw" i da tu bude pravi pw znaci ne md5 (Dosta glupo i riskantno al') i onda lik ukuca svoj email

i samo obicni kveri napravis i to je to !

ili nemoj koristi md5 : ) koristi base64 :P
- Selektujes iz baze password gdje je username = 'njegov username' AND email = 'njegovemail'

preko mysql_fetch_array i mysql_query-a bi trebao dobiti tacan output, ali ne prikazujes output , vec preko kontakt forme posaljes na njegov mail output ...
easy & simple
Ko je rekao da se password prije upisa u bazu kriptuje sa md5 ja ne vidim da je igdje to naveo, mozda se radi o sha1... , no nebitno

Ukoliko ti skripta prije upisa u bazu password kriptuje sa md5 ili sha1 ili bilo cim drugim ne mozes je izvuci iz baze u obliku u kakvom ti hoces tj. da vrati password koji je korisnik koristio za login ili sta vec.

Tu ti jedino preostaje da napravis stranicu zaboravljena lozinka, kada korisnik otvori unese svoj email koji je koristio kada se registrovao, skripta napravi neke random brojeve npr rand(111111, 99999) ubaci ih u bazu u neki red npr zab_lozinka, skripta mu salje email na taj mail koji je unio u obliku npr. blabla.com/fp.php?code=12345, ukoliko postoji taj broj u zab_lozinka korisnik ima mogucnost da promjeni pw(naravno da dok to sve radi mora biti ulogovan).

To ti je jedan primjer kako mozes da odradis promjenu lozinke mada ti mozes ove random brojeve prije upisa u bazu isto kriptovati sa md5 npr.
<html>
<form name="zabravljenipw" action="" method="POST">
Vas email:<input name="zemail" type="text"><br />
<input name="posalji" type="submit" value="Restartuj Pw">
</form>
</html>
<?php
if($_POST['posalji']){
include 'inc/konfiguracija.php';//konekcija sa bazom
$email = $_POST['zemail']; // email iz forme
//selektovanje email u bazi tablica CLANOVI
$selekt = mysql_query("SELECT * FROM clanovi WHERE email='$email'";) or die ("GRESKA :::".__LINE__.mysql_error());
//ako se neko registrovao sa tim "mjelom" onda ce broj redova u bazi biti 1
$red = mysql_num_rows($selekt);
if($red == 1){
//Generise se novi PW
$random = rand(9999, 99999);
$kveri = mysql_query("UPDATE clanovi SET password='$random' WHERE email='$email'";) or die ("GRESKA :::".__LINE__.mysql_error());
//salje email
mail($email, "Password je restartovan", "Vaš novi password je <br /> PW: $random";);
echo "Novi password je poslan na email";
}
else{
echo "Doslo je do greske";
}
}


?>

Ovo je najlakše za uraditi !
_MesY je napisao/la:
<html>
<form name="zabravljenipw" action="" method="POST">
Vas email:<input name="zemail" type="text"><br />
<input name="posalji" type="submit" value="Restartuj Pw">
</form>
</html>
<?php
if($_POST['posalji']){
include 'inc/konfiguracija.php';//konekcija sa bazom
$email = $_POST['zemail']; // email iz forme
//selektovanje email u bazi tablica CLANOVI
$selekt = mysql_query("SELECT * FROM clanovi WHERE email='$email'" or die ("GRESKA :::".__LINE__.mysql_error());
//ako se neko registrovao sa tim "mjelom" onda ce broj redova u bazi biti 1
$red = mysql_num_rows($selekt);
if($red == 1){
//Generise se novi PW
$random = rand(9999, 99999);
$kveri = mysql_query("UPDATE clanovi SET password='$random' WHERE email='$email'" or die ("GRESKA :::".__LINE__.mysql_error());
//salje email
mail($email, "Password je restartovan", "Vaš novi password je <br /> PW: $random";
echo "Novi password je poslan na email";
}
else{
echo "oslo je do greske";
}
}


?>

Ovo je najlakše za uraditi !
- Da, i ujedno i najnesigurniji
Pregledaj dobro kod, pa vidi sta radi .
Znaci, ja dodjem na sajt, pravim se da sam ti, odem forgot password, upisem tvoj mail, i ono mi da novi password ?
Samo napravi da unese email i da mu dodje na email neki link npr. http://nesto.com/zaboravljen.php?br=$randombroj

$randombroj ce upisivat random broj u bazu i poslati tako korisniku na email i onda kad on klikne taj link da izvadi iz baze taj random broj i email od korisnika i da promjeni pw ... ako nekontas napravicu ti tut sa slikama ...
MarioMaxy je napisao/la:
- Da, i ujedno i najnesigurniji ;)
Pregledaj dobro kod, pa vidi sta radi .
Znaci, ja dodjem na sajt, pravim se da sam ti, odem forgot password, upisem tvoj mail, i ono mi da novi password ?
Da novi password posalje na taj email i nigdje ga ne prikazuje ? Pogledaj bolje kod ? nigdje nema echo $random ? osim u email poruci !

Naravno, ima greska ovdje, jer svako moze mjenjati svacij pw smo kucam email, al' napravi se mala provjera i to je to ja sam samo naveo primjer !
_MesY je napisao/la:
Da novi password posalje na taj email i nigdje ga ne prikazuje ? Pogledaj bolje kod ? nigdje nema echo $random ? osim u email poruci !

Naravno, ima greska ovdje, jer svako moze mjenjati svacij pw smo kucam email, al' napravi se mala provjera i to je to ja sam samo naveo primjer !
Moze se i to srediti .
Na mail dolazi konfirmacijski link tipa .

potvrdi_pw.php?random_kod=gvdf156bd4dv&email=njegovmail

Kada ode na sajt taj, cita iz baze gdje je zatrazen zahtjev za promjenu passworda sa tim kodom i ako je kod iz baze tacan kao ovaj iz linka UPDATE password na novi neki (tj. random ili user choice)

Prijavi se da bi odgovorio/la na ovu temu.