Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Logowanie problem z sesją
Forum PHP.pl > Forum > Przedszkole
lukaszk
Witam, mam prosty skrypt logowania
Kiedy się zaloguje mogę przypisać pod zmienną
$login=$_SESSION['login'];
i ją wyświetlić ale wystarczy że zrobię cokolwiek (po przeładowaniu się strony) nie mogę przypisać dla zmiennej wartości sesji.

Kiedy wyświetlam Witaj: $_SESSION['login']; nic się nie wyświetla (znika po przeładowaniu ale jestem cały czas zalogowany)
  1. if(isset($_POST['zaloguj']))
  2. {
  3. $nick = $_POST['username'];
  4. $pass = $_POST['password'];
  5.  
  6. // sprawdzamy czy wszystkie dane zostały podane
  7. if(empty($nick) || empty($pass)) echo 'Wpisz wszystkie pola!';
  8. // jeśli tak...
  9. else
  10. {
  11. // filtrujemy dane
  12.  
  13. // kodujemy hasło
  14. $pass = md5($pass);
  15.  
  16. // sprawdzamy czy istnieje użytkownik z takim loginem i hasłem
  17. $result = mysql_query("SELECT * FROM uzytkownicy WHERE login='$nick' AND haslo='$pass'");
  18.  
  19. // jeśli nie istnieje
  20. if(mysql_num_rows($result)==0) echo 'Niestety podałes niepoprawne dane!';
  21. // jeśli tak...
  22. else
  23. {
  24. // dodajemy wynik zapytania do tablicy
  25. $row = mysql_fetch_array($result);
  26.  
  27. // ustawianie sesji że użytkownik jest zalogowany
  28. $_SESSION['logged'] = true;
  29.  
  30. // dodawanie do sesji id użytkownika, login oraz datę rejestracji
  31. $_SESSION['id'] = $row['id'];
  32. $_SESSION['login'] = $row['login'];
  33. $_SESSION['data_rejestracji'] = $row['data_rejestracji'];
  34.  
  35. // wyświetlenie komunikatu oznaczającego poprawne logowanie
  36. $log_rej_wiadomosc='Zostałeś zalogowany';
  37. $klasa="success";
  38.  
  39. }
  40. }
  41. }
  42.  
  43.  
grzeee
Sprawdź czy inne sesje przechodzą ?
Może nie masz wszędzie session_start
Ogólnie to to logowanie masz trochę dziwnie zbudowane.
Sam bym dał wpierw if jeśli jest taki użytkownik a else jeśli nie ma/błędny login
-lukaszk-
a także mam problem z podwójnym dodawaniem rekordów do bazy.

Kiedy użytkownik na karcie ogłoszenia chcę skontaktować się z użytkownikiem który wystawił ogłoszenie po wysłaniu dodają się dwa razy te same rekordy do bazy. (metoda post)
Kiedy na karcie uzytkownik kliknie obserwuj ogłoszenie również do bazy dodają się dwa rekordy (metoda get)

Przed wyświetleniem z bazy rekordów (ogłoszenia) do tego ogłoszenia dodają się dwie odsłony (to jest jeszcze przed pętlą w pętli mam powyższe.

  1. mysql_query("update ogloszenia SET odslony=odslony+1 WHERE id_ogloszenia='$id_ogloszenia'")
  2. or die('Błąd zapytania: '.mysql_error());
  3. $zapytanie_bottom = "SELECT * FROM ogloszenia where id_ogloszenia='$id_ogloszenia' limit 1";
  4. if ($r_bottom = mysql_query ($zapytanie_bottom)) {
  5. while ($a = mysql_fetch_array($r_bottom)) {


tak wygląda kod dodawania obserwowanych do bazy
  1. if ($_POST['obserwowane']=="dodaj") {
  2. $id_ogloszenia=$_POST['id_ogloszenia'];
  3. $login=$_SESSION['username'];
  4. $tytul=$_POST['tytul'];
  5. $data_ogloszenia=$_POST['data_ogloszenia'];
  6.  
  7. $obserwuj=mysql_query("INSERT INTO obserwowane SET
  8. id_ogloszenia='$id_ogloszenia',
  9. login='$login',
  10. tytul='$tytul',
  11. data_ogloszenia='$data_ogloszenia',
  12. data_czas='$data_czas'");
  13. if($obserwuj) {
  14. $log_kom_wiadomosc='Ogłoszenie zostało dodane do obserwowanych';
  15. $klasa_komentarz="success";
  16. }
  17.  
  18.  
  19. }
  20.  
  21.  


a tak wygląda link
  1. <li>
  2. <a href="index.php?<? echo ''.$adres.''; ?>&obserwowane=dodaj&tytul=<? echo ''.$a['tytul'].''?>" rel="facebox" title="Check Your E-Mails">
  3. <img SRC="images/icons4/eye.png" alt="Mail" /><br />Obserwuj ogłoszenie
  4. </a>
  5. </li>



a tak wygląda kod wyświetlania podstron w index.php
  1. <?
  2. $dzial= $_GET['dzial'];
  3. switch ($dzial){
  4.  
  5. case 'rejestracja':
  6. include "rejestracja.php";
  7. break;
  8. case 'karta-open':
  9. include "karta.php";
  10. break;
  11. case 'dodaj':
  12. include "dodaj.php";
  13. break;
  14. case 'lista':
  15. include "lista.php";
  16. break;
  17. case 'dzialy':
  18. include "dzialy.php";
  19. break;
  20. default:
  21. echo 'Tu będzie 404!';
  22. }
  23. ?>
lukaszk
Niestety nie działa.

Każdy plik zawiera

  1. // rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent)
  2.  
  3. // start sesji


i wynik jest taki że w sesji nie jest zapisany login (na początku jest ale po czasie znika) a kolejna kwestia że czasami się samo wyloguje
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.