我将这种情况分为两部分:
1)注册一个随机令牌,以防万一该令牌已经存在,该令牌未插入表中,并且效果很好
2)将向收到此令牌的用户发送一个带有此令牌的链接,在该链接中他将找到一个“登录名”,在此登录名中,他将必须插入此令牌,该令牌将转到另一个表,此处为左侧联接,如果令牌已经存在,则用户将无法继续,否则他将继续
1)表格:token_gen
2)表格:token_imm
代码:
<?php
$messaggio = "";
if (isset($_POST['submit']))
{
include 'connection/cnt.php';
$token = $connessione->real_escape_string($_POST['token']);
$CONTROLLA = mysqli_query($connessione,"SELECT token
FROM token_imm
LEFT JOIN token_gen
ON token_imm.token = token_gen.token
WHERE token_imm.token='$token' ");
$SE_IL_RISULTATO_IMMESSO=mysqli_num_rows($CONTROLLA);
if($SE_IL_RISULTATO_IMMESSO==0)
{
$connessione->query("INSERT INTO token_imm
(
token
)
VALUES
(
'$token'
)");
$messaggio = 'Success';
}
else
{
$messaggio = 'Indirizzo email, già registrato' ;
}
}
?>
<?php if ($messaggio != "") echo $messaggio . "<br><br>"; ?>
<form method="post" action="new_cl.php">
<input class="form-control" minlength="5" name="token" type="text" placeholder="token..."><br>
<input class="btn btn-primary" name="submit" type="submit" value="Log In"><br>
</form>
但是现在,使用此代码,我遇到了一个问题,即使令牌已经存在,表单也会成功执行,将令牌插入token_imm。
我想先检查它是否存在于token_gen
中,以及是否与token_imm
相等,然后用$消息阻止该用户,但问题出在查询中,但是我不明白怎么办
另一种尝试,但没有:
SELECT token
FROM token_imm
LEFT JOIN token_gen
ON token_imm.token = token_gen.token
WHERE token='$token'
AND token_imm.token = token_gen.token