小编Lee*_*Lee的帖子

循环直到密码是唯一的

这是一个文件共享网站.为了确保每个文件唯一的"密码"真正独一无二,我正在尝试这样做:

$genpasscode = mysql_real_escape_string(sha1($row['name'].time())); //Make passcode out of time + filename.
    $i = 0;
    while ($i < 1) //Create new passcode in loop until $i = 1;
    {
        $query = "SELECT * FROM files WHERE passcode='".$genpasscode."'";
        $res = mysql_query($query);
        if (mysql_num_rows($res) == 0) // Passcode doesn't exist yet? Stop making a new one!
        {
            $i = 1;
        }
        else // Passcode exists? Make a new one!
        {
            $genpasscode = mysql_real_escape_string(sha1($row['name'].time()));
        }
    }
Run Code Online (Sandbox Code Playgroud)

这真的只是防止双重密码,如果两个用户上传的同名文件确切同一时间,但嘿比抱歉右更好的安全?我的问题是; 这是按照我打算的方式工作吗?我无法可靠地(阅读:轻松)测试它,因为即使一秒钟关闭也会生成一个唯一的密码.

更新:李建议我这样做:

do {
    $query …
Run Code Online (Sandbox Code Playgroud)

php mysql

1
推荐指数
1
解决办法
1461
查看次数

标签 统计

mysql ×1

php ×1