Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z wylogowaniem php + mysql
Forum PHP.pl > Forum > PHP
kamilkomo
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

Kod
<div id="login">
        <form method='POST' action='wylogowanie.php'>
        <table>
        <tr>
        <td>
<?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";
}
}
}
?>
</td>
<td><input type='submit' value='Wyloguj' name='wyloguj'></td>
</form>    

</tr>
</table>
        </div>

-------------------------------------
wylogowanie
Kod
      <?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
tehaha
a nie wywala Ci przypadkiem błędu w stylu " cannot set session , headers already sent" questionmark.gif bo nie wiem jak to możliwe że wysyłasz kod html do przeglądarki a potem dajesz session_start(), ponadto informacje o tym czy ktoś jest zalogowany trzymaj w tablicy SESSION a nie w ciasteczkach i przy wylogowywaniu dajesz a potem używasz funkcji unset() i session_destroy()
kamilkomo
Witam

Dzieki za zainteresowanie, ale sobie juz poradzilem sam smile.gif wystarczylo dodac do wyloguj.php session_start na poczatek scryptu i po problemie. A komunikaty o ktore pytales nie pojawiaja sie u mnie. Tak czy inaczej juz wszuystko smiga dzieki pozdrawiam

a jeszcze jedna sprawa jesli bys mogl to przedstaw mi jak wyglada trzymanie info o logowaniu w tablicy a nie ciasteczkach smile.gif
tehaha
właściwie to masz to zrobione jak teraz na to dokładniej patrzę, ale jeszcze jedna ważna kwestia zanim wstawisz do zapytania sql, dane które pochodzą z formularza, owiń je w funkcję mysql_real_escape_string() a jeszcze lepiej jakbyś sprawdzał, czy użytkownik nie wpisał np. samej spacji , albo czy nie użył niedozwolonych znaków w nicku
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.