2012-03-31 2 views
1

클라이언트 로그인 시스템에서 작업 중이며 수정 방법이 확실하지 않습니다. 사용자가 특정 디렉토리의 index.php에 액세스하려고 시도 할 때 로그인해야합니다. 나는이 일을 한 코드는 다음과 같습니다PHP 로그인 스크립트 - 가능한 세션 오류

Login_admin.php 페이지에서
<?php 
    session_start(); 
    if(!$_SESSION['myusername']){ 
     header("location:Login_admin.php"); 
    } 
?> 

는, 액션 = "checklogin.php"와 형태가있다.

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

원래 위의 코드가 있어도 session_start이 없었다() 그래서 시도에서 내 문제를 해결하는 것을 추가 :이 데이터베이스에 연결하고 사용자 이름을 저장하는 세션을 시작하는 경우 여기에있다.

실제 문제는 세션이 등록되어 있지 않습니다. 만약 내가 디렉터의 다른 페이지 중 하나에 가면 (모두 코드의 첫 부분을 가지고있다.) 내가 원하는대로 index.php로 보낸다. 그러나 그 페이지로 돌아 가려 할 때 그것은 내가 다시 로그인하게 만든다. 어느 시점에서 필자는 인덱스 페이지에 코드의 첫 번째 세그먼트가 있었고 올바른 로그인을하더라도 로그인 페이지로 되돌아갑니다.

나는이 스크립트를 친구에게 보여 주었고 실제로 많이 변경하지 않았습니다. 원래 스크립트했다 :

session_register("myusername"); 

그러나 일부 디버깅 후

, 나는 그것을 변경 :

$_SESSION['myusername']; 

마지막 메모를, 나는 삶에 대한 문제가 아마 바보 같은 실수 간주 전문가가 아니라입니다 나는 그것을 알 수 없다.

미리 감사드립니다.

+0

다음 두 가지 대답을 통해이 문제를 해결할 수있었습니다. 고마워요! –

답변

1

$_SESSION['myusername']; 

라인은 절대적으로
당신이 에있는 세션 변수에 값을 할당하는 것도
일반적인 방법으로 값을 변수에 할당 된 세션 변수에
을 할당하지 않습니다 PHP에서

+0

오, 알았어, 그걸 시도해 보자. –

+0

올바른 방법은 다음과 같다. $ _SESSION [ 'myusername'] = $ myusername; ? –

1

각 세션 변수에 값을 지정해야합니다.

$_SESSION['myusername'] = 'thename'; 
$_SESSION['password'] = '*******';