【发布时间】:2022-11-21 11:22:46
【问题描述】:
我有一个网站,当用户登录时创建一个会话,但会话只是电子邮件和用户名,这对创建帐户的客户来说很好用,但我想为用户生成一个唯一的会话密钥不想要注册/登录,原因是因为目前如果用户未登录并且他们将项目添加到结帐页面,则该项目将对每个未登录的客户可见,所以我想创建一个会话基于唯一的字符串,以便不想注册/登录的客户不会发生冲突。
问题是,当我重定向到 test.php 页面时,它找不到会话密钥。
这是我生成唯一密钥的会话文件..
<?php
session_start();
$_SESSION['sessionKey'] = $randomString;
if(!isset($_SESSION['sessionKey']))
{
function generateRandomString($length = 64) {
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, $charactersLength - 1)];
}
return $randomString;
}
echo generateRandomString();
}
?>
<br><br>
<a href="test.php">Go to test page</a>
然后是我的 test.php 页面...
<?php
session_start();
if(!isset($_SESSION['sessionKey']))
{
echo "cant find unique session key";
} else {
echo $_SESSION['sessionKey'];
}
?>
【问题讨论】:
-
您没有在第 4 行调用函数 generateRandomString;你的 $_SESSION 在第一页是空的。
标签: javascript php session