0

ねえ、誰でも私のコードを調べて助けてくれます...私はapacheを使用していて、ユーザーがパスワードとユーザー名を3回間違って入力した場合に、404htmlページに転送されるようにしようとしています。残念ながら、コードの一部がブラウザに表示されていますが、その理由がわかりません。私はphpを知っているので、コードがずさんなものや正しくないものである場合は、それについて私を悩ませないでください。

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' ) ;
}
?>

Index.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 の 2 行目) を含めるべきではないと思います。私も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

ファイルの名前がindex.htmlの場合、PHP によって解析されません。

また、<?phpjust の代わりに を使用<?すると、特定の構成設定に依存しないため、より信頼性が高くなります。

于 2013-02-05T03:01:16.093 に答える