2012-11-01 2 views
-1

안녕하세요. 문제가 있습니다. login.php 파일에서 $ _SESSION [ '$ myusername'];을 (를) 저장하고 있습니다. 세션이 존재하지 않으면 page.php 파일에서 SESSIOn 사용자 이름이 login.php로 다시 리디렉션되는지 확인하려고합니다. 나는 유효한 사용자로 로그인하려고하지만 login.php로 다시 리디렉션됩니다. 어디서 문제인지 알 수 없습니다.

login.php :

<?php 


$host="localhost"; // Host name 
$username="root"; // Mysql username 
$password=""; // Mysql password 
$db_name="2"; // Database name 

// Connect to server and select databse. 
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB"); 
if (isset($_POST['formsubmitted'])) { 
    $error = array();//Declare An Array to store any error message 
}; 
// username and password sent from form 
$myusername=$_POST['myusername']; 
$mypassword=$_POST['mypassword']; 

// To protect MySQL injection (more detail about MySQL injection) 
$myusername = stripslashes($myusername); 
$mypassword = stripslashes($mypassword); 
$myusername = mysql_real_escape_string($myusername); 
$mypassword = mysql_real_escape_string($mypassword); 

$sql="SELECT * FROM `members` WHERE username='$myusername' and password='$mypassword'"; 
$result=mysql_query($sql); 

// Mysql_num_row is counting table row 
$count=mysql_num_rows($result); 

// If result matched $myusername and $mypassword, table row must be 1 row 

if($count==1){ 

// Register $myusername, $mypassword and redirect to file "login_success.php" 
//store data: 
$_SESSION['$myusername']; 

//next page: 


header("location:page.php"); 
} 

else { 

include 'index.php'; 
$error[] = '<b><h5>Invalid Username or Password!</b>'; 


if(isset($error) && is_array($error)) 
{ 
    echo "<div class='content1'>" . implode("<br />", $error) . "</div>"; 
}; 

}; 
?> 

page.php :

if(!isset($_SESSION['$myusername'])) 

: 세션 변수를 검사 할 때 당신은 $를 포함하지 않아야 Page.php에서

<?php 
    ob_start(); 
    session_start(); 
    if(!isset($_SESSION['$myusername'])) 
    { 
     header("Location: login.php") 
    } 


?> 
+0

코드를 디버깅하려 했습니까? 오류가 있습니까? – ficuscr

+0

login.php에서'session_start'에 대한 호출이 있습니까? – andrewsi

답변

0

다음과 같아야합니다.

(210)

Login.php에서는 세션 변수를 설정해야합니다

if($count==1){ 
    // Register $myusername, $mypassword and redirect to file "login_success.php" 
    //store data: 
    $_SESSION['$myusername']; 
    //next page: 
    header("location:page.php"); 
} 

가 있어야한다 :

if($count==1){ 
    // Register $myusername, $mypassword and redirect to file "login_success.php" 
    //store data: 
    $_SESSION['myusername'] = $myusername; 
    //next page: 
    header("location:page.php"); 
} 

Login.php 또한 상단에()으로 session_start에 대한 호출이 필요합니다.

+0

타이 당신이 도와 줬어! 내가 몇 분 안에 대답을 수락 할 것입니다 –

+0

@ KasparasTaminskas - 고마워, 나는 또한 login.php에서 session_start()에 대한 호출이 있다고 가정하고 있습니까? – SteB

+0

그래, 나는 그것을 잊었다. 나는 PHP에서 초보자이다.) –

0

첫 번째 문제는 login.php 페이지에 있는데 세션을 시작하지 마십시오. 페이지 시작 부분에 session_start()을 추가하십시오.

둘째, 세션 변수에 값을 할당하지 마십시오. 시도 :

$_SESSION['myusername'] = $myusername; 

참고, 나는 또한 세션 키 이름 내부 $를 제거했습니다. 따라서 page.php 페이지에서 isset($_SESSION['myusername'])으로 액세스해야합니다. 항상 $을 유지할 수는 있지만 그게 무슨 뜻인지는 모르겠다.

+0

Ty, 도움이 필요, 해결 된 문제. –