Problem z wylogowaniem php + mysql

0

Witam

Mam maly problem ze zrobieniem wylogowania, a dokladniej samo logowanie dziala z tym ze jesli zaloguje sie na login1 nastepnie wyloguje po czym zaloguje sie znowu jednak tym razem na login2 to na kolejnej stronie otrzymuje komunikat ze zalogowany jest dalej login1 a nie login2. Ponizej przedstawie moje scrypty.


logowanie

<form method="POST" action="wylogowanie.php">
<?php session_start(); mysql_connect("localhost","root","mysql"); mysql_select_db("test");

if(isset($_SESSION['zalogowany'])) {
echo "Witam ddf, ".$_SESSION['login'];
}else{

if(isset($_POST['wyslij'])) {

if(mysql_num_rows(mysql_query("SELECT login, haslo
FROM users WHERE login = '".$_POST['login']."'
&& haslo = '".$_POST['haslo']."' ")) > 0) {

   if(mysql_num_rows(mysql_query("SELECT id FROM users
   WHERE login = '".$_POST['login']."' 
   && haslo = '".$_POST['haslo']."' ")) > 0 ) {


       $_SESSION['zalogowany'] = true;
       $_SESSION['login'] = $_POST['login'];
       $_SESSION['haslo'] = $_POST['haslo'];
       echo "Jesteś zalogowany.";


   } else { 

echo "Złe hasło, proszę spróbować ponownie";
}
} else {
echo "Nie ma takiego użytkownika";
}
}
}
?>

<input type="submit" value="Wyloguj" name="wyloguj">

wylogowanie

  <?php

  if(isset($_POST['wyloguj'])) {

  $past = time() - 100;

  setcookie(zalogowany, gone, $past);

  header("Location: index.php"); //lub echo 'zostales wylogowany';

  }

  ?> 

Jesli ktos ma moze jakis pomysl dla czego tak sie dzieje a nie inaczej bardzo prosze o pomoc

Pozdrawiam
kamilkomo

0

setcookie(zalogowany, gone, $past);

nie powinno zamiast tego być:

unset($_SESSION['zalogowany']);

Sesje a cookies to dwie różne rzeczy.

0

no niestety zmiana tej linii kodu nic nie zmienila dalej jest tak jak bylo :((

Nawet jak wysle pusty formularz to efekt na nastepnej stronie jest taki ze nadal zalogowany jest login1, o co tu chodzi ????

0

Wydaje mi się że w ogóle nie rozumiesz co napisałeś.

<td>
<?php
session_start();

To jest pierwszy WTF, a drugi:

setcookie(zalogowany, gone, $past);

Jest jeszcze ten najbardziej istotny - brak session_start() w wylogowanie.php

0

A nie lepiej tak ??

session_destroy(); // zniszczenie wartości sesji

lub

session_unregister("zalogowany");
0

session_unregister śmierdzi, skoro korzysta z tablic to niech korzysta...
Tylko session_start() żeby mieć do niej dostęp!!!

0

no dzieki wielkie pomoglo dodanie do wyloguj.php session_start()

pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1