Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z sesjami
Forum PHP.pl > Forum > PHP
szaleq
Witam

Mam problem. Pisze skrypt logowania, i nie wiem dla czego ale zmienne sesji nie sa zapamiętywane. Oto kod, w pierwszym pliku caly skrypt logujący (wydawaloby sie że wszystko w nim dziala), oraz drugi, który na razie ma tylko testowa funkcjonalnosc - sprawdza czy user jest zalogowany. i niestety co bym nie robil, zawsze zwraca wynik negatywny...

insex.php:
  1. <?php
  2.  
  3. include ('dbclass.php');
  4. $komunikat = '';
  5.  
  6.  
  7.  
  8. if ($_SESSION['valid_user']) {
  9. header("location:main.php");
  10. }
  11.  
  12. else {
  13.  
  14. if (isset($_POST['login'])){
  15. $login = $_POST['user'];
  16. $haslo = $_POST['passwd'];
  17.  
  18. $polaczenie = new Baza;
  19.  
  20. $sql = "SELECT * FROM users WHERE login='$login' AND pass='$haslo'";
  21. $result = mysql_query($sql);
  22.  
  23. if(mysql_num_rows($result)){
  24. while ($row = mysql_fetch_assoc($result)) {
  25. $username = $row['login'];
  26. }
  27. $_SESSION['valid_user'] = true;
  28. $_SESSION['user_name'] = $username;
  29. header("location:main.php");
  30. }
  31.  
  32. else {
  33. $_SESSION['valid_user'] = false;
  34. $komunikat = '<p class="komunikat">Nieprawidłowa nazwa użytkownika lub hasło</p>';
  35. include "html/form.html";
  36. }
  37. }
  38.  
  39. else if (!isset($_POST['user'])){
  40. include "html/form.html";
  41.  
  42. }
  43. }
  44.  
  45. ?>


main.php:
  1. <?php
  2.  
  3.  
  4. if ($_SESSION['valid_user']) {
  5. ?>
  6.  
  7. Użytkownik: <b><?php echo $_SESSION['user_name']; ?></b>
  8.  
  9. <?php
  10. }
  11.  
  12. else {
  13.  
  14. echo ('brak sesji');
  15. }
  16.  
  17. ?>


w pliku main.php zawsze wyskakuje ten sam blad: [...]Undefined index: valid_user[...]
Ten skrypt to moja pierwsza zabawa z uzywaniem sesji i może zle zrozumialem temat... Prosze o pomoc. Pozdrawiam
mhw
Wydaje mi się, że powinieneś w drugim pliku umieścić session_start() na samym początku, przed error_reporting.
szaleq
wczesniej tak bylo session_start na samym poczatku, error_reporting dodalem dopiero potem zeby sprawdzic konkretnie co za blad wyskakuje. Bo normalnie nie jest mi to potrzebne....

Juz zadziałało. Blad polegal na tym ze: skrypt sprawdza czy zmienna $_SESSION['valid_user'] zwraca wartość true. Jeśli tak przenosil na inna strone, jesli nie, sprawdzal zmienne z pol formularza i jeśli istnialy, przeprowadzal proces logowania (tj. tworzyl zmienne sesji) po czym na samym koncu wuwolana jest funkcja session_destroy()... Drobne przeoczenie a ile sie nasiedzialem... i forum zaśmiecilem...
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.