Ogłoszenie


Zapraszam serdecznie na strone DARMOWYCH FILMÓW I SERIALI. Każdy znajdzie coś dla siebie. Mam w bazie artykuły dot. webmasteringu, hackeringu i wiele wiele innych. Dodatkowo forum :) Nie czekaj zarejestruj się już dziś : www.Ogladamy.xorg.pl

#1 2008-10-31 19:23:25

RedEagle

Admin

status RedEagle
891470
Zarejestrowany: 2008-09-04
Posty: 1047
Komputer: Windows XP
Gra: GTA VC
Książka: Jim C.Hines-,,Zadanie Goblina"
Muzyka: Green Day

Ciastka

Ciastka

Ciasteczka, w przeciwieństwie do zmiennych z superglobalnych tablic $_GET i $_POST potrafią przechowywać określone informacje przez określony czas, nawet po wyłączeniu przeglądarki z wyjątkiem usunięcia przeglądarki.
Cały kod do wysyłania ciasteczka musimy umieścić bezpośrednio przed kodem, który trafiłby do przeglądarki wcześniej, czyli najlepiej na początku samego pliku, w przeciwnym wypadku zostaniemy pochwaleni informacją:


Warning: Cannot modify header information - headers already sent by (output started at d:\usr\apache\httdocs\html\index.php:1) in d:\usr\apache\htdocs\html\index.php on line 2

Wysyłanie coockies - setcookie()


Do wysyłania ciasteczek służy funkcja setcookie (ang. ustaw ciastko), która ma dwa atrybuty, aczkolwiek można stosować i trzeci, ale narazie tego nie zastosujemy. Pierwszy argument przechowuje nazwę ciasteczka, a drugi jego zawartość:

<?php

setcookie("nazwa","zawartość");

?>

<HTML>

Uwaga: znacznik HTML pojawił się tam celowo, (chociaż powinien to być DOCTYPE), aby od razu uświadomić sobie, że kody ciasteczek, jak i inne informacje wysyłane w tzw. nagłówku muszą być przed wszystkimi innymi kodami, które trafiają do przeglądarki. Oczywiście za jednym zamachem możemy wysłać inne ciasteczka, albo zadeklarować zmienną – to nie trafia do przeglądarki np.:


<?php

$zmienna = "Tekst";

setcookie("nazwa","zawartosć");

setcookie("nazwa2","zawartosć2");

?>

Jeżeli zastosowaliśmy oby dwa kody na naszym serwerze w naszej przeglądarce powinny być zapisane ciastka o nazwach nazwa i nazwa2.

Uwaga: przy próbie wysłania ciasteczka o takiej samej nazwie ciastko jest zamieniane.

Uwaga: niektóre przeglądarki, albo ich konkretne ustawienia nie akceptują ciasteczek.


Odczytywanie ciasteczek


Przyjmuję, że ciastko zostało pomyślnie wysłane i, że przeglądarka go nie zjadła. Warto teraz odczytać jego zawartość. Informacje zapisane w ciasteczkach odczytujemy używając superglobalnej tablicy $_COOKIE, której wartością jest nazwa ciastka. Przykładowy kod np.:


<?php

echo "$_COOKIE[nazwa]";

?>

Uwaga: oczywiście powyższy kod nie musi znajdować się ponad wszystkim, tak jak kod wysyłający ciasteczka, który musiał znaleźć się przed innymi tagami wysyłanymi do przeglądarki.

Uwaga: jeżeli w jednym skrypcie ciastko jest wysyłane i odczytywane, pamiętajmy, że dopiero po odświeżeniu ujrzymy zawartość ciastka!


Aby odnaleźć się w czasie i przestrzeni - time()


Niektóre ciastka, przechowujące loginy, hasła, czy inne poufne informacje powinny mieć z góry określony czas ważności ciasteczka. Zanim jednak dojdziemy do tego, poznajmy kolejną funkcję - time(), której zadaniem jest zwrócenie aktualnego uniksowego znacznika czasu, dokładniej od pierwszej sekundy roku 1970. Możemy użyć prostego skryptu, aby dowiedzieć się, ile sekund temu był ten dzień:


<?php

echo time();

?>

Można łatwo sprawdzić, ile lat temu był ten dzień za pomocą zdolności kalkulacyjnych PHP:


<?php

$czas = time() / 3600 / 24 / 366;

$czas = round($czas);

echo $czas;

?>

Pewnie uważasz, po co ja o tym mówię? Po co Ci funkcja wyświetlająca prehistoryczny czas. Jest potrzebna, gdyż wartość ciasteczek określa się w sekundach liczonych właśnie od tej daty. Oto przykład ciastka, które jest ważne przez cały dzień (dobra to 86400 sekund):


<?php

setcookie("krnazwa","zawartosć",time() + 86400);

?>

Powinniśmy wiedzieć, że PHP pozwala na wykonywanie operacji praktycznie wszędzie, więc bardziej przejrzysty kod może wyglądać nawet tak:


<?php

setcookie("krnazwa","zawartosć",time() + 60 * 60 * 24);

?>

Oto prosty skrypt, pozwalający na wprowadzenie własnego imienia:


<?php

if ($_POST[imie] == TRUE) {

setcookie("imie",$_POST[imie]);

echo "Zostałeś zapamiętany,

<A HREF=\"index.php\">kliknij tutaj</A>";

}

else if ($_COOKIE[imie] == TRUE) {

echo "Witaj <B>$_COOKIE[imie]"; }

else { echo "

<FORM ACTION=\"index.php\" METHOD=\"post\">

Podaj swoje imię: <INPUT TYPE=\"text\" NAME=\"imie\"><br />

<INPUT TYPE=\"submit\" VALUE=\"Zapamiętaj mnie\">

</FORM>"; }

?>


http://i37.tinypic.com/sbm42f.png
http://i38.tinypic.com/29x82na.png

Offline

 

Stopka forum

RSS
Powered by PunBB
© Copyright 2002–2008 PunBB
Polityka cookies - Wersja Lo-Fi


Darmowe Forum | Ciekawe Fora | Darmowe Fora