-1

$_SESSION['admin']=1ログインフォームの検証後に設定しました。
その後、ページはリダイレクトされ、$_SESSION['admin']値を確認してコンテンツをロードしました。
ローカルでは問題なく動作しました。ただし、オンライン Linux サーバーではできません。何か助け..?

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);
?>

これを実行すると、正常に検証され、ユーザー名とパスワードが管理者の場合、アラートに成功が表示されます。しかし、リダイレクトされた後、フォームはオンラインサーバーにのみロードされました。しかし、ローカルではウェルカム テキストが読み込まれました。しかし、オンラインの他のページでは、セッションは正常に機能します。誰でも私を助けることができますか?

4

2 に答える 2

0

追加

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

スクリプトの開始時にエラーを確認し、ポストバックします。私の推測では、サーバーにいくつかの権限の問題があるということです。

于 2012-07-28T07:24:37.523 に答える
0

私の唯一の推測では、通常、セッションは xampp のようなほとんどの開発キットで自動的に開始されます。

ほとんどの場合、実サーバーでは、session_start() を使用して手動で開始する必要があります。

于 2012-07-28T06:29:57.713 に答える