我正在生成一个随机代码。
function GenerateID($email)
{
$nums = substr(hash('sha512', $email), 0, 10);
$ID = strtoupper(str_shuffle($nums));
return $ID;
}
然后我将它存储到一个会话中
$_SESSION['id'] = $ID;
然后我从数据库中选择该 ID,然后 ID 会更改,因为每当我激活它时,它都会重新生成而不是保持不变。
$makesure = $CONNECT_TO_DATABASE->prepare("SELECT * FROM users WHERE id = :id LIMIT 1");
$makesure->bindValue(':id', $ID);
$makesure->execute();
我怎样才能让它停止再生?有比使用单独文件更好的解决方案吗?
函数 generateID 位于 functions.inc.php 我在 index.php 处理它。
基本上我做了一个快速注册系统,用户输入他的电子邮件并点击提交,然后他收到一个唯一生成的字符串。
可以有多个用户使用相同的电子邮件,但 ID 必须不同。
所以这就是我选择指定刚刚注册的用户的方式:
$fetch = $CONNECT_TO_DATABASE->prepare("SELECT * FROM users WHERE email = :email AND :id LIMIT 1");
$fetch->bindValue(':email', $_SESSION['email']);
$fetch->bindValue(':id', $_SESSION['id']);
$fetch->execute();
但这无济于事,因为我假设会话 ID 在执行时会重新生成。