Autor | Zpráva | ||
---|---|---|---|
l564 Profil |
#1 · Zasláno: 20. 5. 2011, 21:02:09
Mám přihlašování přes PHP a MySql. Ale nějak mi to nechce fungovat, nejspíše bude nějaká chyba. Nic to nevypisuje ale přesměruje to na prihlaseni-spatne.html, jméno přes které jsem se přihlašoval je aktivní a heslo je v md5, tak že by to mělo být v pořádku. Session je nastaveno na 1. Přikládám kód:
<?php include "./connect.php"; $login = mysql_real_escape_string($_POST["uzjmeno"]); $heslo = mysql_real_escape_string($_POST["heslo"]); $md5heslo = md5($heslo); $dotaz = mysql_query("select * from uzivatele where uzjmeno = '$login' and hash = '$md5heslo'"); $overeni = mysql_num_rows($dotaz); $row = mysql_fetch_array($dotaz); if($overeni == 1) { session_start(); $_SESSION['prihlasen'] = 1; ¨ $_SESSION['id'] = $row["id"]; $_SESSION['uzivatel'] = $row["uzjmeno"]; $_SESSION['registrovan'] = $row["registrace"]; $_SESSION['email'] = $row["email"] ; $_SESSION['narozen'] = $row["narozen"] ; $_SESSION['doklad'] = $row["doklad"] ; $_SESSION['cislodokladu'] = $row["cislodokladu"] ; $_SESSION['ip'] = $row["ip"] ; header("Location: profil.php"); die(); } else { header("Location: prihlasni-spatne.html"); } ?> Vidíte tam někde chybu? |
||
pcmanik Profil |
#2 · Zasláno: 20. 5. 2011, 21:06:28
l564:
Mas ten SQL spravne?, tam bude urcite chyba, totizto nikde inde byt nemoze. Resp. si over, ci skutocne dostavas tie hodnoty do premenych, ktore cakas |
||
l564 Profil |
#3 · Zasláno: 20. 5. 2011, 21:09:31
pcmanik:
Ano vše mám. |
||
pcmanik Profil |
#4 · Zasláno: 20. 5. 2011, 21:26:39
l564:
Tak v tom pripade tam chyba nieje - urcite tam musis mat, alebo si daj vypisat overeni, ci sa urcite rovna 1 |
||
l564 Profil |
#5 · Zasláno: 20. 5. 2011, 22:00:30
Tak sem našel jiný script. Ale ten mi pro jistotu nevybírá data z tabulky a následně neukládá do session. Mohl by se mi někdo na to podívat? Předem dík.
<?php session_start(); $nick = $_POST['uzjmeno']; $pass = $_POST['heslo']; if ($nick&&$pass) { $connect = mysql_connect("server","username","passwoard") or die("Nepodarilo se pripojit k MySQl"); mysql_select_db("databaze") or die("Nepodařilo se najít DB"); $line = mysql_query("SELECT * FROM uzivatele WHERE uzjmeno='$nick'"); $numrows = mysql_num_rows($line); if ($numrows!=0) { // cod pro prihlaseni while ($row = mysql_fetch_assoc($line)) { $dbname = $row['uzjmeno']; $dbpass = $row['hash']; } if ($nick==$dbname&&md5($pass)==$dbpass) { $_SESSION['prihlasen'] = 1; $_SESSION['id'] = $row["id"]; $_SESSION['uzivatel'] = $row["uzjmeno"]; $_SESSION['registrovan'] = $row["registrace"]; $_SESSION['email'] = $row["email"] ; $_SESSION['narozen'] = $row["narozen"] ; $_SESSION['doklad'] = $row["doklad"] ; $_SESSION['cislodokladu'] = $row["cislodokladu"] ; $_SESSION['ip'] = $row["ip"] ; header("Location: profil.php"); } else echo "Nesprávné heslo !"; } else die("Tento uživatel neexituje !"); } else die ("Zadej uživatelské jméno a heslo !"); ?> |
||
pcmanik Profil |
#6 · Zasláno: 20. 5. 2011, 22:11:41
l564:
Keby si si tam dal mysql_error() ? A od coho su podmienky, aby sa pouzivali a tak dojdes na chybu. Hned prva podmienka je zle - if ($nick&&$pass) vzdy bude pravdiva, nakolko tie premenne definujes na zacitku skriptu.... |
||
jan98 Profil * |
#7 · Zasláno: 21. 5. 2011, 11:26:33
mysql_error() mu je na nic pokud mu nevyhazuje zrovna zadny error die().
if ($nick&&$pass) by nelo by isset($nick) isset($pass) mozna muzes mit problem vtom ze heslo nemas v db ulozeno jako md5, nebo kdo vi. Byt tebou tak zkousim postupne "pruchodnost" skriptu na to kde se co v jake promenne predava a za jakych podminek, cimz zistis kde je chyba. Vzdycky si napises var_dump($promenna); exit(); a tak muzes jit po radcich a vidis presne kde se co vypisuje nebo nevypisuje |
||
M4ri Profil |
#8 · Zasláno: 22. 5. 2011, 17:40:30
k přikladu č.1
Pokud jsi kopíroval kód... nemáš syntax err. na 11. řádku? $_SESSION['prihlasen'] = 1; ¨ totiž poslední znak ¨ ? |
||
Časová prodleva: 13 let
|
0