php验证session无效的解决方法

本文实例讲述了php验证session无效的解决方法。分享给大家供大家参考。具体方法如下:

一、问题

今天在配置 apache+php环境时折腾了很久很久,后来成功了但发现验证码图片可以生成,在登录验证时发现session为空,并没有值了。

二、解决方法

环境:apache+php

程序代码如下:

代码如下:

<input name="username" type="text" class="input" id="username">
<input name="password" type="password" class="input" id="password">
<input name="ver" type="text" class="input1" id="ver" size="5">
<img src="../inc/ver.php" onclick="this.src='../inc/ver.php';" />

提交之后处理文件这post.php文件

代码如下:

if($_SESSION['ssioner']!=$ssever){
echo("<script>alert('验证码必须由4位数字组成!');history.back();</script>");exit; 
}

结果发现一直提示验证码必须由4位数字组成,再打印输出session:

代码如下:

echo $_SESSION['ssioner'];
exit;

一直为空了,于时我想到了php环境配置的一个session文件目录,现在我们找到php.ini配置文件找到
upload_tmp_dir
发现这个目录是
upload_tmp_dir="D:\www.jb51.net\tp"
我检查一下我的D盘发现只有www.jb51.net文件而没有tp目录了,这样问题就找到了,于时我创建一个tp目录,重启apache发现在tp目录有sess_i40gl0p4hfep5r69j67o1k26d01文件了,这样再重新登录发现成功了。

希望本文所述对大家的PHP程序设计有所帮助。

时间: 2014-11-01

PHP session有效期问题

一个已知管用的方法是,使用session_set_save_handler,接管所有的session管理工作,一般是把session信息存储到数据库,这样可以通过SQL语句来删除所有过期的session,精确地控制session的有效期.这也是基于PHP的大型网站常用的方法.但是,一般的小型网站,似乎没有必要这么劳师动众. 但是一般的Session的生命期有限,如果用户关闭了浏览器,就不能保存Session的变量了!那么怎么样可以实现Session的永久生命期呢? 大家知道,Session储存在

PHP中session变量的销毁

1.何为session?相当于一个客户端(可以是浏览器.app.ftp等其他,而且同一个浏览器多开几个又算是不同的客户端)对服务器的一个访问,这个期间服务器为此建立一个唯一的标示(session_id session_name),其实也就是一个数组Array(),Session的开始和结束并不以业务上的输入用户名密码开始,也不以关闭浏览器和网页刷新而结束 2.session变量的销毁程序代码<?phpsession_unset();session_destroy();?> session_un

php中实现精确设置session过期时间的方法

大多数据情况下我们对于session过期时间使用的是默认设置的时间,而对于一些有特殊要求的情况下我们可以设置一下session过期时间. 对此,可以在PHP中,设置php.ini,找到session.gc_maxlifetime = 1440 #(PHP5默认24分钟) 这里你可以随便设置一下过期时间.但是有人说设置以后,好象不起作用! 其实不是不起作用,而是因为系统默认: session.gc_probability = 1 session.gc_divisor = 1000 garbage

PHP中怎样保持SESSION不过期 原理及方案介绍

PHP中如何保持SESSION以及由此引发的一些思考  最近的一个项目,里面有一个比较大的表单,用户完成它需要很多时间,很多用户花了千辛万苦完成之后,一提交发现SESSION过期,系统退出了,所以引起了研究如何设置SESSION以及保持SESSION在线的需要,下面是一些心得体会. 什么是SESSION?按照WIKI的解释,SESSION是存在于两个通信设备间的交互信息,在某一时间建立,经过一定的时间后失效.常见的SESSION有:TCP SESSION.WEB SESSION(HTTP SES

教你如何使用php session

PHP session用法其实很简单它可以把用户提交的数据以全局变量形式保存在一个session中并且会生成一个唯一的session_id,这样就是为了多了不会产生混乱了,并且session中同一浏览器同一站点只能有一个session_id,下面我们一起来看看关于session使用方法.如何使用session,凡是与session有关的,之前必须调用函数session_start();为session赋值很简单,如: 复制代码 代码如下: <?phpSession_start();$Name =

PHP Session 变量的使用方法详解与实例代码

当您运行一个应用程序时,您会打开它,做些更改,然后关闭它.这很像一次会话.计算机清楚你是谁.它知道你何时启动应用程序,并在何时终止.但是在因特网上,存在一个问题:服务器不知道你是谁以及你做什么,这是由于 HTTP 地址不能维持状态.通过在服务器上存储用户信息以便随后使用,PHP session 解决了这个问题(比如用户名称.购买商品等).不过,会话信息是临时的,在用户离开网站后将被删除.如果您需要永久储存信息,可以把数据存储在数据库中. 把手册抄一下,然后每个都试试然后写出来,方便自己查阅滴,谁

解决php中Cannot send session cache limiter 的问题的方法

今天在使用php 的session 的时候,出现了以前就遇见但是又解决不了的问题,在页面上出现如下提示: Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at E:\php\code\admin.php:1) in E:\php\code\logolist\adminlogo.php on line

PHP中session使用方法详解第1/2页

由于 Session 是以文本文件形式存储在服务器端的,所以不怕客户端修改 Session 内容.实际上在服务器端的 Session 文件,PHP 自动修改 session 文件的权限,只保留了系统读和写权限,而且不能通过 ftp 修改,所以安全得多.PHPChina 开源社区门户 对于 Cookie 来说,假设我们要验证用户是否登陆,就必须在 Cookie 中保存用户名和密码(可能是 md5 加密后字符串),并在每次请求页面的时候进行验证.如果用户名和密码存储在数据库,每次都要执行一次数据库查

php session_start()关于Cannot send session cache limiter - headers already sent错误解决方法

