2012-01-26 2 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

서버의 사용자 유형에 따라의 원인 일 수 있습니다,이 문제가 발생할 수 있습니다 Index.phpI가 대문자로되어 있기 때문에

if(mysql_num_rows($queryN) == 1) { 

    $resultN = mysql_fetch_assoc($queryN);     

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

    header("location:Index.php");  

} 

특히, 파일에 대한 모든 다른 참조가를 활용하면서 소문자 i.

또한이 코드는 테리 리 형식입니다 ...하지만 아아, 그건 전혀 다른 문제입니다.

1

튜토리얼은 몇 헤더를 가지고 리디렉션

header("location:Index.php"); 

header("location:index.php"); 

들이이 같은 파일을 가리키는 할 안하고 있는지 확인하고 파일이 있는지 확인하십시오. 로그인 한 다음 찾을 수없는 파일로 리디렉션하려고합니다.

0

제공 한 링크의 코드를 살펴보면 가능한 원인이 있습니다. 로그인 처리 스크립트가 끝나면 header()을 호출하여 인덱스 페이지로 다시 리디렉션됩니다. 그 중 하나는 다른 케이스를 가지고 있으며, 많은 웹 서버는 기본적으로 대소 문자를 구분됩니다

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 문을 삽입 할 수있는 가능성을 열어줍니다. 변경해야합니다.