Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dostęp do witryny na czas.
Forum PHP.pl > Forum > PHP
paweln
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
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
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
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
Dzieki.

A czy to:
[php:1:cb4b6fd9ae]<?php

$_SESSION['ile_minut'] = 20;

?>[/php:1:cb4b6fd9ae]
moge zastapic zmienna pobrana z bazy sql ?
HaRy
oczywiscie, ze mozesz smile.gif

nie wazne skad masz wartosc zmiennej ... wazne, ze ja masz smile.gif
paweln
Kurcze jakos to nie dziala sad.gif
HaRy
zaprezentuj kod. ... nikt nie jest wrozka, by pomoc bez obserwacji przypadku winksmiley.jpg
cichy
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
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.