说是已经有输出,用编辑器打,前面明明什么都没有,原来在使用AJAX的 时候,也出现过这种情况,后来,把这个PHP文件放到linux中打开,会发现,在文件的最前面,会出现"锘 "这样的一个字符(引号内),把它去掉以后,再运行,OK,运行正常.后来在网上搜索一些文件,给的解释是:UTF8文件的BOM(Byte Order Mark)标志,在保存的时候会自动存入! 不管它是干嘛的,现在的目的就是把它去掉,我总结的方法有下面三种: 1. 在Linux下打开,去掉后再保存 2. 用写字板打开,把

php Session无效分析资料整理

php Session无效分析 PHP开发过程中,可能有朋友经常会遇到Session所产生的文件无法自动清除的问题,其实并非真的无法清除,而是有一个概率问题,只要你的站点访问量足够大,那些文件就可以自动被清除掉.如果访问量比较少,又看那些文件不顺眼的话,只要在php.ini里的配置一下即可实现Session文件自动清除的功能,具体配置如下: 找到 session.gc_probability = 1 session.gc_divisor = 1000 上面这两项参数其实就是这个概率,默认情况下是

PHP session有效期session.gc_maxlifetime

一个已知管用的方法是,使用session_set_save_handler,接管所有的session管理工作,一般是把session信息存储到数据库,这样可以通过SQL语句来删除所有过期的session,精确地控制session的有效期.这也是基于PHP的大型网站常用的方法.但是,一般的小型网站,似乎没有必要这么劳师动众. 但是一般的Session的生命期有限,如果用户关闭了浏览器,就不能保存Session的变量了!那么怎么样可以实现Session的永久生命期呢? 大家知道,Session储存在

理解PHP中的Session及对Session有效期的控制

0.什么是session?        Session的中文译名叫做"会话",其本来的含义是指有始有终的一系列动作/消息,比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个session.目前社会上对session的理解非常混乱:有时候我们可以看到这样的话"在一个浏览器会话期间,...",这里的会话是指从一个浏览器窗口打开到关闭这个期间:也可以看到"用户(客户端)在一次会话期间"这样一句话,它可能指用户的一系列动作(一般情况下

Tomcat实现session共享(session 会话复制)

一.如何保持session会话 目前,为了使web能适应大规模的访问,需要实现应用的集群部署.集群最有效的方案就是负载均衡,而实现负载均衡用户每一个请求都有可能被分配到不固定的服务器上,这样我们首先要解决session的统一来保证无论用户的请求被转发到哪个服务器上都能保证用户的正常使用,即需要实现session的共享机制. 在集群系统下实现session统一的有如下几种方案: 1.请求精确定位:session sticky,例如基于访问ip的hash策略,即当前用户的请求都集中定位到一台服务器中

jsp获取action传来的session和session清空以及判断

jsp获取action传来的session值问题有一下几种方法: 比如我action中有个session ("sessionid","sessionValue") 一.用struts标签获取:<s:property value="#session.sessionid"/> 二.<%=request.getSession.getAttribute("sessionid");> session也是内置对象之

PHP会话控制:Session与Cookie详解

本文介绍了PHP会话控制,主要阐述以下几点内容: • 会话控制的产生背景/概念 • cookie的维护与生命周期(有效时间) • session的维护与生命周期(回收机制) • cookie与session之间的区别与联系 • 问题1:禁用cookie后session为什么会失效? • 问题2:IE浏览器下丢失session,每次刷新页面,都会生成新的sessionID(Firefox浏览器正常) • session.cookie简单实例 理解会话控制的概念 理解一个概念就需要理解他的背景及产生

session 加入mysql库的方法

我们知道,session是一种会话技术,用来实现跨脚本共享数据或者检测跟踪用户状态. session的工作原理 (1)当一个session第一次被启用时,一个唯一的标识被存储于本地的cookie中. (2)首先使用session_start()函数,PHP从session仓库中加载已经存储的session变量. (3)当执行PHP脚本时,通过使用session_register()函数注册session变量. (4)当PHP脚本执行结束时,未被销毁的session变量会被自动保存在本地一定路径下

PHP session会话操作技巧小结

本文实例总结了PHP session会话操作技巧.分享给大家供大家参考,具体如下: 会话技术 session 将会话数据存储与服务器端,同时使会话数据可以区分浏览器 为每个会话数据建立独立的会话数据区(来存储当前会话的全部数据),每个会话数据区存在唯一的标志,同时浏览器端存储该唯一标识配对使用. 响应时给浏览器的session-id值也存储于浏览器端的cookie数据区. php.ini: session.auto_start = 0 session_start(); 增删改查都是使用$_SES

php 如何设置一个严格控制过期时间的session

1.php session 有效期 PHP的session有效期默认是1440秒(24分钟),如果客户端超过24分钟没有刷新,当前session会被回收,失效. 当用户关闭浏览器,会话结束,session也会失效. 可以修改php.ini的session.gc_maxlifetime来设置session的生命周期,但并不能保证在超过这一时间后session信息立即会删除.因为GC是按机率启动的,可能在某一个长时间内都没有被启动.那么大量的session在超过session.gc_maxlifet

php中的session完全教程第1/2页

一.session概述 session是什么,刚开始我也不明白,非专业词典翻译为会议,会议期.作个不太恰当的比喻吧 (虽然不恰当,但意义却是一样的),session是你和网站之间的感情. session在web技术中占有非常重要的份量.由于网页是一种无状态的连接程序,因此你无法得知用户的浏览状态.因此我们必须 通过session记录用户的有关信息,以供用户再次以此身份对web服务器提供要求时作确认,例 如,我们在某些网站中常常要求用户登录, 但我们怎么知道用户已经登录了呢,如果没有session