TRUE に設定すると、Cookie には HTTP プロトコル経由でのみアクセスできます。 | これは、JavaScript などのスクリプト言語を介して Cookie にアクセスできないことを意味します。 XSS 攻撃中の個人情報の盗難を効果的に減らすには、この設定を使用することをお勧めしますが、この記述はしばしば物議を醸します。 | 返回值
如果在调用本函数以前就产生了输出,setcookie() 会调用失败并返回 FALSE。
如果 setcookie() 成功运行,返回 TRUE。
示例
<?php
$value = 'something from somewhere';
setcookie("TestCookie", $value);
setcookie("TestCookie", $value, time()+3600); /* 1 小时过期 */
setcookie("TestCookie", $value, time()+3600, "/~rasmus/", "example.com", 1);
?>
ログイン後にコピー
2、setrawcookie — 发送未经 URL 编码的 cookie
setrawcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] ) : bool
ログイン後にコピー
setrawcookie() 和 setcookie() 非常相似,唯一不同之处是发送到浏览器的 cookie 值没有自动经过 URL 编码(urlencode)。
六:PHP Cookie 简单示例
1、基本操作
<?php
//添加Cookie
setcookie('username', 'phpcn', time() + 3600);
//获取Cookie
$username = $_COOKIE['username'];
//删除Cookie
setcookie('username', '', time() - 3600);
//修改Cookie
setcookie('username', 'phpcn-updated', time() + 3600);
?>
ログイン後にコピー
2、面向过程封装
<?php
/**
* 获取 Cookie
* @param string $name Cookie 名称
* @return mixed Cookie 值
*/
function cookie_get($name)
{
return isset($_COOKIE[$name]) ? $_COOKIE[$name] : null;
}
/**
* 删除 Cookie
* @param string $name Cookie 名称
*/
function cookie_del($name)
{
setcookie($name, '', time() - 3600);
}
/**
* 设置Cookie
* @param string $name Cookie 名称
* @param mixed $value Cookie 值
* @param integer $expire Cookie 过期时间
* @param string $path Cookie 有效路径
* @param string $domian Cookie 有效域名/子域名
*/
function cookie_set($name, $value, $expire = 3600, $path = '/', $domian = '')
{
setcookie($name, $value, time() + $expire);
}
/**
* 检测 Cookie
* @param string $name Cookie 名称
* @param boolean $has_empty 检测为空
* @return boolean
*/
function cookie_has($name)
{
return isset($_COOKIE[$name]);
}
?>
ログイン後にコピー
3、面向对象封装
<?php
class Cookie
{
const OPTION_EXPIRE = 'expire';
const OPTION_PATH = 'path';
const OPTION_DOMAIN = 'domain';
const OPTION_SECURE = 'secure';
const OPTION_HTTPONLY = 'httponly';
/**
* Cookie 实例
* @var null
*/
private static $instance = null;
/**
* Cookie 选项
* @var array
*/
private $options = [
self::OPTION_EXPIRE => 3600,
self::OPTION_PATH => '/',
self::OPTION_DOMAIN => 'domain',
self::OPTION_SECURE => false,
self::OPTION_HTTPONLY => false
];
/**
* Cookie constructor.
* @param $options
*/
private function __construct($options)
{
$this->setOptions($options);
}
/**
* privated __clone
*/
private function __clone()
{
}
/**
* 获取实例
* @param $options
* @return Cookie|null
*/
public static function getInstance($options)
{
if (is_null(self::$instance)) {
self::$instance = new self($options);
}
return self::$instance;
}
/**
* 设置选项
* @param $name
* @param $value
*/
public function setOption($name, $value)
{
if (isset($this->options[$name])) {
$this->options[$name] = $value;
}
throw new InvalidArgumentException('Cookie option not exists:{$name}');
}
/**
* 设置多个选项
* @param $options
*/
public function setOptions($options)
{
foreach ($options as $name => $value) {
$this->setOption($name, $value);
}
}
/**
* 设置 Cookie
* @param $name
* @param $value
* @param array $options
*/
public function set($name, $value, $options = [])
{
$this->setOptions($options);
if (is_array($value) || is_object($value)) {
$value = json_encode($value);
}
setcookie(
$name,
$value,
$this->options[self::OPTION_EXPIRE],
$this->options[self::OPTION_PATH],
$this->options[self::OPTION_DOMAIN],
$this->options[self::OPTION_SECURE],
$this->options[self::OPTION_HTTPONLY]
);
}
/**
* 获取 Cookie
* @param $name
* @return array|mixed
*/
public function get($name)
{
$value = $_COOKIE[$name];
if (is_array($value)) {
$arr=[];
foreach ($value as $k => $v) {
$arr[$k] = substr($v, 0,1) == '{' ? json_decode($value) : $v;
}
return $arr;
} else {
return substr($value, 0,1) == '{' ? json_decode($value) : $value;
}
}
/**
* 删除 Cookie
* @param $name
* @param array $options
*/
public function del($name, $options = [])
{
$this->setOptions($options);
$value = $_COOKIE[$name];
if ($value) {
if (is_array($value)) {
foreach ($value as $k => $v) {
setcookie(
$name . '[' . $k . ']',
'',
time() - 3600,
$this->options[self::OPTION_EXPIRE],
$this->options[self::OPTION_PATH],
$this->options[self::OPTION_DOMAIN],
$this->options[self::OPTION_SECURE],
$this->options[self::OPTION_HTTPONLY]
);
unset($v);
}
}else{
setcookie(
$name,
'',
time() - 3600,
$this->options[self::OPTION_EXPIRE],
$this->options[self::OPTION_PATH],
$this->options[self::OPTION_DOMAIN],
$this->options[self::OPTION_SECURE],
$this->options[self::OPTION_HTTPONLY]
);
unset($value);
}
}
}
}
ログイン後にコピー
4、记住登录账号示例
<?php
function cookie_get_username()
{
return isset($_COOKIE['username']) ? $_COOKIE['username'] : null;
}
function cookie_get_password()
{
return isset($_COOKIE['username']) ? $_COOKIE['username'] : null;
}
function cookie_get_remember()
{
return isset($_COOKIE['remember']) ? 'checked' : null;
}
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$username = $_POST['username'];
$password = $_POST['password'];
if (isset($_POST['remember']) && $_POST['remember'] === '1') {
setcookie('username', $username, time() + 3600);
setcookie('password', $password, time() + 3600);
setcookie('remember', '1', time() + 3600);
} else {
setcookie('username', '', time() - 3600);
setcookie('password', '', time() - 3600);
setcookie('remember', '', time() - 3600);
}
die('登录成功!');
}
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<form action="" method="post">
<table width="300" border="1" align="center" cellpadding="5" cellspacing="5">
<thead>
<tr>
<td colspan="2" align="center"><b>登录</b></td>
</tr>
</thead>
<tr align="center">
<td>用 户 名</td>
<td><input type="text" name="username" value="<?=cookie_get_username()?>"></td>
</tr>
<tr align="center">
<td>密码</td>
<td><input type="password" name="password" value="<?=cookie_get_password()?>"></td>
</tr>
<tr align="center">
<td>记住账号</td>
<td>
<input type="checkbox" name="remember" value="1" <?=cookie_get_remember()?>>
</td>
</tr>
<tr align="center">
<td colspan="2"><input type="submit" name="Submit" value="提交" /></td>
</tr>
</table>
</form>
ログイン後にコピー
六:php cookie 精选技术文章
1 .PHP7中创建COOKIE和销毁COOKIE的方法
2. 如何设置cookie和删除cookie
3. PHP 中 Session 和 Cookie 区别?
4. PHP 怎么带着 Cookie 跳转?
5. 注意!Laravel删除Cookie的小坑
6. PHP会话控制:cookie和session区别与用法深入理解
7. PHP之你不得不知道的COOKIE含义及使用方式
8. 怎样关闭阻止第三方cookie
9. JS读取PHP中设置的中文cookie时出现乱码怎么办
10. ThinkPHP6.0:Session和Cookie机制的变化
七:php cookie 相关视频教程
1. PHP中cookie怎么记录及删除变量?(图文+视频)
2. PHP cookie实现记录用户登陆信息的方法(图文+视频)
3. PHP cookie实现判断用户是否登录的方法(图文+视频)
4. PHP基于Cookie的购物车模块设计
5. 预定义变量(二):$_COOKIE浏览器上的小甜点