|
Druga część artykułu pt. "Utrzymanie sesji w php". W tej części przedstawię jak można ustawić i pobrać parametr cookies sesji czyli tz. czas życia sesji. Posłużę się w tym celu funkcją: session_set_cookie_params() do ustawienia parametru ciasteczka. Funkcja session_set_cookie_params() pobiera trzy argumenty, opis składni: void session_set_cookie_params ( int czas_życia [, string ścieżka [, string domena [, bool bezpieczne]]] ). W przypadku gdy argumenty nie zostaną podane, funkcja pobierze domyślne ustawienia parametrów cookie, które są ustawione w pliku php.ini i zwróci je w postaci tablicy.
Aby odczytać dane, które zwraca funkcja session_set_cookie_params() należy posłużyć się funkcją session_get_cookie_params(), przykład poniżej:
001 <?php
002
003 $cookie = session_get_cookie_params();
004
005 echo "Czas życia cookie: $cookie[lifetime]<br>";
006 echo "Ścieżka cookie: $cookie[path]<br>";
007 echo "Domena cookie: $cookie[domain]<br>";
008 echo "Bezpieczne połączenie: $cookie[secure]<br>";
009
010 ?>
Teraz przedstawię w jaki sposób można zastosować owe funkcje stworzę skrypt, który będzie zabezpieczał przed hotlinkowaniem plików z naszej strony. Skrypt doskonale nadaje się do zastosowania np. w dziale download :)
<?php
# Ekipa TS, http://twoja-strona.net/
/* session_set_cookie_params(3, '/cookiepath', 'domena'); */
$sesja_cookie = 10; // Czas życia sesji.
$od = 2; // Blokada sesji, rozpoczęcie pobierania nie może nastąpić wcześniej niż po upływie 2 sekund.
$url = 'http://twoja-strona.net/skrypty/easy_mail.rar'; // Przykładowy plik do pobrania.
$load = 3000; // Przeładowanie strony co 3 sekundy.
session_set_cookie_params($sesja_cookie);
session_start();
session_register('czas');
session_register('ie');
$ie = $_SESSION['ie'];
$czas = $_SESSION['czas'];
$sekunda = $load/1000;
$przeladuj = '<script language="Javascript" type="text/javascript">
<!--
function gotoThread(){
window.location.href="'.$_SERVER['PHP_SELF'].'?";
}
window.setTimeout("gotoThread()", '.$load.');
//-->
</script>';
if ($czas=="" || $ie+$sesja_cookie<time()) {
$ie = time();
$czas = "zalogowany";
echo 'Sesja wygasła, za ('.$sekunda.') sek. rozpocznie się automatyczne pobieranie pliku... '.$przeladuj;
} else {
if (time()-$ie<$od) {
echo 'Sesja wygasła, za ('.$sekunda.') sek. rozpocznie się automatyczne pobieranie pliku... '.$przeladuj;
} else {
header("Location: ".$url);
}
}
?>
Pobierz Skrypt
Autor: Duch Prawa autorskie © . Wszelkie Prawa Zastrzeżone.
Opublikowane: 2006-01-18 (404 odsłon)  [ Wróć ] Biblioteka index |