PHP在线服务器中的会话验证问题 [英] Session validation issue in PHP online server

查看:30
本文介绍了PHP在线服务器中的会话验证问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在登录表单验证后设置了 $_SESSION['admin']=1.
之后页面被重定向并检查 $_SESSION['admin'] 值并加载内容.
它在本地运行良好.但它不能在在线linux服务器上.任何帮助..?

I have set $_SESSION['admin']=1 after login form validation.
After that the page was redirect and check $_SESSION['admin'] value and load contents.
It was worked fine in local. But it can't in online linux server. Any help..?

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

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

当我运行它时,它已成功进行验证,如果用户名和密码是 admin,那么它会在警报中显示 成功.但是在它被重定向之后,表单再次只加载到在线服务器中.但在本地,欢迎文本已加载.但是在在线的其他页面中,会话工作正常.有人可以帮我吗?

When I run this , it was successfully made validation and if username and password is admin then it shows Success in alert. But after it was redirected and again the form only loaded in online server. But in local the welcome text was loaded. But in other pages in online the session works fine. Can anybody help me?

推荐答案

add

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

在您的脚本开始时检查任何错误并回发.我的猜测是你在服务器上有一些权限问题.

at the start of your script and check any errors and post back. My guess is is that you have some permissions problem on the server.

这篇关于PHP在线服务器中的会话验证问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