Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Skrypt logowania, a zamknięcie sesji ?, Jak zamknąć otwartą sesję ?
r47i3l
post 17.01.2010, 12:39:09
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 17.01.2010

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
lnn
post 17.01.2010, 12:45:36
Post #2





Grupa: Zarejestrowani
Postów: 361
Pomógł: 11
Dołączył: 17.12.2008
Skąd: LU

Ostrzeżenie: (0%)
-----


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. }
Go to the top of the page
+Quote Post
thek
post 17.01.2010, 12:46:20
Post #3





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




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

Ten post edytował thek 17.01.2010, 12:46:50


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
r47i3l
post 17.01.2010, 13:07:51
Post #4





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 17.01.2010

Ostrzeżenie: (0%)
-----


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 ?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 7.06.2025 - 17:17