Autor Zpráva
Kl0bouk
Profil *
Ahoj,
mám následující problém. Mám databázi uživatelů a tam se mi posílají zahashovaný hesla (MD5) - to je OK ....teď pořebuju vědět jak to udělat při logování do stránky, aby uživatel zadal svoje (nezahashovaný) heslo a přitom to nějak porovnalo to zahashovaný heslo v DB....
Akacko
Profil
Kl0bouk
Zahashuješ heslo z formuláře a porovnáš.
BlueRain
Profil
$hash=md5($_POST['pass']);

mysql_query(" SELECT informace FROM uzivatele WHERE heslo='{$hash}' ")
Kl0bouk
Profil *
Asi sem neumětel.....ale furt mi to nechce fachat......poradí mí někdo kam to mám v tomto kódu schovat?
píše mi to nějakou parse chybu !!!!

<?
include("config.php");
$spojeni=mysql_connect($MySQL_server,$MySQL_user,$MySQL_user_password) ;
$spojenidb=mysql_select_db($MySQL_db);
if (!$spojeni)
{
echo"Nepodarilo se navazat spojeni se serverem.";
exit;
}

$prihlasen="";
if($co=="logout"){
MySQL_Query("UPDATE ".$MySQL_predponatabulek."_user SET ip='' WHERE id='$id';");
$code="";
$error="<b>Nyní seš wodhlášen.</b><br>Pokud budeš chtít dál pokračovat v režimu pro registrované, musíš se znova přihlásit =)<br><br>";
}
if($nick!=""){
$bb = MySQL_Query("SELECT * FROM ".$MySQL_predponatabulek."_user WHERE nick='$nick';");
echo MySQL_Error();
$aa=MySQL_Fetch_Array($bb);

if(($aa[heslo]==$heslo) and ($heslo!="")){
$IP=$REMOTE_ADDR;
MySQL_Query("UPDATE ".$MySQL_predponatabulek."_user SET ip='$IP' WHERE nick='$nick';");
$time=time();
MySQL_Query("UPDATE ".$MySQL_predponatabulek."_user SET posledni_akce='$time' WHERE nick='$nick';");
$kod=MD5($time.$REMOTE_ADDR);
MySQL_Query("UPDATE ".$MySQL_predponatabulek."_user SET kod='$kod' WHERE nick='$nick';");
$url="id=".$aa[id]."&code=".$kod;
$prihlasen=$aa[id];
} else {$error="Přihlášení se nepodařilo. Špatné uživatelské jméno, nebo heslo.<br><br>";}
}

if($code!=""){
$bb = MySQL_Query("SELECT * FROM ".$MySQL_predponatabulek."_user WHERE id='$id';");
$aa=MySQL_Fetch_Array($bb);
$rozdil = time() - $aa[posledni_akce];
if($rozdil>300 or $rozdil<0) $povol="ne";
if(($aa[kod]==$code)and($aa[ip]==$REMOTE_ADDR) and ($povol=="")){
$time=time();
MySQL_Query("UPDATE ".$MySQL_predponatabulek."_user SET posledni_akce='$time' WHERE id='$id';");
$url="id=".$id."&code=".$code;
$prihlasen=$id;
} else {$str="";MySQL_Query("UPDATE ".$MySQL_predponatabulek."_user SET ip='' WHERE id='$id';"); $error="<b>Nejste přihlášen</b><BR>Buď nesouhlasí IP, nebo se provedlo automatické odhlášení, kvůli neaktivitě delší než 5 minut. Přihlaste se proto prosím znovu.<br><br>";}
}
?>

díky =)
1ight
Profil
email = '" . $_POST['email'] . "',
password = " . "( PASSWORD('" . $_POST['password'] . "' ) ),
first_name = '" . $_POST['first_name'] . "',
last_name = '" . $_POST['last_name'] . "',
nick = '" . $_POST['nick'] . "',


možná hledáš tohle ten příkaz ti to jakoby odkoduje ze DB do normálního textu (aspon myslím mě to funguje pro ověření) nevím 100% jeslti je to co hledaš zkus to nejak zpracovat doufám že jsem aspon trošku pomohl.
nightfish
Profil
Kl0bouk
ten kód je dosti příšerný - hledat v něm chybu parsování nebude úplně jednoduché

ale můžeš zkusit řádek
if(($aa[heslo]==$heslo) and ($heslo!="")){ 

nahradit za
if(($aa[heslo]==md5($heslo)) and ($heslo!="")){ 
Kl0bouk
Profil *
Zkoušel sem snad všechno...ale nechce to pořád fachat......

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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