Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Cookies
Forum PHP.pl > Forum > Przedszkole
MateuszS
Witam, szukam skryptu do mojego logowania

  1. <?php
  2. if($_POST['loguj']){
  3.    $user = mysql_real_escape_string($_POST['user']);
  4.    $pass = mysql_real_escape_string($_POST['pass']);
  5.    if(!empty($user) and !empty($pass))
  6.    {
  7.        $query = mysql_query("SELECT `username`,`password` FROM `konta`
  8.                             WHERE `username`='".$user."' AND `password`='".md5($pass)."'") or die(mysql_error());    
  9.        $wynik = mysql_num_rows($query);
  10.        if($wynik == 1)
  11.        {
  12.        $_SESSION['user'] = $user;
  13.        $_SESSION['pass'] = $pass;
  14.  
  15.        echo '<script language="JavaScript">window.location="index.php?opcja=zalogowany";</script>';
  16.        }
  17.        else
  18.        {
  19.        echo '<script language="JavaScript">window.location="index.php?opcja=zle_haslo";</script>';
  20.        }
  21.    }
  22.    else
  23. {    
  24. echo '<script language="JavaScript">window.location="index.php?opcja=niezalogowany";</script>';
  25. }
  26.    
  27. }
  28.    
  29. ?>


Tak zeby od czasu logowania, gdy user przez 5 min nie odswiezyl strony lub nie byl aktywny wylogowywalo go. Tak jak jest na forach. Nie robisz nic przez jakis czas to cie wylogowuje. Nigdy sie ciastkami nie bawilem i pierwsze proby nie wyszly. Pozdrawiam
skowron-line
http://pl2.php.net/manual/pl/function.setcookie.php
manual nie boli w przykładach masz pokazane jak upiec coś dobrego. smile.gif
Crozin
Korzystasz ze standardowego mechanizmu sesji, więc http://pl.php.net/manual/en/session.config....gc-maxlifetime

btw: czemu przekierowanie robisz w JS?
MateuszS
No ta, ale ja tych przykladow nie czaje, dlatego pisze tu. Nawet nie wiem ktory co robi sad.gif
Jedyne co z manuala mozna wyczytac to skladnie COOKIE


Crozin: Bo jak dam header to mi wywali blad "header arleady send"
skowron-line
Cytat(MateuszScirka @ 25.04.2009, 09:38:38 ) *
Crozin: Bo jak dam header to mi wywali blad "header arleady send"

Ten temat na forum był wałkowany 1000000000000 razy poszukaj.
a czego nie kumasz w tych przykładach questionmark.gif poczytaj co jest napisane, a napewno dasz sobie rade.
MateuszS
Tak tak wiem ze byl walkowany. Wlasnie rozwiazaniem na ten problem jest JS. Poza tym to logowanie to czesc skryptu i tam naglowki sa wysylane i nie ma szans uwolnic sie od tego bledu jak tylko JS ktora sprawuje sie OK. W kazdym razie nie o to mi chodzi, wystarczy mi skrypt ktory bym walnal na kazda podstrone ktory by jakby przedluzal o kolejne 5 min sesje no nic zapytam kolegi jak bedzie to mi pomoze, nie mam czasu ze slownikiem w manualu siedziec ;] Dzieki za odpowiedzi.
Crozin
Cytat
Tak tak wiem ze byl walkowany. Wlasnie rozwiazaniem na ten problem jest JS. Poza tym to logowanie to czesc skryptu i tam naglowki sa wysylane i nie ma szans uwolnic sie od tego bledu jak tylko JS ktora sprawuje sie OK.
Bzdura, bzdura i jeszcze raz... wielka bzdura! Przeczytaj w Googleu co oznacza ten błąd.
Cytat
nie mam czasu ze slownikiem w manualu siedziec ;]
Właśnie sprawiłeś, że przykładowo ja napewno Ci nie pomogę... bo czekasz na gotowca i ruszyć Ci się samemu nie chce.
MateuszS
Cytat(Crozin @ 25.04.2009, 12:02:31 ) *
Bzdura, bzdura i jeszcze raz... wielka bzdura! Przeczytaj w Googleu co oznacza ten błąd.Właśnie sprawiłeś, że przykładowo ja napewno Ci nie pomogę... bo czekasz na gotowca i ruszyć Ci się samemu nie chce.


Bzdura. Nie pisalbym tu gdybym nie szukal. Manual owszem pomocny, ale gdy chodzi o tak skomplikowana konstrukcje jak wylogowywanie po jakims czasie raczej malo prawdopodobne abym rozpoznal ten kod wsrod setek innych ktore tam sa prawda?

Przewrocilem pol neta ale znalazlem

  1. <?php
  2. $now = time();
  3. $expiryTime = 300;
  4. if (!isset($_SESSION['last_trace']))
  5. {
  6.    $_SESSION['last_trace'] = $now;
  7. }
  8. elseif ((int)$_SESSION['last_trace'] + $expiryTime < $now)
  9. {
  10.    $sessionName = session_name("Sesja");    
  11.    $_SESSION = array();
  12.    if (isset($_COOKIE[$sessionName]))
  13.    {
  14.        setcookie($sessionName, '', $now-600, '/');
  15.    }
  16.    session_destroy();    
  17.    
  18.    echo 'wygasla';
  19. }
  20. ?>


Polecam kazdemu.

Jeszcze taki problem, jak przerobic skrypt zeby gdy user odswieza strone zaczynal sie od nowa? Bo on wylogowuje zawsze po tym czasie nawet gdy user jest aktywny i cos robi.
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.