我们已经到了这一步......
我有一个简单的形式(其中2个)依赖于之前的填写。
这些表单的目的是签署,发布到db,验证电子邮件。在用户验证其电子邮件后,他们的权限将更改为能够查看下一个表单。
这些表单效果很好,除最后一点外,一切都有效。
当存在用户时,我在将值应用于db表时遇到困难。
我想要做的事情只是为用户会话keys
密钥API
和{{1}的用户更新=$API
在form_ica_initials
表中为NULL。如果是,那么roster
这是我清理过的东西。 (最初写的是填写表格的第一阶段,试图调整以适用于后半部分表格)
INSERT INTO
如果我将 if (empty($_POST['initials'])) { $error[] = 'You must enter your initials in every box below.'; }
else { $initials = $_POST['initials']; }
$API = $_SESSION['API'];
if (empty($error)) {
$query_verify_form = "SELECT * FROM roster WHERE API ='$API'";
$result_verify_form = mysqli_query($dbc, $query_verify_form);
if (!$result_verify_form) {
echo ' Database Error Occured ';
}
if (mysqli_num_rows($result_verify_form) == 0) {
$form_icaauth = md5(uniqid(rand(), true));
error_reporting(E_ALL);
$query_insert_user = "UPDATE `roster`
(
`fullname`, `form_ica_initials`, `form_icaauth`,`form_ica_ip`
)
VALUES (
'$fullname', '$initials', '$form_icaauth','$DOCSIGNEDBYIP'
)
";
$result_insert_user = mysqli_query($dbc, $query_insert_user);
if (!$result_insert_user) {
echo 'Query Failed ';
}
if (mysqli_affected_rows($dbc) == 1) {
...
echo '<br><center><div class="success">...</div>';
}
else {
echo '<center><div class="error">...</div></center>';
}
}
else {
echo '<center><div class="warning" >...</div></center>';
}
}
else {
echo '<center><div class="info"> <ol>';
foreach ($error as $key => $values) {
echo ' <li>' . $values . '</li>';
}
echo '</ol></div></center>';
}
mysqli_close($dbc); //Close the DB Connection
}
更改为if (mysqli_num_rows($result_verify_form) == 0) {
它会通过创建新记录将值发布到表中,而不是按指定更新现有用户字段。但是,通过这样做,它将规避我已经构建的错误。
我知道我的方式有点......但是很难用这个