gpt4 book ai didi

php - 注册页面未注册用户

转载 作者:行者123 更新时间:2023-11-29 08:22:01 26 4
gpt4 key购买 nike

我已经一次又一次手动并使用代码检查器检查此代码,但看不到我的错误。我正在构建一个注册页面,如果任何字段留空或密码不匹配,该页面应该会出现错误。该表格看起来很好,但当我尝试注册时,我收到错误消息“发生以下错误 - 输入您的密码。请重试。”无论我输入什么密码,都会发生这种情况。

此外,表单应记住给出错误消息时输入的数据,但由于某种原因,它将填写姓氏和电子邮件字段,但不会填写名字。同样,当我查看脚本时,我不明白这是为什么。

我正在通过简单的步骤学习一本基础书籍 - PHP 和 MySQL,这可能不是最好的,但我想在继续学习其他内容之前完成它。

<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Providing a register page</title>
</head>
<body>
<?php
$page_title = 'Register' ;
include ( 'includes/header.html' );

if ( $_SERVER[ 'REQUEST_METHOD' ] == 'POST' ) {
require ( '../connect_db.php' );
$errors = array() ;

if ( empty( $_POST[ 'first_name' ] ) ) {
$errors[] = 'Enter your first name.';
} else {
$fn = mysqli_real_escape_string($dbc, trim( $_POST[ 'first_name' ] ) );
}

if ( empty( $_POST[ 'last_name' ] ) ) {
$errors[] = 'Enter your last name.';
} else {
$ln = mysqli_real_escape_string($dbc, trim( $_POST[ 'last_name' ] ) );
}

if ( empty( $_POST[ 'email' ] ) ) {
$errors[] = 'Enter your email address.';
} else {
$e = mysqli_real_escape_string($dbc, trim( $_POST[ 'email' ] ) );
}

if ( !empty($_POST[ 'pass1' ] ) ) {
if ( $_POST[ 'pass1' ] != $_POST[ 'pass2' ] ) {
$errors[] = 'Passwords do not match.';
} else {
$p = mysqli_real_escape_string( $dbc, trim( $_POST[ 'pass1' ] ) );
}
} else {
$errors[] = 'Enter your password.';
}
if ( empty( $errors ) ) {
$q = "SELECT user_id FROM users WHERE email='$e'";
$r = mysqli_query ( $dbc , $q );
if ( mysqli_num_rows( $r ) != 0 ) {
$errors[] = 'Email address already registered. <a href="login.php">Login</a>';
}
}

if ( empty( $errors ) ) {
$q = "INSERT INTO users (first_name, last_name, email, pass, reg_date) VALUES ('$fn', '$ln', '$e', SHA1('$p'), NOW()";
$r = mysqli_query ( $dbc , $q );

if ( $r ) {
echo '<h1>Registered!</h1>'
.'<p>You are now registered.</p>'
.'<p><a href="login.php">Login</a></p>';
}
mysqli_close( $dbc ) ;
include ( 'includes/footer.html' );
exit();
} else {
echo '<h1>Error!</h1>'
.'<p id="err_msg">The following error(s) occurred:<br>';
foreach ( $errors as $msg ) {
echo " - $msg<br>";
}
echo 'Please try again.</p>';
mysqli_close( $dbc );
}
?>

<h1>Register</h1>
<form action="register.php" method="POST">
<p>
First Name: <input type="text" name="first_name"
value="<?php if ( isset( $_POST[ ' first_name' ] )) echo $_POST[ 'first_name' ] ; ?>">
Last Name: <input type="text" name="last_name"
value="<?php if ( isset( $_POST[ 'last_name' ] )) echo $_POST[ 'last_name' ] ; ?>">
</p><p>
Email address: <input type="text" name="email"
value="<?php if ( isset( $_POST[ 'email' ] )) echo $_POST[ 'email' ] ; ?>">
</p><p>
Password: <input type="password name="pass1"
value="<?php if ( isset( $_POST[ 'pass1' ] )) echo $_POST[ 'pass1' ] ; ?>">
Password: <input type="password name="pass2"
value="<?php if ( isset( $_POST[ 'pass2' ] )) echo $_POST[ 'pass2' ] ; ?>">
</p><p>
<input type="submit" value="Register"> </p>
</form>
<?php include ( 'includes/footer.html' ) ; ?>
</body>
</html>

最佳答案

您忘记了括号“)

$q = "INSERT INTO users
(first_name, last_name, email, pass, reg_date)
VALUES ('$fn', '$ln', '$e', SHA1('$p'), NOW()) " ;
^^ Here

关于php - 注册页面未注册用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19104254/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com