在登录页面login.php设置的session,然后在跳转后的页面就接收不到值
2017-07-08 14:01
393 查看
最近在给正在完善的一个小项目做后台管理系统,然后在做好登录页面的各项验证后,就要弄一个session值来验证禁止非管理员登录,如下:
在login.php页面:
在index.php页面(也就是i跳转后的页面):
然后测试是否能从index.php拿到session值的时候,出错了:如下:
然后检查了好几遍,愣是没发现错误,然后我就打开了php的配置文件php.ini,然后查找session.save_path
发现并没有去掉分号,然后我去掉分号,然后改成了
并在php目录下建了tmp文件夹。
然后重启apache。
再次验证登录,终于能在另一个页面拿到session值了。
当你打开tmp文件夹的时候,发现里面已经有了你刚才设置的session了。
提醒:设置session一定要加
或者在php.ini中将
,改为
,然后细心细心再细心。
扩展:
一些重要的会话配置
php.ini配置文件中有一组会话配置选项,可以对其进行设置:
在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 分钟后过时
相关文章推荐
- ASP.NET 登录时保存的Session,在跳转页面后获取不到
- 登陆过滤 Session失效,跳转回login页面
- iframe 框架中main 页面设置session ,超时只有main页跳转到指定页面的解决
- struts2拦截器实现session超时返回登录页面(iframe下跳转到其父页面)
- PHP 登录完成后如何跳转上一访问页面
- session失效时 中间等待页面 跳转至登录页面
- 网上代码研究后修改的PHP登录程序,关闭浏览器session清空,可以设置cookies时间
- PHP 登录完成后如何跳转上一访问页面
- PHP 登录完成后如何跳转上一访问页面
- 网上代码研究后修改的PHP登录程序,关闭浏览器session清空,可以设置cookies时间
- Asp.net Session失效,在包含iframe的页面中跳转至登录窗口
- session失效对自动跳转登录页面
- strust2拦截器处理Session超时跳转登录页面
- wordpress主题开发教程手记:wp-login.php登录页面优化
- .net 中ifram的session过期,跳转到登录页面
- php 使用session保存页面登录信息
- 关于PHP页面跳转出现SESSION丢失问题
- Android HttpUrlConnection 发送Post请求 PHP页面$_POST接收不到问题
- 网上代码研究后修改的PHP登录程序,关闭浏览器session清空,可以设置cookies时间
- DedeCMS V5.7使用session_register()在PHP5.4以上无法登录后台,页面无显示