【发布时间】:2019-10-02 15:47:44
【问题描述】:
我的数据库
DBName:用户,表名:引用 列:
taken, email, inviteCode
我不知道什么是正确的代码来检查所取数据的值是否是“1”表示已使用和“0”表示未使用如果我输入已占用列中已为“1”的邀请码将触发“已使用代码”消息。
注册.php
if(isset($_POST['Register'])){
$inviteCode = ($_POST['inviteCode']);
if (empty($_POST['inviteCode'])) {
header("Location: index.php/0");
exit();
}
$rs_check = mysqli_query("SELECT * from referrals
WHERE inviteCode='$invite_code'
AND `taken` = '0'");
$num = mysqli_num_rows($rs_check);
// Match row found with more than 0 results - the code is invalid.
if ( $num <= 0) {
$err7 = "Invite code is invalid";
} else {
$inviteCode = $_POST['inviteCode'];
}
if(empty($err7)) {
$rs_check_update = mysqli_query($conn, "UPDATE referrals SET taken='1' WHERE inviteCode='$inviteCode'");
header("Location: index.php/1");
exit;
}
}
index.php
<?php
include ('register.php');
?>
<form action="register.php" method="POST">
<div class="form-email">
<p>
<?php if(isset($_GET["result"]) && $_GET["result"]=="1") { ?>
<p>Code Success</p>
<?php } ?>
</p>
<p>
<?php if(isset($_GET["result"]) && $_GET["result"]=="2") { ?>
<p>Code Already Used</p>
<?php } ?>
</p>
<p>
<?php if(isset($_GET["result"]) && $_GET["result"]=="0") { ?>
<p>Please Input A Code</p>
<?php } ?>
</p>
<input type="text" placeholder="Invite Code" name="inviteCode" />
</div>
<div class="submit3">
<input type="submit" value="Invite" name="Register" />
</div>
</form>
如果代码已经更改为“1”,如果我提交两次,我仍然会收到消息“代码成功”
【问题讨论】:
-
你在哪里定义
$err7? -
@alex55132 我不知道 xD 我只是将这段代码复制到这里它仍然可以工作:D 我只是 php 中的新手
-
@RiggsFolly 它来自这里 stackoverflow.com/questions/14087281/… 我仍然不明白他的 $err7 是如何工作的 :(
-
我的猜测是它不起作用。看起来您没有在您向我们展示的这段代码中的任何地方创建一个名为
$err7的变量 -
@RiggsFolly 是对的,告诉我们你在哪里定义
$err7。它必须在某个地方,因为它不会给出任何错误,不是吗?