paweln
17.01.2004, 13:05:22
Witam.
Jak zrobić coś takiego aby uzytkownik po zalogowaniu na strone mial jakiś okreslony czas np: 20 min na wykonanie czegos (np: wybranie kilku opcji na formularzu) i po tym czasie juz nie mial do tego dostepu.
cichy
17.01.2004, 13:08:29
Po wejściu do obszaru zabronionego stawiasz sesje
$_SESSION['czas_wstepu'] = time();
i na innych podstronach sprawdzasz czy $_SESSION['czas_wtepu'] jest mniejsze od czasu czasu wstepu + 20 minut (20*60*60)
i jeśli jest mniejszy to może oglądać dalej, a jesli nie to przekierowanie na strone główną albo inną.
Pozdro
paweln
17.01.2004, 13:35:00
A jesli przy zalogowaniu na strone tworzona juz jest sesja to moge ja jakoś wykorzystać w tym celu czy tworzyć nowa ?
I jeszcze jedno pytanie odnosnie formatu czasu i sprawdzania. Czas na przebywanie bedzie w takim formacie gg:mm:ss czyli 00:20:00, ktory bedzie pobrany z bazy. Jak go sprawdzać z sesją ?
cichy
17.01.2004, 13:41:28
To ze jest tworzona sesja to dobrze.
Ty tylko dopisujesz kolejną zmienną do sesji.
Czas jest zapisywany jako ilość sekund od 1970 roku.
[php:1:daae8ed474]<?php
$_SESSION['czas_wstepu'] = time();
$_SESSION['ile_minut'] = 20;
?>[/php:1:daae8ed474]I teraz sprawdzasz:
[php:1:daae8ed474]<?php
$czas = time()+($_SESSION['ile_minut']*60*60);
if($_SESSION['czas_wstepu']<$czas)
{
//pokazuj dane
}
else
{
//wyjdz ze strony bo Ci sie czas skonczyl
}
?>[/php:1:daae8ed474]
Powinno działac.
Pozdro
paweln
17.01.2004, 14:09:15
Dzieki.
A czy to:
[php:1:cb4b6fd9ae]<?php
$_SESSION['ile_minut'] = 20;
?>[/php:1:cb4b6fd9ae]
moge zastapic zmienna pobrana z bazy sql ?
HaRy
17.01.2004, 14:32:20
oczywiscie, ze mozesz
nie wazne skad masz wartosc zmiennej ... wazne, ze ja masz
paweln
17.01.2004, 17:13:51
Kurcze jakos to nie dziala
HaRy
17.01.2004, 18:08:29
zaprezentuj kod. ... nikt nie jest wrozka, by pomoc bez obserwacji przypadku
cichy
17.01.2004, 18:19:50
Nie mam pewnosći czy tamten kod na pewno działa.
Tu masz nowy który działa na 100 %:
[php:1:5d6665329a]<?php
session_start();
if(!isset($_SESSION['czas_wstepu']))
{
$_SESSION['czas_wstepu']=time();
$_SESSION['ile_minut'] = 1;
}
$czas = $_SESSION['ile_minut']*60;
$czas1 = time()-$_SESSION['czas_wstepu'];
echo 'jestes na stronie:'.$czas1;
echo ' sekund z wyznaczonych: '.$czas.'<br>';
if($czas1 < $_SESSION['ile_minut']*60)
{
echo 'możesz sobie łazić po witrynie';
}
else
{
echo 'twój czas minął';
}
?> [/php:1:5d6665329a]
Pozdro
paweln
17.01.2004, 19:36:11
Teraz działa prawidłowo. Wielkie dzieki Simpson.
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.