Analyse pratique du développement php (2) : utilisation dynamique des cookies (implantation, acquisition, suppression, deviner le principe, appel panier)

1. Utilisation de base des cookies

En PHP, un cookie est un mécanisme de stockage de données entre le client (navigateur) et le serveur. Ils sont généralement utilisés pour suivre et identifier les utilisateurs et stocker les préférences des utilisateurs. Vous trouverez ci-dessous quelques utilisations et fonctions courantes pour manipuler les cookies.

1. Paramétrer les cookies :

Un cookie peut être setcookie()défini à l'aide de la fonction. La fonction a plusieurs paramètres, dont les plus importants sont le nom et la valeur. Voici un exemple de paramétrage d'un cookie :

setcookie("username", "JohnDoe", time() + 3600, "/");

Le code ci-dessus créera un cookie nommé "username" avec une valeur de "JohnDoe". time() + 3600Le paramètre définit le délai d'expiration du cookie à une heure à partir de l'heure actuelle. Le dernier paramètre "/" est facultatif et sert à spécifier le chemin d'accès du cookie.

2. Obtenez des cookies :

Utilisez $_COOKIEdes superglobales pour accéder aux cookies. Cette variable est un tableau associatif contenant tous les cookies envoyés dans la requête en cours.

Voici un $_COOKIEexemple d'utilisation des cookies d'accès :

if (isset($_COOKIE["username"])) {
    
    
    $username = $_COOKIE["username"];
    echo "Welcome back, " . $username;
} else {
    
    
    echo "Welcome, guest!";
}

Le code ci-dessus vérifie d'abord s'il existe un cookie nommé "nom d'utilisateur", si c'est le cas, stocke sa valeur dans $usernameune variable, puis affiche le message de bienvenue. S'il n'est pas présent, affiche le message de bienvenue par défaut.

3. Supprimer les cookies :

Un cookie peut être supprimé en définissant l'heure d'expiration du cookie sur un horodatage antérieur à l'heure actuelle. Par exemple:

setcookie("username", "", time() - 3600, "/");

Le code ci-dessus définit l'heure d'expiration du cookie "nom d'utilisateur" il y a une heure, ce qui entraînera la suppression immédiate du cookie par le navigateur. Notez que la suppression des cookies doit être effectuée avant l'envoi de toute sortie.

Voici quelques utilisations de base des cookies. Il existe d'autres paramètres et options qui peuvent être utilisés pour définir et manipuler les cookies, vous pouvez consulter la documentation officielle de PHP pour des informations plus détaillées.

2. Développement pratique et application

Sur les sites marchands, la méthode la plus courante est : Devinez ce que vous aimez , c'est-à-dire que lorsque vous n'êtes pas connecté normalement, lorsque vous naviguez sur de nombreux produits, le système enregistre automatiquement votre historique de navigation et affiche vos empreintes récentes à des endroits tels que comme Devinez ce que vous aimez. Il s'agit d'une utilisation qui utilise des cookies. Alors, comment l'utiliser ?

  • Parcourez le produit, enregistrez l'identifiant du produit, définissez-le comme cookie, valeur = ′ 1 ′, par exemple en attribuant une valeur à setcookie ( ′ history ′, value='1', par exemple en attribuant une valeur à setcookie(' histoire',v a l u e=1 ,Par exemple, l'attribution à se t coo ki e ( histouy ,valeur,'','');
  • Parcourir plusieurs produits, définir les identifiants de plusieurs produits en tant que cookies, valeur = ′ 1 , 2 , 3 ′ , affecter uniformément setcookie ( ′ history ′, value='1,2,3', affecter uniformément setcookie('history ',v a l u e=1 ,2 ,3 ,Ensemble d' affectation uniforme t coo ki e ( histouy ,valeur,'','');
  • Définissez la longueur de l'historique, par exemple l'enregistrement 30, et supprimez les enregistrements de marchandises dépassant 30, unset($history[0]);;
  • Lisez l'ensemble $_COOKIE['history'], convertissez la chaîne enregistrée en un tableau, parcourez l'ID du produit et lisez les informations sur le produit ;

1. Définir la fonction d'encapsulation des cookies

La méthode de réglage de base de COOKIE est pratique pour un appel et une modification rapides, encapsulée en tant que fonction et appelée de manière uniforme.

//设置cookie
function set_cookie($name, $value = '', $expire = 0, $path = "/", $domain = null)
{
    
    
    $cookiedomain = ''; //COOKIE作用域
    $domain = $domain == null ? $cookiedomain: $domain;
    setcookie($name, $value, $expire, $path, $domain);
}

2. Sur la page du produit, lisez l'ID du produit et définissez le cookie

//记录最近浏览
$p = $_GET['id'];
$history_tmp = isset($_COOKIE['history']) ? $_COOKIE['history'] : '';
$history         = array_filter(explode(',', $history_tmp));
if (in_array($p, $history) == false) {
    
    
	if (count($history) == 30)
	{
    
    
		unset($history[0]);
	}
	array_push($history, $p);
	$history_tmp = implode(',', $history);
	set_cookie('his', $history_tmp, time() + 15552000);
}

3. Obtenez les produits récemment consultés

function get_history($num)
{
    
    
    $history = isset($_COOKIE['history']) ? $_COOKIE['history'] : '';
    $his = array_filter(explode(',', $history));
    $count = count($his);
    $ids = array();
    $row = array();
    $num = $count > $num ? $num : $count;
    $n = $count - 1;
    for ($i = 0; $i < $num; $i++) {
    
    
        $id = intval(ucode($his[$n - $i]));
        if ($id > 0) {
    
    
            $ids[] = $id;
        }
    }
    if (count($ids) > 0) {
    
    
        $row = "";//读取数据表
    }
    return $row;
}

@ Fuite parfois

Guess you like

Origin blog.csdn.net/weixin_41290949/article/details/131702227