Heim > Backend-Entwicklung > PHP-Tutorial > Ausführliche Erklärung der Verwendung von Cookies durch PHP zum Speichern von Browsing-Datensätzen

Ausführliche Erklärung der Verwendung von Cookies durch PHP zum Speichern von Browsing-Datensätzen

高洛峰
Freigeben: 2016-10-20 15:19:35
Original
1555 Leute haben es durchsucht

Wenn wir an Projekten arbeiten, durchsuchen einige Module häufig Verlaufslisten, aber wie implementieren wir die Browserverlaufsfunktion in PHP? Jetzt implementieren wir sie über Cookies


Lassen Sie uns zuerst die Idee analysieren

Besuchen Sie die Seite

Rufen Sie die Produktdatenliste im gespeicherten Browserverlauf ab

Wenn sich das aktuell durchsuchte Produkt nicht im Verlauf befindet, fügen Sie es hinzu , wird bei Bedarf aktualisiert

Wenn Sie eine allgemeine Vorstellung haben, können Sie sich den Code direkt ansehen


Der vollständige Code lautet wie folgt :

<?php
 
//如是COOKIE 里面不为空,则往里面增加一个商品ID
if (!empty($_COOKIE[&#39;SHOP&#39;][&#39;history&#39;])){
     
    //取得COOKIE里面的值,并用逗号把它切割成一个数组
    $history = explode(&#39;,&#39;, $_COOKIE[&#39;SHOP&#39;][&#39;history&#39;]);
     
    //在这个数组的开头插入当前正在浏览的商品ID
    array_unshift($history, $id);
     
    //去除数组里重复的值
    $history = array_unique($history);
    // $arr = array (1,2,3,1,3);
    // $arr = array (1,1,2,3,3);
    // $arr = array (1,2,3);
     
    //当数组的长度大于5里循环执行里面的代码
    while (count($history) > 5){
        //将数组最后一个单元弹出,直到它的长度小于等于5为止
        array_pop($history);
    }
 
 
    //把这个数组用逗号连成一个字符串写入COOKIE,并设置其过期时间为30天
    setcookie(&#39;SHOP[history]&#39;, implode(&#39;,&#39;, $history), $cur_time + 3600 * 24 * 30);
 
}else{
    //如果COOKIE里面为空,则把当前浏览的商品ID写入COOKIE ,这个只在第一次浏览该网站时发生
    setcookie(&#39;SHOP[history]&#39;, $id, $cur_time + 3600 * 24 * 30);
}
 
//以上均为记录浏览的商品ID到COOKIE里,下面将讲到怎样用这样COOKIE里的数据
 
//取得COOKIE里的数据 ,格式为1,2,3,4 这样,当然也有可以为0
$history =isset ($_COOKIE[&#39;SHOP&#39;][&#39;history&#39;]) ? $_COOKIE[&#39;SHOP&#39;][&#39;history&#39;] : 0;
 
//写SQL语句,用IN 来查询出这些ID的商品列表
$sql_history = "SELECT * FROM `goods` WHERE `goods_id` in ({$history})";
 
 
//执行SQL语句,返回数据列表
$goods_history = $db->getAll($sql_history);
if ($goods_history) {
    $tpl->assign (&#39;goods_history&#39;,$goods_history);
}
?>
Nach dem Login kopieren

Im Folgenden finden Sie die MySQL-Operation zum Abrufen von Produktinformationen basierend auf der Speicher-ID. Sie können diese gemäß Ihrem eigenen Code abrufen Verwenden Sie die ursprüngliche Ökologie oder Sie können die Abfragedatenbankmethode des Frameworks verwenden. Sie können sie entsprechend ändern


Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage