php session_start()出错原因分析及解决方法

错误提示: Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent

原因:在session_start()之前如果有输出内容,会出错,

解决办法:在session_start()之前加上ob_start();

index.php 


代码如下:

<?php
error_reporting(-1);
ob_start();//不加会出错,无法写入session
register_shutdown_function('close');

echo 1;
 session_start();

$_SESSION['password']='mima2ddddddddddddddda2';

function close()
    {
        if(session_id()!=='')
            @session_write_close();
    }
?>
<a href="index2.php" >index2</a>

index2.Php


代码如下:

<?php
error_reporting(-1);
ob_start();//不加会出错,无法读取session
?
echo 1;
 session_start();

echo $_SESSION['password'];
var_dump($_SESSION);
?>
<a href="index.php" >index</a>

(0)

相关推荐

  • PHP 出现乱码和Sessions验证问题的解决方法!

    在PHP脚本中读出中文或者其他语言文字为乱码的时候,首先检查你的文件格式是不是用UTF8的编码格式保存的.如果不是请用UltraEdit...等一些对UTF8支持转换的工具转换一下,最好不要用MS的记事本直接另存为转换,我开始的时候就是犯了这样一个错误.如果你是在 Dreamweaver 中编辑请按照:编辑--->首选参数--->新建文档 把语言设置为UTF8编码. 关于SESSION验证问题:一开始我的文档都是用GB2312编写的,后来有一个网站需要用UTF-8的编码,我就把我的一些文件用M

  • php提示Failed to write session data错误的解决方法

    本文较为详细的分析了php提示Failed to write session data错误的解决方法.分享给大家供大家参考.具体方法如下: 一.问题: 提示信息:Warning: Failed to write session data (files).Please verify that the current setting of session.save_path is correct () in Unknown on line 0 二.解决方法: 代码如下: 复制代码 代码如下: ses

  • PHP关于IE下的iframe跨域导致session丢失问题解决方法

    今天搞的一个登录页面,被别的网站用iframe嵌进去后,死活无法登录(只在IE中存在这种情况). 很明显,session无法被保存.但是直接在地址栏打开那个登录页面,一切都正常啊.真是奇怪啊. 在网上搜索了一下.发现这个问题还真有不少人提及到.最后的解决方法是在那个登录页面里加上以下代码: 复制代码 代码如下: <span style="font-family:Microsoft YaHei; font-size:14px">header('P3P: CP="AL

  • php5.3 不支持 session_register() 此函数已启用的解决方法

    php从5.2.x升级到5.3.2.出来问题了.有些原来能用的程序报错了.报错内容是Deprecated: Function session_register() is deprecated查了一下是5.3这个session_register就不让用了,降回去?不爽.搜了一把,有个解决方法是写一个函数 复制代码 代码如下: <?php // Fix for removed Session functions function fix_session_register(){ function se

  • PHP Session变量不能传送到下一页的解决方法

    我认为,出现这个问题的原因有以下几点: 1.客户端禁用了cookie 2.浏览器出现问题,暂时无法存取cookie 3.php.ini中的session.use_trans_sid = 0或者编译时没有打开--enable-trans-sid选项 为什么会这样呢?下面我解释一下: Session储存于服务器端(默认以文件方式存储session),根据客户端提供的session id来得到用户的文件,取得变量的值,session id可以使用客户端的Cookie或者Http1.1协议的Query_

  • phpmyadmin出现Cannot start session without errors问题解决方法

    PHPMYADMIN出问题了,总一个劲报错. 复制代码 代码如下: Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly. 配置文件被改到乱七八糟了,不断地重启IIS重启MYSQL,都没有解决. 但有时候呢,却又没问题,想不出是哪边有问题- 后来随便瞎搞,终于有

  • ThinkPHP的cookie和session冲突造成Cookie不能使用的解决方法

    近期做一个网站的投票时,遇到ThinkPHP中的cookie和session冲突导致Cookie不能使用的情况. 该网站采用的是ThinkPHP框架制作,有一页面上面展示很多图片,要求每个图片下面有对应的投票,通过限制ip地址来,限制游客在一定时间范围内,能对多个图片投票,但是每个图片只能投票一次,开始使用ip存储在数据库解决,后来改进为使用session存储,ip在服务文件里,不过要把生成的sessionid存储在本地的cookie中,按照ThinkPHP手册说明操作session一切顺利,但

  • php验证session无效的解决方法

    本文实例讲述了php验证session无效的解决方法.分享给大家供大家参考.具体方法如下: 一.问题 今天在配置 apache+php环境时折腾了很久很久,后来成功了但发现验证码图片可以生成,在登录验证时发现session为空,并没有值了. 二.解决方法 环境:apache+php 程序代码如下: 复制代码 代码如下: <input name="username" type="text" class="input" id="use

  • ThinkPHP框架实现session跨域问题的解决方法

    ThinkPHP的session跨域问题很多开发者都遇到过! 其实不管是ThinkPHP还是php本身,在解决session跨域问题的时候都需要设置session.cookie_domain. 在ThinkPHP里,需要修改配置文件conf/config.php 在第一行加上: ini_set('session.cookie_domain', ".domain.com");//跨域访问Session 经过总结,针对session跨域这一问题的解决方法主要有以下几种: 第一种情况:如果你

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

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

  • PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法

    做开发的时候,操作session有时候会遇到这个问题:Warning: session_start() [function.session-start]-- 系统环境:WIN2003+IIS6+PHP5.2.12 PHP出现类似如下错误: Warning: session_start()[function.session-start]: ...... failed: No such file or directory......等情况, 可以偿试修改一下php.ini文件中的session.au

随机推荐