Autor Zpráva
l564
Profil
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
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
pcmanik:
Ano vše mám.
pcmanik
Profil
l564:
Tak v tom pripade tam chyba nieje - urcite tam musis mat, alebo si daj vypisat overeni, ci sa urcite rovna 1
l564
Profil
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
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 *
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
k přikladu č.1
Pokud jsi kopíroval kód... nemáš syntax err. na 11. řádku?
$_SESSION['prihlasen'] = 1;    ¨

totiž poslední znak ¨ ?

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:

0