Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Skrypt logowania, a zamknięcie sesji ?
Forum PHP.pl > Forum > Przedszkole
r47i3l
Witam,
korzystam z takiego skryptu logowania:

  1. <?
  2. require_once('./config.php');
  3.  
  4. function usun($data){
  5.  
  6. GLOBAL $dbc;
  7. if (ini_get('magic_quotes_gpc')){
  8. $data = stripslashes($data);
  9. }
  10. return mysql_real_escape_string($data, $dbc);
  11. }
  12. if (isset($_POST['submit'])){
  13.  
  14. if (empty($_POST['login'])){
  15. $message .= '<font class="blad">Nie podałeś loginu</font><br />';
  16. $l = FALSE;
  17. }else{
  18. $l = usun($_POST['login']);
  19. }
  20.  
  21. if (empty($_POST['haslo'])){
  22. $message .= '<font class="blad">Nie podałeś hasła</font><br />';
  23. $h = FALSE;
  24. }else{
  25. $h = usun($_POST['haslo']);
  26. }
  27. if ( $l && $h ){
  28. $query = "SELECT username, access FROM user WHERE username='$l' AND haslo=password('$h')";
  29. $result = mysql_query($query);
  30. $row = mysql_fetch_array ($result, MYSQL_ASSOC);
  31. if($row){
  32. $_SESSION['username'] = $row['username'];
  33. $_SESSION['access'] = $row['access'];
  34. $_GET['cmd'] = 'ok';
  35. header ("Location: admin.php?cmd={$_GET['cmd']}");
  36. }else{
  37. $message .= '<font class="blad">Błędne hasło lub login</font><br />';
  38. }
  39. }else{
  40. $message .= '<font class="blad">Spróbuj jeszcze raz</font>';
  41. }
  42. }
  43. ?>
  44.  
  45. <? if(isset($message)){
  46. echo $message;
  47. }
  48. ?>


Sytuacja wygląda tak że wszystko ładnie się łączy z bazą po wpisaniu odpowiedniego loginu i hasła i skrypt wysyła mnie na stronę:

  1. http://strona.pl/admin.php?cmd=ok


Tylko jak zamknąć tą sesję ? Po odczekaniu kilku minut, nadal mogę wejść bezpośrednio za pomocą powyższego linku i sesja jest nadal otwarta. To samo jak skorzystam z innej przeglądarki
wklejam bezpośredni link i strona się normalnie ładuje.

Proszę o pomoc specjalistów, jak wyedytować powyższy skrypt tak aby sesja była automatycznie zamykana po wyjściu ze strony (jeśli ktoś będzie chciał wejść bezpośrednio z tego linku - nie uda mu sie) i żebym na stronie:
  1. http://strona.pl/admin.php?cmd=ok


posiadał przycisk wyloguj który będzie mnie wysyłał do index.php i zamykał sesje.

Proszę(błagam) o pomoc.
pozdr
lnn
wartosc logiczna musisz ustawic, cos w ten desen
  1. if($_SESSION['logged'])
  2. {
  3. // to go wylogowujemy i usuwamy jego dane z sesji
  4. $_SESSION['logged'] = false;
  5. $_SESSION['login'] = '';
  6. $_SESSION['id'] = '';
  7. echo 'Zostałes poprawnie wylogowany!';
  8. header("Location: index.php");
  9. }
  10. // jeśli nie jest zalogowany
  11. else
  12. {
  13. echo 'Nie byłes zalogowany!';
  14. }
thek
poczytaj o session_destroy() oraz ustawiane sesji na określony czas, po którym brak akcji automatycznie wygasza ją. Był już ten temat tutaj -> http://forum.php.pl/index.php?showtopic=115549
r47i3l
w każdej wolnej chwili staram się poznawać nowe zagadnienia, ale ciężko jak zawsze zacząć ?! :/

Wstawiłem to co polecił "Inn" lecz odrazu wywala mi informację jakbym nie był zalogowany:
"Nie byłes zalogowany!"

Wstawiłem kod który poleciłeś w pliku admin.php - to jest ten plik do którego odsyła skrypt po poprawnym zalogowaniu.

Należy coś wyedytować w tym kodzie który podałeś czy wkleić go tylko ?

Wkleja się go w admin.php nie index.php gdzie jest skrypt ?
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.