我知道有几个线程这个问题,但直到现在没有改变。我的代码看起来像这样:
<div data-role="page" id="RegisterPage">
<div data-role="header">
<h1>Register</h1>
</div>
<div data-role="content">
<?php
if(!isset($_GET["page"])){
?>
<form action="register.php?page=2" method="post">
Username:<input type="text" name="user" placeholder="Username" /><br />
Password:<input type="text" name="password" placeholder="Password" /><br />
Repeat Password:<input type="text" name="pw2" placeholder="Repeat Password" /><br />
<input type="submit" value="Submit" />
</form>
<?php
}
if(!isset($_GET["page"])){
if($_GET["page"] == "2") {
$user = strtolower($_POST["user"]);
$pw = md5($_POST["pw"]);
$pw2 = md5($_POST["pw2"]);
if($pw != $pw2 ){
echo $pw;
echo " The Passwords are diffrent! Please try again..<a href='"register.php '">Back</a>";
}
}
}
?>
当我在表单中输入任何东西时,代码将我发送到一个只显示Header的页面。什么也没发生。
也许我什么都看不见,但我就是找不到问题所在。
这是完整的更正代码:
<div data-role="page" id="RegisterPage">
<div data-role="header">
<h1>Register</h1>
</div>
<div data-role="content">
<?php
if(!isset($_GET["page"])){
?>
<form action="register.php?page=2" method="post">
Username:<input type="text" name="user" placeholder="Username" /><br />
Password:<input type="text" name="password" placeholder="Password" /><br />
Repeat Password:<input type="text" name="pw2" placeholder="Repeat Password" /><br />
<input type="submit" value="Submit" />
</form>
<?php
}
if(isset($_GET["page"])){ //error was here with !isset(). you did that 2 times
if($_GET["page"] == "2") {
$user = strtolower($_POST["user"]);
$pw = md5($_POST["pw"]);
$pw2 = md5($_POST["pw2"]);
if($pw != $pw2 ){
echo $pw;
echo " The Passwords are diffrent! Please try again..<a href='"register.php '">Back</a>";
}
}
}
?>
修复错误:
if(isset($_GET["page"])){ // error in this line
if($_GET["page"] == "2") {
$user = strtolower($_POST["user"]);
$pw = md5($_POST["pw"]);
$pw2 = md5($_POST["pw2"]);
if($pw != $pw2 ){
echo $pw;
echo " The Passwords are diffrent! Please try again..<a href='"register.php '">Back</a>";
}
}
}
if(isset($_GET["page"]))
代替if(!isset($_GET["page"]))