0

嘿,任何人都可以查看我的代码并帮助我...我正在使用 apache,如果用户输入错误的密码和用户名 3 次,它只会将它们转发到 404 html 页面。不幸的是,我的浏览器中显示了一些代码,我不确定为什么。我知道 php,所以如果代码草率或不正确,请不要缠着我。

登录.php:

<?php 
session_start(); 
$_SESSION['wrong']=0;
$user = $_POST['user'];
$pass = $_POST['pass'];
if($user == "school"
&& $pass == "homework")
{
echo"Password system work!";
}else{
$_SESSION['wrong']=$_SESSION['wrong']+1;
header( 'Location: http://localhost' ) ;
}
?>

索引.html:

<? session_start(); 
include 'login.php';
global $_SESSION['wrong'];
if($_SESSION['wrong']>=3){
header( 'Location: 404_File_Not_Found.html' ) ; //This is what the browser is showing

}
?>
<html>
<head>
<style type="text/css">

#form{
width:  340px;
height: 400px;
box-shadow: 0px 2px 5px rgba(0,0,0,0.25);
position: relative;
-webkit-box-shadow: 0px 2px 5px;
border: solid 1px #ddd;
padding: 30px 30px 60px 30px;
background: #fff;
border-radius: 10px;
}
p{
font-family: Verdana;

}
div{
margin-left:auto;
margin-right:auto;
margin-top:5%;

}
img{
width: 120;
height: 133;
left: 100px;
position: relative;
}
input{
margin-left:10%;
margin-right:5%;
font-size: 14px;
width: 264px;
padding: 9px 7px 7px;
background: none !important;
position: relative;
z-index: 10;
margin-bottom: 20px;
border-radius: 5px;

}
.button:hover{
color: red;
}
</style>


</head>
<body>
<div id="form">     
<img src="http://traceybaptiste.files.wordpress.com/2011/01/homework2.jpg" />
    <form method="POST" action="login.php">
    <p>User:</p> <input type="text" name="user"></input>
    <p>Pass:</p> <input type="password" name="pass"></input>
    <input type="submit" name="submit" class="button"></input>
    </form>
</div>
</body>
</html>

404.html:

<html>
<head>
<style>
html{
background-color:grey;
}
body{
background-image:url("404.jpg");
background-repeat:no-repeat;
margin-left: 25%;
margin-right: auto;
margin-top: 10%;

}
</style>
</head>
<body>
</body>
</html>
4

3 回答 3

2

我不太确定,但我认为您不应该包含 login.php(index.html 的第二行)。我对 php 也有点陌生,但您的表单似乎在 index.html 上,然后您将数据发布到 login.php 并从那里重定向用户。在表单的开头包含 login.php 对我来说没有任何意义。我可能弄错了,但只是想提供帮助。

我也认为 William N 写的代码也是错误的,这就是为什么你被困在 login.php 中,如果你的密码错误,它不会将你重定向到本地主机。

<?php 
session_start(); 
$_SESSION['wrong']=0;
$user = $_POST['user'];
$pass = $_POST['pass'];
if($user == "school"
&& $pass == "homework")
{
echo"Password system work!";
}else{  
$_SESSION['wrong']=$_SESSION['wrong']+1;
header( 'Location: http://localhost' ) ;}

if($_SESSION['wrong'] == 3)

header( 'Location: diepage.html' ) ;

?>

尝试这个。

编辑:哦,似乎你每次加载 login.php ($_SESSION['wrong']=0;) 时都通过为其分配 0 来重置 $_SESSION['wrong'],所以它永远不会得到到 3. 也许你可以做类似的事情:

if (!isset ($_SESSION['wrong'])){
$_SESSION['wrong']=0;}

这样只有在没有更早设置的情况下,您才会启动并将其设为零。但我又不完全确定。

于 2013-02-05T03:53:37.077 回答
0
<?php 
session_start(); 
$_SESSION['wrong']=0;
$user = $_POST['user'];
$pass = $_POST['pass'];
if($user == "school"
&& $pass == "homework")
{
echo"Password system work!";
}else{  $_SESSION['wrong']=$_SESSION['wrong']+1; if($_SESSION['wrong'] == 3)

header( 'Location: diepage.html' ) ;
}
?>
于 2013-02-05T02:59:43.743 回答
0

如果你的文件是 named index.html,它不会被 PHP 解析。

此外,使用<?php而不是 just <?,它更可靠,因为它不依赖于特定的配置设置。

于 2013-02-05T03:01:16.093 回答