Mam problem z wylogowywaniem się ze strony.
logowanie.php wygląda tak
Kod
<?php
ob_start();
session_start(); // rozpoczęcie sesji
?>
<?php include('header.php'); ?>
<div class="content">
<?
include('inc/db.php');
session_start(); //sesje, do logowania
ob_start(); //emulacja headerow
$login = isset($_SESSION['login']) ? $_SESSION['login'] : mysql_escape_string($_POST['login']); //filtracja zmiennej
$haslo = mysql_escape_string(md5($_POST['pass'])); //filtracja + haszowanie hasla
$zapytanie = mysql_query("SELECT * FROM rejestracja WHERE login = '$login'"); //pobranie rekordow
$dane = mysql_fetch_array($zapytanie);
/* sprawdzamy poprawnosc przeslanych danych */
if(isset($_POST['login']) && isset($_POST['pass'])) {
if($login ==''.$dane['login'].'' && $haslo ==''.$dane['haslo'].'')
{
$_SESSION['admin']='ok'; //sesja przyjmuje wartosc 'ok' gdy dane z formularza zgadzaja sie z danymi z bazy
$_SESSION['login']=''.$dane['login'].'';
setcookie("log" , "log", time()+3600, "/","", 0); //tworzymy ciastko
header("Location: index.php"); //przenosimy na strone
}
else { echo 'Logowanie nie powiodło się.'; } //w przypadku zlych danych
}
if(!isset($_SESSION['admin']) && !isset($_SESSION['login']) && $_SESSION['admin'] != 'ok' && !isset($_POST['submit']) && $_GET['p']!='wyloguj' && !isset($_COOKIE['log']))
{
echo'
<center><h3>Zaloguj się</h3>
<form action="logowanie.php" method="POST">
Login:<input type="text" name="login"><br/>
Hasło:<input type="password" name="pass"><br/>
<input type="submit" name="submit" value="Zaloguj się"></form></center>';
}
if($_SESSION['admin'] == 'ok' && isset($_COOKIE['log'])) //warunek, ktory sprawdza czy sesja ma odpowiednia wartosc oraz czy istnieje ciastko, jest to koniunkcja, wiec bedzie prawdziwa jesli oba warunki zostana spelnione
{
echo 'Jesteś zalgowany jako '.$_SESSION['login'].', <a href="?p=wyloguj">Wyloguj się</a>';
if($_GET['p']=='wyloguj') {
session_destroy(); //kasujemy sesje
setcookie("log" , "log", time()-3600, "/","", 0); //kasujemy cookies
header("Location: logowanie.php"); //przenosimy na strone logowania
echo 'Zostałeś pomyślnie wylogowany.';
}
}
?>
</div>
<?php include('stopka.php'); ?>
ob_start();
session_start(); // rozpoczęcie sesji
?>
<?php include('header.php'); ?>
<div class="content">
<?
include('inc/db.php');
session_start(); //sesje, do logowania
ob_start(); //emulacja headerow
$login = isset($_SESSION['login']) ? $_SESSION['login'] : mysql_escape_string($_POST['login']); //filtracja zmiennej
$haslo = mysql_escape_string(md5($_POST['pass'])); //filtracja + haszowanie hasla
$zapytanie = mysql_query("SELECT * FROM rejestracja WHERE login = '$login'"); //pobranie rekordow
$dane = mysql_fetch_array($zapytanie);
/* sprawdzamy poprawnosc przeslanych danych */
if(isset($_POST['login']) && isset($_POST['pass'])) {
if($login ==''.$dane['login'].'' && $haslo ==''.$dane['haslo'].'')
{
$_SESSION['admin']='ok'; //sesja przyjmuje wartosc 'ok' gdy dane z formularza zgadzaja sie z danymi z bazy
$_SESSION['login']=''.$dane['login'].'';
setcookie("log" , "log", time()+3600, "/","", 0); //tworzymy ciastko
header("Location: index.php"); //przenosimy na strone
}
else { echo 'Logowanie nie powiodło się.'; } //w przypadku zlych danych
}
if(!isset($_SESSION['admin']) && !isset($_SESSION['login']) && $_SESSION['admin'] != 'ok' && !isset($_POST['submit']) && $_GET['p']!='wyloguj' && !isset($_COOKIE['log']))
{
echo'
<center><h3>Zaloguj się</h3>
<form action="logowanie.php" method="POST">
Login:<input type="text" name="login"><br/>
Hasło:<input type="password" name="pass"><br/>
<input type="submit" name="submit" value="Zaloguj się"></form></center>';
}
if($_SESSION['admin'] == 'ok' && isset($_COOKIE['log'])) //warunek, ktory sprawdza czy sesja ma odpowiednia wartosc oraz czy istnieje ciastko, jest to koniunkcja, wiec bedzie prawdziwa jesli oba warunki zostana spelnione
{
echo 'Jesteś zalgowany jako '.$_SESSION['login'].', <a href="?p=wyloguj">Wyloguj się</a>';
if($_GET['p']=='wyloguj') {
session_destroy(); //kasujemy sesje
setcookie("log" , "log", time()-3600, "/","", 0); //kasujemy cookies
header("Location: logowanie.php"); //przenosimy na strone logowania
echo 'Zostałeś pomyślnie wylogowany.';
}
}
?>
</div>
<?php include('stopka.php'); ?>
www.nazwaStrony.pl/logowanie.php - logowanie działa prawidłowo.
www.nazwaStrony.pl/logowanie.php?p=wyloguj - przenosi mnie na stronę logowanie.php?p=wyloguj, która jest pusta i nie wylogowywuje.
W czym tkwi problem?