PHP Cookies

Ang cookie ay pangkaraniwang ginagamit upang makilala ang mga user.

Ano ang Cookie?

Ang cookie ay pangkaraniwang ginagamit upang makilala ang mga user. Ang cookie ay isang maliliit na file na iniwan ng server sa kompyuter ng user. Bawat paghiling ng browser sa pahina, ang cookie ay ipinapadala din. Sa pamamagitan ng PHP, kayo ay makapaglilikha at makakakuha ng halaga ng cookie.

Paano gumawa ng cookie?

Ang function na setcookie() ay ginagamit upang set ang cookie.

Komento:Ang function na setcookie() ay dapat nasa bago ng <html> tag.

Mga Tagapagtalastas

setcookie(name, value, expire, path, domain);

Halimbawa

Sa mga sumusunod na halimbawa, gagawa kami ng cookie na may pangalan na "user", at magtakda ng halaga na "Alex Porter". Binigay din namin na ang cookie ay magtatapos sa isang oras pagkatapos ng isang oras:

<?php 
setcookie("user", "Alex Porter", time()+3600);
?>
<html>
<body>
</body>
</html>

Komento:Sa pagpapadala ng cookie, ang halaga ng cookie ay awtomatikong URL encoding, at awtomatikong decoding kapag kinukuha (upang maiwasan ang URL encoding, gamitin ang setrawcookie() sa halip).

Paano kunin ang halaga ng Cookie?

Ang variable na $_COOKIE ng PHP ay ginagamit upang kunin ang halaga ng cookie.

Sa mga sumusunod na halimbawa, kinuha namin ang halaga ng cookie na may pangalan na "user" at inilagay ito sa pahina:

<?php
// Iprint ng cookie
echo $_COOKIE["user"];
// Isang paraan upang tingnan ang lahat ng cookie
print_r($_COOKIE);
?>

Sa mga sumusunod na halimbawa, gumagamit kami ng function na isset() upang kumpirmahin kung nag-set na ang cookie:

<html>
<body>
<?php
if (isset($_COOKIE["user"]))
  echo "Malugod na dumating " . $_COOKIE["user"] . "!\n";
else
  echo "Malugod na dumating, bisita!\n";
?>
</body>
</html>

如何删除 cookie?

当删除 cookie 时,您应当使过期日期变更为过去的时间点。

删除的例子:

<?php 
// set the expiration date to one hour ago
setcookie("user", "", time()-3600);
?>

如果浏览器不支持 cookie 该怎么办?

如果您的应用程序涉及不支持 cookie 的浏览器,您就不得不采取其他方法在应用程序中从一张页面向另一张页面传递信息。一种方式是从表单传递数据(有关表单和用户输入的内容,稍早前我们已经在本教程中介绍过了)。

下面的表单在用户单击提交按钮时向 "welcome.php" 提交了用户输入:

<html>
<body>
<form action="welcome.php" method="post">
Name: <input type="text" name="name" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
</body>
</html>

取回 "welcome.php" 中的值,就像这样:

<html>
<body>
Welcome <?php echo $_POST["name"]; ?>.<br />
You are <?php echo $_POST["age"]; ?> years old.
</body>
</html>