2012-10-10 6 views
0

작동 방식 : Index.php는 보안 페이지입니다. check.php를 포함하는데, 세션이 양호한지를 검사합니다. 그렇지 않은 경우 로그인하지 않은 상태에서 -> 로그 오프하고 세션을 제거하십시오. 그러나PHP 세션이 작동하지 않습니다.

의 index.php ... 내가 로그인하지 않은 것처럼 항상 로그 오프 작동하지 않습니다

include ‘check.php’; 
echo "logged in"; 

check.php

session_start(); 
if($_SESSION[‘login’] != ‘good’) { 
unset($_SESSION[‘login’]); 
unset($_SESSION[‘name’]); 
header(‘Location: login.php?logoff’); 
exit(); 
} 

로그인 .php

if(isset($_POST[‘login’])) { 
$gb = array(); 
$gb[‘user1’] = ‘pass1’; 
$gb[‘user2’] = ‘pass2’; 
if(isset($gb[$_POST[‘username’]]) && $gb[$_POST[‘username’]] == $_POST[‘password’]) 
{ 
$_SESSION[‘login’] = ‘good’; 
$_SESSION[‘name’] = $_POST[‘name’]; 

header("Location: index.php"); 
} else { 

header("Location: login.php?wrongpass"); 

} 

} else { ?> 
Login Form 
<?php } ?> 

누군가가 나를 도울 수 있기를 바랍니다!

+0

합니까',': 이 사용할 수 있습니까? –

+0

작은 따옴표가 제대로 보이지 않거나, 복사/붙여 넣기 문제이거나, 어떻게 설정했는지,'''또는'''는'''또는''로되어 있어야합니다 –

+0

누락 된'session_start();'귀하의 로그인 진술이 사실이라면 거기에없는 경우 PHP는 세션으로 인식하지 못합니다. – Dorvalla

답변

1

당신이 login.php에서 세션을 시작했습니다 (증명에 대한 대니 덕분에 나는 유형은 캔트)? 당신이 register_globals

+0

고마워요, 그랬어요;) –

0

모든 페이지 상단에 session_start()가 있어야합니다. 로그인 페이지의 세션 시작을 알 수 없습니다.

+0

'session_start();':-) –

+0

그래,이 키보드와 나는 불일치가있다. 키를 먹는 것 같다. – BugFinder

+0

하 .. 내가 생각하기에 .. 나 자신을 편집 할 수 없었다. in-case OP는 복사/붙여 넣기를 시도했습니다 –

0

는 모든 페이지에 session_start();을 넣어

+0

또는 php.ini에서 이렇게하십시오 : session.auto_start On – kirugan

0

확인이 php.ini 파일에에있다 (나는 :) 코멘트를 게시 할 수 없습니다)

시작되지 않았거나 세션 변수 세션을 사용하고자하는 페이지에 세션 인 경우
0

먼저 체크 stat가 아니라면 시작하십시오.

그리고 이것은 PHP 파일의 맨 처음 줄입니다. 세션 확인을위한

코드는 다음과 같습니다 내 코드에서

if(!session_id()) 
{ 
    session_start(); 
} 
0
if($count==1){ 
    session_start();  
    $_SESSION['Username'] = $UserName; 
    $_SESSION['Password'] = $password; 
    UpdateOnlineChecker($Session); 
    header("Location: http://". strip_tags($_SERVER ['HTTP_HOST']) ."/newHolo/"); 
    exit; 
} 
else { 
    echo "Wrong Username or Password"; 
} 

봐. 그것은 진술이 사실인지를 검사한다 (나를 위해, 나는 하나의 행에 질의 문이 실행될 때). 그런 다음 세션을 시작하고 기본적으로 전체 세션 변수를 정의하고 데이터베이스에 쿼리를 보내 세션을 업데이트 한 다음 참조하십시오.

session_start()가 누락되었습니다. 당신의 if 진실한 구획에서.

('location:------.php); 

호스팅 서버가이 실행되지 않습니다

session_start(); 
if(isset($_POST['login']) && isset($_POST['password'])){ 
    // login 
    header('Location: (here is some page)'); 
} 
if(!isset($_SESSION['user']){ 
    // @todo some action 
} else { 
    require_once('login.php'); 
} 

if(isset($_GET['logout'])){ 
    unset($_SESSION['user']); 
    header('Location: (here is some page)'); 
} 
+0

글쎄, 내 진짜 블록이 아니라 페이지에 있습니다.). 어쨌든 고마워! –

0

하나를 사용하여 코드가있다. `으로 session_start()를 포함 login.php`

echo "<script>window.location.href='-----.php'</script>"; 
-1

내가 문제가 헤더 생각 : 등의 index.php로 액션 문서에 대한

관련 문제