Witam serdecznie wszystkich użytkowników forum. Chciałem prosić o pomoc w poniższym skrypcie. Otóż chodzi o to, że nie bardzo chce mi działać funkcja logowania. Wyskakuje mi wyjatek zawarty w lini 56. Dodam ze na pewno dobrze połączyłe się z baza danych(skrypt rejestracji mam juz gotowy;) ). Opisze ponizszy skrypt komentarzami to moze latwiej bedzie znalezc blad. Z gory dziekuje wszystkim za pomoc.
<?php
require_once('connect_mysql.php'); //dolaczam plik z polaczeniem do bazy danych
$login=$_POST['nazwa'];//chyba komentarz zbedny;)
$haslo=$_POST['haslo'];
//Funkcja logowania
function logowanie($login, $haslo)
{
$polaczenie = connect_mysql();
$db = $polaczenie->query("select login, haslo from username where nazwa='$login' and haslo=sha1('$haslo')");//wysylam zapytanie w ktorym odczytuje z bazy danych login i haslo, porownuje z ty
mi wprowadzonymi
if (!$db)
{
throw new Exception('Logowanie nie powiodło się.');//w razie gdyby nie udalo sie ;)
}
if ($db->num_rows>0)//jesli uzytkownik takowy znajdzie sie w bazie danych to zawsze wartosc bedzie pow
yzej 0, a wiec zwroci mi wartosc true;)
{
return true;
}
else
{
throw new Exception('Logowanie nie powiodło się.');
}
}
//funkcja sprawdza czy uzytkownik jest zalogowany
function sprawdz_user()//ta funkcja jest uzyta na koncu;)
{
if (isset($_SESSION['uzytkownik']))//patrz dalsza czesc kodu, poniewaz tam tez zarejestrowalem uzytkownika sesji {
';
}
else
{
';
echo '<a href="formularz.php">Przejdz zalogowac sie</a>'; }
}
if ($login && $haslo)//no wlasnie wiec jesli jest login i haslo to:
{
try
{
logowanie($login, $haslo);
$_SESSION['uzytkownik'] = $login;//dalsza czesc kodu to wlasnie tu
}
catch (Exception $e)
{
echo 'Należy być zalogowanym aby oglądać tę stronę. ';
echo '<a href="formularz.php">Przejdz aby sie zalogowac</a>'; }
}
sprawdz_user();
echo 'Witaj wiec na stronie;)';
?>
Na moje oko zrobione jest poprawnie, jednak wyskakuje mi ten wyjatek ehh..