php随机生成cookie,应用cookie应当能够完成php指定时候随机一次

在掏出数据以后把数据缓存在客户端,然后cookie指定一个时候周期,在下次革新时先推断这个cookie时候到期没,假如到期了就从新革新,不然就挪用当地缓存。以下是以 emlog 博客为案例的代码

a739be22e5fdd5ba3e77604310b0081a.png

//载入全局加载项

require_once 'init.php';

//链接数据库

$DB = MySql::getInstance();

/*****************依据前提随机猎取20条文章的GID***************/

$sql = "SELECT * FROM ".DB_PREFIX."blog ORDER BY rand() DESC LIMIT 20";

$list = $DB->query($sql);

while($row = $DB->fetch_array($list)){

$arrgid.= $row['gid'].',';

}

$arrgid = substr($arrgid,0,strlen($arrgid)-1);//去除末了一个逗号

$arr = explode(",",$arrgid);//将猎取的gid以逗号分割为数组

/***********函数,依据文章gid输出文章标题与衔接**************/

function sylist($gid){

$DB = MySql::getInstance();

$sql = "SELECT * FROM ".DB_PREFIX."blog WHERE gid = '{$gid}'";

$list = $DB->query($sql);

while($row = $DB->fetch_array($list)){

return '

'.$row['title'].'';

}

}

/***********依据cookie在指定时候内猎取内容**************/

//推断cookie【gid】是不是存在

if (isset($_COOKIE["gid"])){

//推断cookie【date】逾期时候是不是存在

if(isset($_COOKIE["date"])){

echo '逾期时候为:'.date("Y-m-d H:i:s", $_COOKIE["date"]).'
';

//推断时候是不是逾期,当前时候大于cookie【date】中贮存的时候则为逾期

if(time() > $_COOKIE["date"]){

//假如逾期了,从新建立逾期时候

setcookie("date", "", time()-3600);//删除逾期时候

setcookie("date", time()+60*1,time()+3600);//从新建立逾期时候,个中的60*1为一分钟

//革新内容

setcookie("gid", "", time()-3600);//删除逾期内容

setcookie("gid", $arrgid,time()+3600);//从新建立内容

}

//输出内容

$arr = explode(",",$_COOKIE["gid"]);

//轮回输出数组

foreach($arr as $value){

echo sylist($value);

}

}else{

//假如不存在,则建立一个间隔当前时候一分钟的时候为逾期时候

setcookie("date", time()+60*1,time()+3600);//个中的60*1为一分钟

//假如date不存在时则会输出空缺,此时随机输出内容

foreach($arr as $value){

echo sylist($value);

}

}

}else{

setcookie("date", time()+60*1,time()+3600);//个中的60*1为一分钟

setcookie("gid", $arrgid,time()+3600);//假如gid不存在,则建立gidcookie,内容为随机猎取的文章gid

//假如gid不存在时则会输出空缺,此时随机输出内容

foreach($arr as $value){

echo sylist($value);

}

}

?>

本文代码由 emlog学院陈子文供应,博客簿仅作保留分享之用!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PHP 中,可以使用 `setcookie` 函数来设置 cookie。但是,如果希望对 cookie 进行加密,可以在设置 cookie 时,先对需要保存的数据进行加密,然后再将加密后的数据保存到 cookie 中。 以下是一个使用 PHPcookie 进行加密的示例: ```php // 加密函数 function encrypt($data, $key) { $iv = random_bytes(16); $encrypted = openssl_encrypt($data, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv); return base64_encode($encrypted) . ':' . base64_encode($iv); } // 解密函数 function decrypt($data, $key) { list($encrypted, $iv) = explode(':', $data, 2); $encrypted = base64_decode($encrypted); $iv = base64_decode($iv); return openssl_decrypt($encrypted, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv); } // 设置加密后的 cookie $key = 'my_secret_key'; // 定义一个密钥 $data = 'hello world'; // 需要保存的数据 $encrypted_data = encrypt($data, $key); // 对数据进行加密 setcookie('my_cookie', $encrypted_data, time()+3600); // 设置 cookie // 读取加密后的 cookie if (isset($_COOKIE['my_cookie'])) { $encrypted_data = $_COOKIE['my_cookie']; $data = decrypt($encrypted_data, $key); // 对数据进行解密 echo $data; // 输出解密后的数据 } ``` 上述示例中,使用了 `openssl_encrypt` 和 `openssl_decrypt` 函数来进行加密和解密。需要注意的是,这两个函数需要开启 OpenSSL 扩展。同时,为了保证加密的安全性,应该使用一个随机生成的 IV(初始化向量)来进行加密。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值