PHP-cookies

Cookies används ofta för att känna igen användare.

Vad är en Cookie?

Cookies används ofta för att känna igen användare. En cookie är en liten fil som servern lämnar på användarens dator. Varje gång samma dator begär en sida via webbläsaren, skickas cookie:n samtidigt. Genom PHP kan du skapa och hämta värdet för en cookie.

Hur skapar man en cookie?

setcookie()-funktionen används för att sätta en cookie.

Anmärkning:setcookie()-funktionen måste vara innan <html>-taggen.

Syntax

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

Exempel

I följande exempel skapar vi en cookie med namnet "user", tilldelar den värdet "Alex Porter". Vi anger också att denna cookie expirerar efter en timme:

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

Anmärkning:När en cookie skickas, URL-kodas värdet automatiskt, och det URL-dekoder vid hämtning (för att undvika URL-kodning, använd setrawcookie() istället).

Hur hämtar man värdet för en Cookie?

PHP:s $_COOKIE-variabel används för att hämta värdet för en cookie.

I följande exempel hämtar vi värdet för cookie:n "user" och visar det på sidan:

<?php
// Skriv ut en cookie
echo $_COOKIE["user"];
// Ett sätt att visa alla cookies
print_r($_COOKIE);
?>

I följande exempel använder vi isset()-funktionen för att bekräfta att en cookie har satts:

<html>
<body>
<?php
om (isset($_COOKIE["user"]))
  echo "Välkommen " . $_COOKIE["user"] . "!<br />";
annars
  echo "Välkommen gäst!<br />";
?>
</body>
</html>

Hur tar man bort en cookie?

När du tar bort en cookie, bör du ändra utgångsdatumet till en tidpunkt i det förflutna.

Exempel på borttagning:

<?php 
// sätt utgångsdatumet till en timme sedan
setcookie("user", "", time()-3600);
?>

Vad gör man om webbläsaren inte stöder cookies?

Om din applikation involverar webbläsare som inte stöder cookies, måste du använda andra metoder för att överföra information mellan sidor i applikationen. En metod är att skicka data från formuläret (mer om formulär och användarinmatning har vi redan behandlat tidigare i denna kurs).

Nedanstående formulär skickar användarens inmatning till "welcome.php" när användaren klickar på submit-knappen:

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

Återfå värden från "welcome.php", så här:

<html>
<body>
Välkommen <?php echo $_POST["name"]; ?>.<br />
Du är <?php echo $_POST["age"]; ?> år gammal.
</body>
</html>