将随机生成代码存储到会话中,而不会在回显会话时重新生成

时间:2013-04-02 15:09:06

标签: php session

我正在生成随机代码。

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在执行时重新生成。

0 个答案:

没有答案