php基础知识(4)-cookie使用
php基础知识-cookie使用
示例代码下载页http://xieye.iteye.com/blog/1336095(在附件)
cookie简单定义:浏览器发送请求给服务器时额外传送的数据。
cookie原理:web协议规定,服务器返回请求时可以将一小部分数据存在浏览器客户端,浏览器在下次往同域名服务器请求信息时,会
同时自动把该段信息再发送给服务器,而这一切是对用户透明的,用户不需要理解这些东西可以照常上网。
cookie的一个特点是,服务器存客户端时可以带有时间参数,浏览器会根据这个参数决定cookie是否过期来处理,如果过期了,这个cookie就
不会到服务端。
假如服务端不对cookie做处理,则每次浏览器发送请求到服务端总会自动传送相同内容的cookie。
cookie的另一个特点是多个名称和值的组合。
例子:自动登录。
有3个页面,一个首页,一个是登录页
必须先添加一个用户
insert into test.member(username,password)values('admin', md5('1') );
9.php,10.php,11quit.php 是没有自动登录的例子。
19.php,20.php,21quit.php 是自动登录的例子。
演示
首先是一个普通的登录例子
http://localhost/command/peixun/cookie/9.php,提示登录
进入10.php,输入admin,1则跳转到9.php,显示出当前用户名,如果愿意可以退出。
如果没有点击“退出”按钮,则直接关闭浏览器,再打开浏览器输入http://localhost/command/peixun/cookie/9.php,发现并没有处于登录状态。
然后是一个通过cookie的自动登录例子。
http://localhost/command/peixun/cookie/19.php,提示登录
进入10.php发现多了一个复选框,不勾选的情况下和上面的例子效果完全一样,输入admin,1则跳转到19.php,显示出当前用户名,如果愿意可以退出。
如果勾选后输入admin,1则跳转到19.php,此时不能点击“退出”链接,直接关闭浏览器。
双击桌面的浏览器图标再次打开浏览器,发现处于已登录状态,这就是cookie的效果。
重要说明:本例子只用于演示cookie的用法,实际应用中为安全起见,最好隐藏cooikie的字段含义,程序也因此需要做修改。
代码可下载,只显示第2个例子的代码
19.php
<?php//会话的第2个例子,首页//9.php,简单例子,首页//10.php,简单例子,登录页//11quit.php,简单例子,退出页//19.php, 复杂例子,首页//20.php, 复杂例子,登录页//21quit.php, 复杂例子,退出页require_once('../Public/CommandLine.php');session_start();//逻辑是如果未登录,则显示“请登录”,如果已登录,显示欢迎某某某$html = '';if (isset($_SESSION['islogin']) && $_SESSION['islogin'] == 1 ) { //已登录 $html .= '欢迎您,' . $_SESSION['username'] . " <a href='11quit.php'>退出</a>"; } else { //未登录分:有cookie的记住我,且为1 if (isset($_COOKIE['rememberme']) && $_COOKIE['rememberme']==1 ) { $username = strval($_COOKIE['username']); $password = strval($_COOKIE['password']); $db = Sys::getdb(); $select = $db->select(); $select->from('test.member', 'count(*)' ) ->where('username=?', $username) ->where('password=?', $password); $result = $db->fetchOne($select); if ($result) { //如果是对的 $_SESSION['islogin'] = 1; $_SESSION['username'] = $username; $html .= '欢迎您,' . $_SESSION['username'] . " <a href='21quit.php'>退出</a>"; } }}if(!( isset($_SESSION['islogin']) && $_SESSION['islogin'] == 1 ) ){ $html .= '<a href="20.php">请登录</a>';} $html .= "<br><h1>这是首页<h1>";echo $html;
20.php
<?php//自动登录的登录页require_once('../Public/CommandLine.php');session_start();$isget = ($_SERVER['REQUEST_METHOD'] == 'GET') ? 1 : 0;if ($isget) { $html = <<<longs<html> <body> <form method="post"> 请输入用户名:<input type="text" name="username" value=''><br> 请输入密码:<input type="text" name="password" value=''><br> <input type="checkbox" name="rememberme" value="1" />下次自动登录<br> <input type="submit" value="登录" > </form></body> </html> longs; echo $html; } else { //echo $_POST['name1']; $username = $_POST['username']; $password = $_POST['password']; $db = Sys::getdb(); $select = $db->select(); $select->from('test.member', 'count(*)' ) ->where('username=?', $username) ->where('password=?', md5($password)); $result = $db->fetchOne($select); if ($result) { $_SESSION['islogin'] = 1; $_SESSION['username'] = $username; $time = time() + 3600 * 24 * 365; setcookie('rememberme', intval($_POST['rememberme']), $time, "/"); setcookie('password', md5($password), $time, "/"); setcookie('username', $username, $time, "/"); header('Location: 19.php'); }else { $html = <<<longs<html> <body> 请输入正确的用户名和密码 <form method="post"> 请输入用户名:<input type="text" name="username" value='{$username}'><br> 请输入密码:<input type="text" name="password" value='{$password}'><br> <input type="checkbox" name="rememberme" value="1" />下次自动登录<br> <input type="submit" value="登录" > </form></body> </html> longs; echo $html; } }
21quit.php
<?php//第2个例子,自动登录的退出页require_once('../Public/CommandLine.php');session_start();$_SESSION['islogin'] =0;$date = time() - 3600 * 24 * 365;foreach($_COOKIE as $key => $ko){ if ($key != 'PHPSESSID') { setcookie($key, "", $date, "/"); //删除cookie的写法 }}header('Location: 19.php');
![修复:谷歌浏览器请求太多错误 429 [已解决]](https://img.php.cn/upload/article/000/887/227/168160812385289.png)
近期很多Windows用户反映,当他们尝试访问某个URL时,PC上的GoogleChrome浏览器显示错误429。这是因为每次用户尝试在短时间内通过浏览器。通常,此错误是由网站生成的,以避免通过向服务器发送过多请求而被机器人或黑客入侵病毒。用户对在这个阶段可以做什么感到困惑,并因此感到失望。导致此错误的因素可能很多,我们在下面列出了其中一些因素。缓存内存和其他站点数据未清除从第三方来源安装的扩展系统上的一些有害软件病毒攻击在研究了上面列出的因素之后,我们在这篇文章中收集了一些修复程序,这

如果您在Windows10或11PC上遇到语法问题,本文将帮助您解决此问题。Grammarly是最流行的打字助手之一,用于修复语法、拼写、清晰度等。它已经成为写作专业人士必不可少的一部分。但是,如果它不能正常工作,它可能是一个非常令人沮丧的体验。许多Windows用户报告说此工具在他们的计算机上运行不佳。我们做了深入的分析,找到了这个问题的原因和解决方案。为什么Grammarly无法在我的PC上运行?由于几个常见原因,PC上的Grammarly可能无法正常工作。它包括以下内

许多Windows用户最近在尝试访问GoogleChrome浏览器中的网站URL时遇到了一个不寻常的错误,称为Roblox403禁止错误。即使在多次重新启动Chrome应用程序后,他们也无能为力。此错误可能有几个潜在原因,我们在下面概述并列出了其中一些。Chrome的浏览历史和其他缓存以及损坏的数据不稳定的互联网连接网站网址不正确从第三方来源安装的扩展在考虑了上述所有方面之后,我们提出了一些修复程序,可以帮助用户解决此问题。如果您遇到同样的问题,请查看本文中的解决方案。修复1

前言cookie使用最多的地方想必是保存用户的账号与密码,可以避免用户每次登录时都要重新输入1.vue中cookie的安装在终端中输入命令npminstallvue-cookies--save,即可安装cookies,安装之后在main.js文件中写下以下代码import{createApp}from'vue'importVueCookiesfrom'vue-cookies'constapp=createApp(App)app.co

每个网站都通过创建cookie使用户更容易浏览他们的网页和浏览他们的网站。然而,网站创建了一些第三方cookie,使他们能够跟踪访问其他网站的用户,以便更好地了解他们,从而有助于展示广告和其他帖子。一些用户可能认为他们的数据遭到破坏或存在安全风险,而另一些用户可能认为允许这些第三方cookie跟踪他们以在浏览器上获取更多内容是很好的。所以我们在这篇文章中解释了如何在谷歌浏览器中启用或禁用第三方cookies,详细步骤如下。如何在GoogleChrome中启用第三方Cookie如果您认为要

在互联网应用开发中,使用Cookie是常见的一种方式来维护用户会话状态。在PHP语言中,处理Cookie的相关功能在语言的核心库中得到了完善的支持,在最新的PHP8.0版本中,Cookie库得到了进一步的增强。一、PHP中的CookieCookie是一个小文本文件,可以存储在用户的浏览器中,它通常被用来记录用户的个性化设置、登录状态等信息。Cookie是基

php curl设置cookie的方法:1、创建PHP示例文件;2、通过“curl_setopt”函数设置cURL传输选项;3、在CURL中传递cookie即可。

随着互联网技术的不断发展,越来越多的网站需要用户登录才能使用其功能。但是每次用户访问时都需要输入账号密码显然很不方便,因此“记住我”的功能应运而生。本文将介绍如何在ThinkPHP6中采用Cookie技术实现记住我功能。一、Cookie简介Cookie是一种服务器向客户端发送的小文件,在用户访问网站时存储在用户的计算机上。这些文件包含与用户相关的信息,如登录


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Atom編輯器mac版下載
最受歡迎的的開源編輯器

Dreamweaver Mac版
視覺化網頁開發工具

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。