在登录页面login.php设置的session,然后在跳转后的页面就接收不到值

最近在给正在完善的一个小项目做后台管理系统,然后在做好登录页面的各项验证后,就要弄一个session值来验证禁止非管理员登录,如下:
在login.php页面:

'content-type:text/html; charset=utf-8');
session_start();
include "../include/init.php";

if($_POST){
             $username=trim($_POST['username']);
             $password=md5($_POST['password']);
             $sql="SELECT * FROM box_admin WHERE admin_title='{$username}' AND  admin_password='{$password}'";
              $user=$mysql->getOne($sql);
              // print_r($user);exit;
              if(isset($user['admin_title']) && !empty($user['admin_title'])){
              if($password==$user['admin_password']){
                        $_SESSION['log'] = '1';
                        // echo $_SESSION['log'];exit;
                        // $_SESSION['uid'] = $user['admin_id'];           
                        // $_SESSION['username'] = $username;
                        // $_SESSION['password'] = $password;

                    alert("恭喜您,登录成功!","index.php");

                   }else {
                    alert("请输入密码","login.php");
                   }
              }else {
                alert("请输入用户名","login.php");
              }

}

?>

在index.php页面(也就是i跳转后的页面):

 
header('content-type:text/html; charset=utf-8');
session_start();
include "../include/init.php";
echo $_SESSION['log'];exit;
if(!isset($_SESSION['log']) || empty($_SESSION['log'])|| $_SESSION['log']!=1){
  alert("请先登录","login.php");
}
$uid=$_SESSION['uid'];

$sql="SELECT * FROM box_admin WHERE admin_id='{$uid}'";
// $sql="SELECT * FROM box_admin WHERE admin_id=1";
$admin=$mysql->getOne($sql);


 ?>

然后测试是否能从index.php拿到session值的时候,出错了:如下:

Notice:Undefined index:log............./index.php

然后检查了好几遍,愣是没发现错误,然后我就打开了php的配置文件php.ini,然后查找session.save_path
发现并没有去掉分号,然后我去掉分号,然后改成了

session.save_path = "D:/wamp/php/tmp"

并在php目录下建了tmp文件夹。
然后重启apache。
再次验证登录,终于能在另一个页面拿到session值了。
当你打开tmp文件夹的时候,发现里面已经有了你刚才设置的session了。

提醒:设置session一定要加

session_start();

或者在php.ini中将

session.auto_start = 0

,改为

session.auto_start = 1

,然后细心细心再细心。

扩展:
一些重要的会话配置
php.ini配置文件中有一组会话配置选项,可以对其进行设置:

    session.save_handler = files ; 如何存储session信息 
    session.save_path = /tmp; save_handler 设为文件时, session文件保存的路径
    session.use_cookies = 1 ; 是否使用cookies
    session.name = PHPSESSID;  用在cookie里的session的名字 
    session.auto_start = 0 ; 是否自动启动session 
    session.cookie_lifetime = 0 ; 设置会话cookie的有效期,以秒为单位,为0时表示直到浏览器被重启
    session.cookie_path = / ; cookie的有效路径 
    session.cookie_domain = ; cookie的有效域
    session.cache_expire = 180 ; 设置缓存中的会话文档在 n 分钟后过时   

你可能感兴趣的:(php,apache)