Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Jak zachowac sesie po zalogowaniu
Forum PHP.pl > Forum > Przedszkole
-kobi-
Witam
tak jak w temacie

mam taki problem
mam sobie skrypt logowania i loguje i wszystko ok pzechodzi na odpowiednia strone po zalogowaniu
ale jak juz pouzniej user pzejdzie na inna zakładke w menu to login sie nadal pokazuje ale np adres email i reszta danych zostaje utracona.
adresy pobieram z bazy takim skryptem
  1. $wynik = mysql_query ("SELECT * FROM email WHERE login='$login'");
  2. while($wiersz=mysql_fetch_array($wynik)){
  3. //tutaj wyswietlamy rekordy
  4. $ilosc_rekordow++;
  5. }
  6. echo"$ilosc_rekordow";
matty7
Jaki masz warunek przy menu, który odpowiada za wyswietlanie menu dla zalogowanego uzytkownika?
Wyświetl na każdej stronie sesje:

  1. var_dump($_SESSION)


No i upewnij się czy tych części danych w sesji nie kasujesz po zalgowaniu ;p

Jeśli masz podstrony w wielu różnych plikach, sprawdź czy masz tam sesje wystartowaną - session_start()
piotrex41
Sprawdź czy na pewno wszystko zapisujesz do sesji, czy może tylko przechowujesz w zmiennej która przy przeładowaniu strony ulega wyczyszczeniu. Ewentualnie zawsze możesz nadpisać sesję po zalogowaniu jeśli będzie potrzeba.
-kobi-
no skryp logowania to mam taki sami zobaczcie bo ja to zabardzo nie kumam jeszcze tego do piero zaczynam

  1. <?php
  2. error_reporting(E_ALL ^ E_NOTICE);
  3.  
  4. require 'config.php';
  5.  
  6. require_once 'user.class.php';
  7. $login = htmlspecialchars(mysql_real_escape_string($_POST['login']));
  8. $pass = mysql_real_escape_string($_POST['pass']);
  9.  
  10. if ($_POST['send'] == 1) {
  11.  
  12. if (!$login or empty($login)) {
  13. die ('<center><font color="#FF0000"><p class="error">Wypełnij pole z loginem!</p></font><br><a href="#"><a href="login.php">Powrót</a></center>');
  14. }
  15.  
  16. if (!$pass or empty($pass)) {
  17. die ('<center><font color="#FF0000"><p class="error">Wypełnij pole z hasłem!</p></font><br><a href="#"><a href="login.php">Powrót</a></center>');
  18. }
  19.  
  20. $pass = user::passSalter($pass);
  21.  
  22.  
  23. $userExists = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM users WHERE login = '$login' AND pass = '$pass'"));
  24.  
  25. if ($userExists[0] == 0) {
  26.  
  27. echo '<center><font color="#FF0000"><p class="error">Użytkownik o podanym loginie i haśle nie istnieje.</p></font></center>';
  28. }
  29.  
  30. else {
  31.  
  32. $user = user::getData($login, $pass);
  33.  
  34.  
  35. $_SESSION['login'] = $login;
  36. $_SESSION['pass'] = $pass;
  37.  
  38.  
  39. }
  40. }
  41.  
  42. ?>
piotrex41
Po 1. Do sesji zapisujesz tylko login i HASŁO (o kurde, po co Ci hasło zapisane w sesji? powinieneś je tylko porównać z tym z bazy).
Po 2. Nie zapisujesz do sesji adresu e-mail więc się nie dziw, że go tam nie ma.
Po 3. Brak Ci zapytania pobierającego wszystkie dane które chcesz mieć w sesji, masz tylko sprawdzające czy user istnieje w bazie.

Dodaj zapytanie które pobierze Ci resztę danych usera (e-mail itp) i zapisz sobie to do sesji, i będziesz miał, chodź nie wiem po co Ci te dane w sesji. Normalnie robi się do tego metody w klasie user, ale Twoja sprawa smile.gif
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.