Witam. mam sobie skrypcior, wszystko ładnie pieknie ale gdzies popełniłem błąd bo przy logowaniu nawet jesli nie ma połączenia z baza danych zmienna z nazwą usera jest zapisywana do sesji z formularza logowania... za chiny ludowe nie wiem gdzie bład popełniłem, oto fragmenty kodu, jak ktos ma pomysł to prosze o wskazanie drogi.
funkcje.php
<?php
require_once('funkcje_bazy.php');
function content()
{
if(!isset($_GET['show'])) {
$_GET['show'] = 'index';
}
switch($_GET['show'])
{
// logowanie
case 'zaloguj':
zaloguj();
break;
// wylogowywanie
case 'wyloguj':
wyloguj();
break;
// rejestracja
case 'nowa_rejestracja':
nowa_rejestracja();
break;
// rejestracja_form
case 'wyswietl_form_rej':
wyswietl_form_rej();
break;
}
}
// FUNKCJE LOGOWANIA
function zaloguj()
{
// utworzenie krótkich nazw zmiennych
$nazwa_uz = $_POST['nazwa_uz'];
$haslo = $_POST['haslo'];
if ($nazwa_uz && $haslo)
// właśnie nastąpiła próba logowania
{
try
{
loguj($nazwa_uz, $haslo);
// jeżeli użytkownik znajduje się w bazie danych rejestracja identyfikatora
$_SESSION['prawid_uzyt'] = $nazwa_uz;
}
catch (Exception $e)
{
// niepomyślne logowanie
tworz_naglowek_html();
echo 'Zalogowanie niemożliwe'; tworz_stopke_html();
}
}
}
function loguj($nazwa_uz, $haslo)
// sprawdzenie nazwy użytkownika i hasła w bazie danych
// jeżeli się zgadza, zwraca true
// jeżeli nie, wyrzuca wyjątek
{
// połączenie z bazą danych
$lacz = lacz_bd();
// sprawdzenie unikatowości nazwy użytkownika
$wynik = $lacz->query("select * from uzytkownik
where nazwa_uz='$nazwa_uz'
and haslo = sha1('$haslo')");
if (!$wynik)
echo 'Logowanie nie powiodło się.';
if ($wynik->num_rows>0)
return true;
else
echo 'Logowanie nie powiodło się.'; header("Location: index.php"); }
function wyloguj()
{
$stary_uzyt = $_SESSION['prawid_uzyt'];
// przechowanie do sprawdzenia, czy logowanie wystąpiło
unset($_SESSION['prawid_uzyt']);
// początek wyświetlania html
{
if ($wynik_niszcz)
{
// jeżeli użytkownik zalogowany i nie wylogowany
echo 'Wylogowano.<br />'; }
else
{
// użytkownik zalogowany i wylogowanie niemożliwe
echo 'Błąd, nie moge Cie wylogować.<br />'; }
}
else
{
// jeżeli brak zalogowania, lecz w jakiś sposób uzyskany dostęp do strony
echo 'Nie jesteś zalogowany.<br />'; }
header("Location: index.php"); }
function wypelniony($zmienne_formularza)
{
// sprawdzenie, czy każda zmienna posiada wartość
foreach ($zmienne_formularza as $klucz => $wartosc)
{
if (!isset($klucz) || ($wartosc == '')) return false;
}
return true;
}
function prawidlowy_email($adres)
{
// sprawdzenie prawidłowości adresu poczty elektronicznej
if (ereg('^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$', $adres)) return true;
else
return false;
}
// KONIEC
// FUNKCJE WYŚWIETL LOGOWANIE/USERA
function singin()
// WYświetla funkcję logowania lub wyświelta zalogowanego usera
{
if (isset($_SESSION['prawid_uzyt'])) {
echo '<span class="log_as_right"><a href="index.php?show=wyloguj">Wyloguj</a></span><span class="log_as_left">Zalogowano jako : <span class="display_nick">'.stripslashes($_SESSION['prawid_uzyt']).'</span></span>'; }
else
{
<li class="singin_lang_right"><a href="#">Zarejestruj / Zaloguj</a>
<div class="dropdown_3columns align_right">
<div class="col_3">';
wyswietl_form_log();
</div>
</li>';
}
}
?>
Formularz:
function wyswietl_form_log()
// wyświetl formularz logowania
{
?>
<form method="post" action="index.php?show=zaloguj"> <td class="text_form_log">Username:
</td> <td><input class="in_form_log" type=text name=nazwa_uz></td></tr> <td class="text_form_log">Password:
</td> <td><input class="in_form_log" type=password name=haslo></td></tr> <td><a href="zapomnij_formularz.php">Przypomnij
</a></td> <td ><input type=submit value="Logowanie"></td> <a href="index.php?show=wyswietl_form_rej"><div id="wyswietl_form_rej">ZAREJESTRUJ ZA FREE
</div></a>
<?php
}