我试图将注册系统错误回显到主要的index.PHP文件,但我做错了什么.有人可以解释我做错了什么以及如何做对了吗?
<?PHP
session_start();
include "config.PHP";
?>
<div class="container">
<h1>Registration</h1>
<?PHP if(!empty($error)): ?>
<div class="alert alert-danger alert-dismissible">
<ul>
<li>
<?PHP echo $error; ?>
</li>
</ul>
</div>
<?PHP endif; ?>
<button class="close" data-dismiss="alert" aria-label="close">
<span aria-hidden="true">×</span>
</button>
<form action="main.PHP" method="post">
<p>Username: </p>
<p><input type="text" name="username" autocomplete="off"></p>
<p>Password: </p>
<p><input type="password" name="password" autocomplete="off"></p>
<p><button name="send" class="btn btn-primary" id="btn">Send</button></p>
</form>
</div>
</div>
<?PHP
include "config.PHP";
if(isset($_POST['send'])) {
$username = $_POST['username'];
$password = $_POST(md5['password']);
if(empty($_POST['username'])) {
$error = "Username is empty<br/>";
}
if(empty($_POST['password'])) {
$error = "Password is empty";
}
$query = MysqLi_query($connect,"INSERT INTO register(username,password) VALUES('$username', '$password')")
or die(MysqL_error());
echo "Registred";
}
$_SESSION['error'] = $error;
?>
解决方法:
未定义$error.
<?PHP echo $error; ?>
应该
<?PHP echo $_SESSION['error'];?>
<?PHP
session_start();
include "config.PHP";
// added this line to your code
$error = (isset($_SESSION['error'])) ? $_SESSION['error'] : "";
?>
<div class="container">
<h1>Registration</h1>
<?PHP if(!empty($error)): ?>
<div class="alert alert-danger alert-dismissible">
<ul>
<li>
<?PHP echo $error; ?>
</li>
</ul>
</div>
<?PHP endif; ?>
<button class="close" data-dismiss="alert" aria-label="close">
<span aria-hidden="true">×</span>
</button>
<form action="main.PHP" method="post">
<p>Username: </p>
<p><input type="text" name="username" autocomplete="off"></p>
<p>Password: </p>
<p><input type="password" name="password" autocomplete="off"></p>
<p><button name="send" class="btn btn-primary" id="btn">Send</button></p>
</form>
</div>
</div>