PHP relace
Relace je způsob, jak uložit informace (v proměnných), které lze použít na více stránkách.
Na rozdíl od souboru cookie se informace neukládají v počítači uživatele.
Co je to relace PHP?
Když pracujete s aplikací, otevřete ji, provedete nějaké změny a pak ji zavřete. To je hodně jako relace. Počítač ví, kdo jste. Ví, kdy aplikaci spustíte a kdy skončíte. Ale na internetu je jeden problém: webový server neví, kdo jste nebo co děláte, protože HTTP adresa neudržuje stav.
Proměnné relace řeší tento problém tím, že ukládají informace o uživateli pro použití na více stránkách (např. uživatelské jméno, oblíbená barva atd.). Ve výchozím nastavení proměnné relace trvají, dokud uživatel nezavře prohlížeč.
Tak; Proměnné relace obsahují informace o jednom uživateli a jsou dostupné všem stránkám v jedné aplikaci.
Tip: Pokud potřebujete trvalé úložiště, možná budete chtít uložit data do databáze .
Spusťte relaci PHP
S session_start()
funkcí je zahájena relace.
Proměnné relace se nastavují pomocí globální proměnné PHP: $_SESSION.
Nyní vytvoříme novou stránku s názvem "demo_session1.php". Na této stránce zahájíme novou relaci PHP a nastavíme některé proměnné relace:
Příklad
<?php
// Start the session
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// Set session variables
$_SESSION["favcolor"] = "green";
$_SESSION["favanimal"] = "cat";
echo "Session variables are set.";
?>
</body>
</html>
Poznámka: Funkcesession_start()
musí být úplně první věcí ve vašem dokumentu. Před značkami HTML.
Získejte hodnoty proměnných relace PHP
Dále vytvoříme další stránku s názvem "demo_session2.php". Z této stránky získáme přístup k informacím o relaci, které jsme nastavili na první stránce ("demo_session1.php").
Všimněte si, že proměnné relace nejsou předávány jednotlivě každé nové stránce, ale jsou získávány z relace, kterou otevíráme na začátku každé stránky ( session_start()
).
Všimněte si také, že všechny hodnoty proměnných relace jsou uloženy v globální proměnné $_SESSION:
Příklad
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// Echo session variables that were set on previous page
echo "Favorite color is " . $_SESSION["favcolor"] . ".<br>";
echo "Favorite animal is " . $_SESSION["favanimal"] . ".";
?>
</body>
</html>
Dalším způsobem, jak zobrazit všechny hodnoty proměnných relace pro relaci uživatele, je spustit následující kód:
Příklad
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
print_r($_SESSION);
?>
</body>
</html>
Jak to funguje? Jak to ví, že jsem to já?
Většina relací nastavuje uživatelský klíč na počítači uživatele, který vypadá asi takto: 765487cf34ert8dede5a562e4f3a7e12. Poté, když je relace otevřena na jiné stránce, prohledá počítač a vyhledá uživatelský klíč. Pokud existuje shoda, přistoupí k této relaci, pokud ne, zahájí novou relaci.
Upravte proměnnou relace PHP
Chcete-li změnit proměnnou relace, stačí ji přepsat:
Příklad
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// to change a session variable, just overwrite it
$_SESSION["favcolor"] = "yellow";
print_r($_SESSION);
?>
</body>
</html>
Zničte relaci PHP
Chcete-li odstranit všechny globální proměnné relace a zničit relaci, použijte session_unset()
a session_destroy()
:
Příklad
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// remove all session variables
session_unset();
// destroy the session
session_destroy();
?>
</body>
</html>