Autor | Zpráva | ||
---|---|---|---|
aa Profil * |
#1 · Zasláno: 25. 5. 2008, 21:14:42
Zdravím,
před časem jsem si dělal malou administraci, a nyní jsem ji chtěl trochu oprášit a vylepšit, ale setkal jsem se na úvod s problémem, který mi neleze do hlavy... takhle si přidávám nové uživatele do db: $zapis = mysql_query("INSERT INTO adm_login VALUES ('0', '".$_POST['uz_jmeno']."', '".md5($_POST['uz_heslo'])."')"); Zápis proběhne v pořádku, když se podívám přes phpmysqladmina na to, co ss do db uložilo, vidím právně zakódované heslo. takhle se přihlašuji: <?php session_start(); include ('pripojeni.php'); if (isset($_POST['odeslat'])){ if (!$_POST['jmeno'] || !$_POST['heslo']) { echo '<b>Zadejte své přihlašovací jméno a heslo!</b>'.'<br /><br />'; } else { $sql = mysql_query("SELECT * FROM adm_login WHERE uz_jmeno = '".$_POST['jmeno']."' AND uz_heslo = '".md5($_POST['heslo'])."'"); $zaznam = mysql_num_rows($sql); if($zaznam == '1'){ $_SESSION['prihlasen'] = "ano"; Header("Location: index.php"); } else { echo '<b>Zadejte správné přihlašovací jméno a heslo!</b>'.'<br /><br />'; } } } ?> A i po zadání správných údajů se nepřihlásím.... ve zdrojáku chybu nikde nevidím... ale možná jsem slepý:O) Nevíte v čem by mohl být problém? Předem děkuji za vaše reakce |
||
Joker Profil |
#2 · Zasláno: 25. 5. 2008, 22:37:10
aa
Při takovémhle problému je nejúčinnější řešení si nechat vypsat SQL dotaz, který se posílá do databáze. Pak je chyba často vidět na první pohled. Pokud ne, tak zkopírovat ten dotaz, pustit ho ve správci databáze a koukat, co to vybere. A jako obvykle poznámka: SELECT * je fuj. Dvojnásob v případě, kdy vlastně žádná data vybírat nepotřebujete. |
||
aa Profil * |
#3 · Zasláno: 25. 5. 2008, 23:26:38
Joker
tak jsem na to prisel - nastavil jsem si pocet znaku, ktere se u hesla ulozi do databaze - jesnomze jsem zapomnel vzit v potaz to, ze pri hashovani pomoci MD5 logaritmu se retezec zakoduje na retezec o 32 pismenech... a ja mel ve sloupci pro heslo povoleno pouze 15 znaku... |
||
Časová prodleva: 16 let
|
0