2012-07-28 3 views
-1

로그인 폼 유효성 검증 후 $_SESSION['admin']=1을 설정했습니다.
페이지가 리디렉션 된 후 $_SESSION['admin'] 값을 확인하고 내용을로드하십시오.
지역에서 잘 작동했습니다. 그러나 그것은 온라인 리눅스 서버에서 할 수 없습니다. 어떤 도움이 ..?PHP 온라인 서버의 세션 검증 문제

admin.php

<?php 
    session_start(); 
    $admin = 0; 
    if(isset($_SESSION['admin'])){ 
     $admin = $_SESSION['admin']; 
    } 
    if($admin == 0){ 
?> 
<form action="" class="login"> 
    <label>User Name :</label> 
    <input type="text" class="uname"/> 
    <label>Password :</label> 
    <input type="password" class="pwd"/> 
    <input type="submit" class="lSubmit" value="SUBMIT"/> 
    <p class="alert lAlert">test alert</p> 
</form> 
<?php }elseif($admin == 1){ ?> 
    <h1>Welcome Site Admin..!!</h1> 
<?php } ?> 

JQuery와

$('.lSubmit').click(function(){ 
    var name = $('.uname').val(); 
    var pwd = $('.pwd').val(); 
    $.post("validation/login.php",{name:name,pwd:pwd}).success(function(data){ 
     var obj = jQuery.parseJSON(data); 
     if(obj.success == 1){ 
      $('.alert').css('color','#067800'); 
      window.location = "/admin.php"; 
     }else{ 
      $('.alert').css('color','#CC0000'); 
     } 
     $('.lAlert').text(obj.msg); 
     $('.lAlert').fadeIn('slow'); 
    }); 
    return false; 
}); 

검증/login.php

<?php 
session_start(); 
$name = $_POST['name']; 
$pwd = $_POST['pwd']; 
$err['success'] = 0; 
$err['msg'] = ''; 
if($name == ''){ 
    $err['msg'] = 'Name required'; 
}else if($pwd == ''){ 
    $err['msg'] = 'Password required'; 
}else if($name != 'admin'){ 
    $err['msg'] = 'Wrong username'; 
}else if($pwd != 'admin'){ 
     $err['msg'] = 'Wrong password'; 
}else{ 
    $err['msg'] = 'Success'; 
    $err['success'] = 1; 
    $_SESSION['admin'] = 1; 
} 
echo json_encode($err); 
?> 

내가 도망 t 사용자 이름과 암호가 관리자 인 경우 성공을 경고합니다. 그러나 리디렉션 된 후 다시 온라인 서버에만로드됩니다. 그러나 현지에서는 환영 문안이로드되었습니다. 그러나 온라인의 다른 페이지에서는 세션이 정상적으로 작동합니다. 아무도 나를 도울 수 있습니까?

+0

많은 것들이 잘못되었을 수도 있습니다. 웹 서버/모듈/php.ini – Gntem

+0

@GeoPhoenix의 모든 내용을 점검하십시오. 세션은 다른 페이지에서도 잘 작동합니다. 그러나 문제는 $ _SESSION [ 'admin'] 변수에서만 가능합니다. – vinu

+1

"작동하지 않습니다"보다 자세한 정보가 필요합니다. 어떤 종류의 오류가 있었습니까? 어떤 테스트와 디버깅을 했습니까? 우리는 자신의 물건에 접근 할 수 없으므로 이미 수행 한 작업 만 수행 할 수 있습니다. 몇 가지 테스트를 수행 한 경우 결과를 해석 할 수 있습니다. 그러나 "작동하지 않습니다"라고 우리에게 말하면, 우리는 어디로 대답 할 것인지 전혀 모른다. – Palladium

답변

0

내 유일한 추측은 일반적으로 세션이 추가으로 session_start()

+0

이 경우 나는 session_start()를 사용하여 수동으로 세션을 시작할 수 있습니다. – vinu

0

사용하여 수동으로 시작해야 실제 서버 대부분의 시간에 XAMPP

같은 대부분의 개발 키트와 함께 자동으로 시작한다는 것

error_reporting(E_ALL); 
ini_set('display_errors', 1); 

스크립트 시작시 오류를 확인하고 다시 게시하십시오. 내 추측은 서버에 대한 사용 권한 문제가 있음을 나타냅니다.