Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Logowanie (Sesje) - Błąd
Forum PHP.pl > Forum > Przedszkole
Sotery
Cześć,
Tworzę sobie panel logowania i napotkałem mały problem.
Stworzyłem dwa pliki:

zaloguj.php
  1. <?
  2.  
  3. $login=$_POST['login'];
  4. if($login) {
  5. $uzytkownik=$_POST['uzytkownik'];
  6. $md5_haslo=$_POST['haslo'];
  7.  
  8. require_once "config.php";
  9.  
  10. $rezultat=mysql_query("select * FROM uzytkownicy WHERE login='$uzytkownik' AND haslo='$md5_haslo'");
  11. if(@mysql_num_rows($rezultat)){
  12. session_register($uzytkownik);
  13. header("location:index.php");
  14. }else {
  15. $message="<span style='color:0d024c;'>Nieprawidłowa nazwa użytkownika lub hasło</span><br>";
  16. }
  17. }
  18. ?>
  19.  
  20. <form id="form1" name="form1" method="post" action="<? echo $PHP_SELF; ?>">
  21. Login <input name="uzytkownik" type="text" id="uzytkownik" class="uzytkownik"><br>
  22. Hasło <input name="haslo" type="password" id="haslo" class="haslo"></div><br>
  23. <input name="login" type="image" src="images/04.jpg" id="login" value="login" />

index.php
  1. <?
  2. if(!session_is_registered($uzytkownik)){
  3. header("location:zaloguj.php");
  4. }
  5. ?>
  6.  
  7. <p>Witaj <? echo $_SESSION[$uzytkownik]; ?>! Jesteś zalogowany.</p>
  8. <p><a href="index.php">Wyloguj</a></p>


Wszystko śmiga ok. Problem jest z sesją :(
To znaczy, gdy dana osoba wpisze poprawne dane przekierowuje ją na index.php - tam niestety nie rozpoznaje aby sesja istniała i powraca do zaloguj.php.
Wie ktoś gdzie mógłby się znajdować tutaj błąd?
yevaud
session_destroy() destroys all of the data associated with the current session. It does not unset any of the global variables associated with the session, or unset the session cookie. To use the session variables again, session_start() has to be called.
Lars_18
Może dlatego, że po starcie sesji od razu niszczysz jej dane (session_destroy). I nie używaj session_is_registered tylko isset.
Sotery
Początkowo też myślałem, że może chodzić o session_destroy.
Niestety po usunięciu owej linijki z kodu oraz zamianie session_is_registered na isset nadal to samo :/
yevaud
w zaloguj.php przypisz cos pod $_SESSION['uzytkownik'];

popraw wszedzie $_SESSION[$uzytkownik]; na $_SESSION['uzytkownik'];

w index.php ma byc isset($_SESSION['uzytkownik'])

jak dalej nie dziala to wklej kod
nospor
session_is_registered($uzytkownik)
ty wogole tego nie łapiesz winksmiley.jpg
Przecież $uzytkownik jest puste w tej linijce. Wiesz jak wiec wygląda tak naprawdę ten kod? O tak:
session_is_registered()
smile.gif

Zastosuj się proszę do podanych tu porad:
Temat: Jak poprawnie zada pytanie
Masz tapisane między innym jak włączyc wyświetlanie wszystkich błędów.
Sotery
Hehe, działa :))
Rzeczywiście wystarczyło zmienić [$uzytkownik] na ['uzytkownik'].
Dziękuje wam wszystkim i tobie nospor za wytłumaczenie.
Oczywiście lecą pochwały :))
Pozdrówka i miłego dnia.
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.