【发布时间】:2021-10-21 16:59:50
【问题描述】:
我正在为班级创建一个网络应用程序。登录页面工作正常。我有一个带有 action="login.php" method="post" 的表单。 login.php页面有一个php脚本,基本上是说如果表单没有填写,则退出错误。
我对 createaccount.php 页面使用了相同的脚本,即使填写了表单,它也会退出并显示错误,而不是继续执行脚本的其余部分?
我觉得这是一件很明显的事情,我错过了,但我花了太多时间在这个大声笑上。
表单 HTML
<form class="form form_hidden" id="createAccount" action="createaccount.php" method="post">
<h1 class="form_title">Create Account</h1>
<div class="form_text error_message"></div>
<input class="" type="text" placeholder="First Name" name="fname" id="fname" required />
<div class="form_text input_error_message"></div>
<input class="" type="text" placeholder="Last Name" name="lname" id="lname" required />
<div class="form_text input_error_message"></div>
<input class="" type="email" placeholder="Email Address" name="email" id="email" required />
<div class="form_text input_error_message"></div>
<input class="" type="tel" placeholder="(123) 456-7890" name="mobile_number" id="mobile_number" required />
<div class="form_text input_error_message"></div>
<input class="" type="password" placeholder="Password" name="password" id="password" required />
<div class="form_text input_error_message"></div>
<input class="" type="password" placeholder="Confirm Password" name="confirm_password" id="confirm_password" required />
<div class="form_text input_error_message"></div>
<button type="submit">Continue</button>
<p class="form_text">
Already have an account? <a href="./" id="linkLogin">Sign in!</a>
</p>
</form>
PHP 脚本
session_start();
require_once "config.php";
// file needs to be accessed via form submission
if (!isset($_POST['fname'], $_POST['lname'], $_POST['email'], $_POST['mobile_number'], $_POST['password'], $_POST['confirm_password'])) {
exit ('Please fill in all fields.');
}
// sql statement
if ($stmt = $db->prepare('INSERT INTO accounts (fname, lname, email, mobile_number, password) VALUES (?, ?, ?, ?, ?)')) {
mysqli_stmt_bind_param($stmt, "ss", $param_email, $param_password, $param_fname, $param_lname, $param_mobile_number);
// set parameters
$param_email = $email;
$param_password = password_hash($password, PASSWORD_DEFAULT);
$param_fname = $fname;
$param_lname = $lname;
$param_mobile_number = $mobile_number;
if(mysqli_stmt_execute($stmt)) {
// redirect to login page
header ("Location: index.php");
} else {
echo "Oops! Something went wrong! Please try again later.";
}
}
mysqli_stmt_close($stmt);
*/
?>
【问题讨论】:
-
不是您的问题,但您可能需要
if(empty(而不是if(!isset(