【发布时间】:2014-02-13 21:56:42
【问题描述】:
我对 PHP 和 MySQL 很陌生,我已经为此工作了三天,这个问题让我很困惑。我没有收到任何错误,也没有将查询添加到我的数据库中。页面 register.php 排队后,它应该加载 login.php 并带有 Registered 的文本,但它是空白的,并且没有记录添加到数据库中。
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Untitled Document</title>
<?php
$page_title = 'Register';
if( $_SERVER['REQUEST_METHOD'] == 'POST')
{
include_once "connect.php";
$errors = array();
if( empty( $_POST['user_id']))
{
$errors[] = 'Enter your user ID.';
}
else
{
$ui = mysqli_real_escape_string($db_name, trim($_POST['user_id']));
}
if ( empty($POST['pass1']))
{
if($_POST['pass1'] != $_POST['pass2'])
{
$errors[] = 'Passwords do not match.';
}
else
{
$fn = mysqli_real_escape_string($db_name, trim($_POST['pass1']));
}
}
else
{
$errors[] = 'Enter your Password.';
}
if (empty($errors))
{
$q = "INSERT INTO User_id
(user,password)
VALUES ('$ui','$fn',SHA('$fn'),NOW())";
$r = mysqli_query ($db_name,$q);
if ($r)
{
echo '<h1>Registered!</h1>
<p> You are now registered.</p>
<p><a href="login.php">Login</a></p>';
}
mysqli_close( $db_name);
exit();
}
else
{
echo '<h1>Error!</hl>
<p id="err_msg">The following error(s) occurred:<br>';
foreach ($errors as $msg)
{
echo "-$msg<br>";
}
echo 'Please try again.</p>';
mysqli_close( $db_name);
}
}
?>
<h1>Register</h1>
<form action = "register.php" method="POST">
<p>
User ID: <input type="text" name= "user_id"
value="<?php if (isset( $_POST[ 'user_id']))
echo $_POST[ 'user_id'];?>">
Password: <input type="password" name="pass1"
value="<?php if (isset($_POST['pass1']))
echo $_POST ['pass1'];?>">
Confirm Password: <input type="password" name="pass2"
value="<?php if(isset($_POST['pass2']))
echo $_POST['pass2'];?>">
</p> <p>
<input type="submit" value= "Register"> </p>
</form>
</body>
</html>
【问题讨论】:
-
没有错误,因为您不寻找它们。尝试使用 mysqli_error() 看看你会得到什么。
-
if ( empty($POST['pass1']))..... 你不是说if ( ! empty($POST['pass1']))吗? -
如果你正确缩进你的代码,那么如果其中一个 if 放错了,例如
-
您是否尝试过检查代码的哪一部分执行,哪一部分不执行?这可以提供问题所在的线索(不是非常高级的调试,但应该提供线索:))。