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

来源:互联网 发布:浪人网络 时代店 编辑:程序博客网 时间:2024/06/07 03:53

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

<?php header('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跳转后的页面):

<?php 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 分钟后过时   
阅读全文
0 0
原创粉丝点击