2012-01-26 12 views
1

ログインスクリプトのチュートリアルはhttp://www.astahost.com/info/tilltf-simple-login-script-simple-secure-login-script.html、ログイン時には404がありました。私が戻ったときにログインしました。私はチュートリアルをそのまま続けました。なぜこの奇妙なページに行くのか?PHPログインスクリプト404エラー

<?php 

session_start(); 
require_once 'database.php'; 
if (isset($_SESSION['user'])){ 

echo "Welcome ".$_SESSION['user']; 

?> 

<form name="logout" method="post" action="logout.php"> 

<input type="submit" name="logout" id="logout" value="Logout"> 

</form> 

<br /><form name="news" method="post" action="news.php"> 

<input type="submit" name="news" id="news" value="News"> 

</form> 

<?php 

} 

elseif(isset($_SESSION['admin'])){ 

echo"Welcome ".$_SESSION['admin']; 

echo"<br><br>You are logged in as an Admin"; 

?> 

<form name="logout" method="post" action="logout.php"> 

<input type="submit" name="logout" id="logout" value="Logout"> 

</form> 



</form> 

<?php 

}else{ 

?> 

<form name="login_form" method="post" action="login2.php"> 

<label> 

<input name="user" type="text" id="user">ID<br /> 

<input name="pass" type="password" id="pass">Password<br /> 

</label> 

<input type="submit" name="login" id="login" action="index.php" value="Login"> 

</label> 

</p> 

</form> 

<form name="Register" method="post" action="reg.php"> 

<input type="submit" name="register" id="register" value="Register"> 

</form><br /> 

<form name="news" method="post" action="news.php"> 

<input type="submit" name="news" id="news" value="News"> 

</form> 

<?php 

} 

?> 
+5

投稿。きみの。コード。 –

+0

私の賭け:post-redirect-getを行い、 'header(" Location:someplace.php ")の最後の呼び出しは、存在しないページを指しています。 –

答えて

1

はあなたにリンクされたコードをちらっと見て、私はいくつかのケースではindex.phpにリダイレクトしようとしlogin2.php気づいたが、他の例ではindex.phpに(小文字I)。両方の場所で小文字にする必要があります。そのサーバーのあなたのタイプに応じて、あなたの404

0

の原因である可能性があり、これは問題を引き起こす可能性があります

具体的
if(mysql_num_rows($queryN) == 1) { 

    $resultN = mysql_fetch_assoc($queryN);     

    $_SESSION['user'] = $_POST['user']; 

    header("location:Index.php");  

} 

ファイルへの他のすべての参照が利用しながら、Index.phpIは、大文字であるため、小文字のi

また、このコードはTERRIBLY形式です...しかし、それはまったく別の問題です。チュートリアルでは、カップルのヘッダをリダイレクトしていること

1

header("location:Index.php"); 

header("location:index.php"); 

は、彼らが同じファイルを指していることになって、そのファイルが存在することを確認していないことを確認してください。ログインして、見つからないファイルにリダイレクトしようとしています。

0

あなたが提供したリンクのコードを見て、私は考えられる原因を見ています。ログイン処理スクリプトの最後に、header()への呼び出しがあり、インデックスページにリダイレクトされます。そのうちの一つが異なるケースがあり、多くのWebサーバは、デフォルトでは大文字と小文字が区別されます:

header("location:index.php"); 
header("location:Index.php"); 

私は下ケースindex.phpを推測している正しいものであるので、あなたのコードがそれに応じて更新します。

0

追加した警告は:リンクされている例は

$escaped_username = mysql_real_escape_string($username); 
# make a md5 password. 
$md5_password = md5($_POST['pass']); 
$queryN = mysql_query("select * from user where username = '".$username."' and password = '".$md5_password."' AND level='1'"); 

$escaped_usernameが正しく生成され、これらの線に沿っての深刻なセキュリティホールがありますが、SQLクエリは、まだ$usernameを使用しています。 SQL文を挿入する可能性があります。それを必ず変更してください。投稿番号:

関連する問題