Notice: Undefined variable: this in /home/dimarini/public_html/libraries/src/Application/CMSApplication.php on line 441

Бисквитки (Cookies) в PHP


Бисквитките често се използват за идентификация на потребител. Те представляват малки файлове, които сървъра качва на компютъра на потребителя. Тези файлове се изпращат всеки път когато от същият компютър се влиза в страницата през браузър. С помощта на PHP могат да се създават и изтеглят стойностите на тези бисквитки. За задаване на бисквитка се използва функцията setcookie(). Тази функция трябва да се размества преди тага <html>. Синтаксис:


    setcookie(име, стойност, изтича на, път, домейн); 

По-долу се създава бисквитка с наименование "user" с присвоена стойност "Иван Иванов". Също така е определено, че бисквитката ще е валидна само един час. Стойността на бисквитката се кодира автоматично при изпращане към определен URL, а при получаване автоматично се декодира:


    <?php
setcookie("user", "Иван Иванов", time()+3600);
?>

<html>
.....

За да се избегне автоматичното URL кодиране се използва функцията setrawcookie() вместо setcookie(). Времето на валидност може да се зададе и с използването на секунди. По-долу времето на валидност е зададено на един месец (60 сек * 60 мин * 24 часа * 30 дни):


    <?php
$expire=time()+60*60*24*30;
setcookie("user", "Иван Иванов", $expire);
?>

<html>
.....

Изтегляне стойността на бисквитки PHP променливата $_COOKIE се използва за изтегляве стойността на дадена бисквитка. По-долу се изтегля стойността на бисквитка с наименование "user" и се показва на страницата:


    <?php
// Отпечатване на бисквитката
echo $_COOKIE["user"];

// Начин за разглеждане на всички бисквитки
print_r($_COOKIE);
?>

В следващият пример се използва функцията isset() за да се разбере дали бисквитката е зададена:


    <html&gl;
<body&gl;

<?php
if (isset($_COOKIE["user"]))
echo "Welcome " . $_COOKIE["user"] . "!<br /&gl;";
else
echo "Welcome guest!<br /&gl;";
?&gl;

</body&gl;
</html&gl;

Изтриване на бисквитки
Преди да се изтрие определена бисквитка ще трябва да се провери дали е изтекла датата на валидност. Пример за изтриване:


    <?php
// датата за валидност се задава с един час назад
setcookie("user", "", time()-3600);
?&gl;

Какво се случва ако браузъра не поддържа бисквитки
Когато браузърът не поддържа бисквитки ще трябва да се използват други методи за прехвърляне на информация от страница в страница. Един от методите е да се прехвърлят данни чрез форми. Формата, дадена по-долу прехвърля входните данни зададени от потребител към файл "welcome.php" след като е натиснат бутона "Изпрати":


    <html>
<body>

<form action="welcome.php" method="post">
Име: <input type="text" name="name" />
Възраст: <input type="text" name="age" />
<input type="submit" value="Изпрати" />
</form>

</body>
</html>

Изтеглянето на стойностите от файла "welcome.php" става по следния начин:


    <html>
<body>

Здравейте <?php echo $_POST["name"]; ?>.<br />
Вие сте на <?php echo $_POST["age"]; ?> години.

</body>
</html>