我有一個網站在用戶登錄時創建一個會話,但會話只是電子郵件和用戶名,這對創建帳戶的客戶來說很好用,但我想為不想注冊的用戶生成一個唯一的會話密鑰/登錄,原因是因為目前如果用戶未登錄并且他們將專案添加到結帳頁面,則該專案將對每個未登錄的客戶可見,所以我想創建一個基于唯一的字串,以便不想注冊/登錄的客戶不會發生沖突。
問題是,當我重定向到 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'];
}
?>
uj5u.com熱心網友回復:
即使您再次訪問第一頁,這也會保持唯一會話。
session_start();
if(!isset($_SESSION['sessionKey'])) {
$_SESSION['sessionKey'] = generateRandomString();
}
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 $_SESSION['sessionKey'];
uj5u.com熱心網友回復:
試試這個代碼:
<?php
session_start();
function generateRandomString($length = 64) {
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < $length; $i ) {
$randomString .= $characters[rand(0, $charactersLength - 1)];
}
return $randomString;
}
if(!isset($_SESSION['sessionKey']))
{
$_SESSION['sessionKey'] = generateRandomString();
echo $_SESSION['sessionKey'];
}
?>
<br><br>
<a href="test.php">Go to test page</a>
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/537799.html
上一篇:python中的字串操作
