关于使用 session_start 出现的 headers 
更新时间:2016年11月25日 17:41 点击:1378
请看详细的错误程序和输出结果
<html>
<?
echo "testing ... ";
session_start();
?>
</html>
输出为
testing ...
Warning: Cannot send session cookie - headers already sent by (output started at F:php2000test.php:2) in F:php2000test.php on line 4
Warning: Cannot send session cache limiter - headers already sent (output started at F:php2000test.php:2) in F:php2000test.php on line 4
分析:
主要原因,php.ini里有关于session 的定义,默认是使用 cookie
[session]
session.use_cookies = 1 ; whether to use cookies
这句表明使用 cookies 存储session 而 cookies的设置必须在正式 htm 之前,也就是只能在 header 里面才行,所以造成这个错误的发生
我们修改程序为
<?
echo "testing ... ";
session_start();
?>
同样错误,因为 echo 已经输出了
我们修改程序为
<?
$i=1;
session_start();
?>
运行正确表明在session_start的前面可以有计算语句,但是不能有输出语句
我尝试过修改
session.use_cookies = 0 ; whether to use cookies
但是没有成功,希望知道答案的朋友通知我,如何去掉cookie方式的 session
MySQL是可以远程调用的,但用户要有远程调用的权限。
在增加用户的时候有一个host 选项,是任何主机 或 locahost,你选用 any host,这样,你就可以远程调用了。
mysql_pconnect("192.168.0.2:3306","root","password");
这是因为PHP。INI中有一些设置不对,最有可能是就是有无效的DLL文件在内。但为什么会出现这些呢?
我在WIN32下,建了一个空的test.php文件。
然后执行c:php4php.exe test.php,此时我的php.ini的配置是正确的。屏幕输出为:
X-Powered-By: PHP/4.0.0
Content-type: text/html
咦,这不是显示在屏幕上的东西吗?是的。但这时这两行是作HTTP信息头的。是不会显示在浏览器中的。
现在我在php.ini中加载了php_mysql.dll。而这个文件是不存在的。
再次执行c:php4php.exe test.php,屏幕输出为:
Content-type: text/html
PHP Fatal error: Unable to load dynamic library 'php_mysql.dll'
此处还有些乱字符
X-Powered-By: PHP/4.0.0
Content-type: text/html
就是在Content-type: text/html之后,又出现了一些错误信息,所以才导致X-Powered-By: PHP/4.0.0 Content-type: text/html出现在屏幕上。而这其实本来是HTTP的信息头的。
那么我想在出这些错时,如果output_buffering=off的话,那么setcookie()是没办法使用的。
明白了吗?
当然可以,PHP中有个函数number_format,函数原型:
string number_format
(
float number,
int decimals,
string dec_point,
string thousands_sep
)
举个例子:
<?
$num = 12345678.9;
echo number_format($num).'<br>'; //会4舍5入
echo number_format($num,2).'<br>';
echo number_format($num,2,':').'<br>'; //这种写法是错误的
echo number_format($num,2,':','-').'<br>';
?>
输出结果为:
12,345,679
12,345,678,90
Warning: Wrong parameter count for number_format() in /data/homepage/test/number_format.php on line 5
12-345-678:90
这是IIS的安全模式有问题。这是所有CGI脚本在IIS下面运行都会遇到的问题。它先建立完全的HTML文件(不通过PHP解析)后通过使用者认证路径进入该页。当使用META标记重新导向PHP页面,或者连接到PHP页面时,PHP将确认正确的认证。当ISAPI模块可用时,这就不在是问题。这个问题不会影响到其它的NT WEB服务器。更多的信息请参考:
http://support.microsoft.com/support/kb/articles/q160/4/22.asp。
<html>
<?
echo "testing ... ";
session_start();
?>
</html>
输出为
testing ...
Warning: Cannot send session cookie - headers already sent by (output started at F:php2000test.php:2) in F:php2000test.php on line 4
Warning: Cannot send session cache limiter - headers already sent (output started at F:php2000test.php:2) in F:php2000test.php on line 4
分析:
主要原因,php.ini里有关于session 的定义,默认是使用 cookie
[session]
session.use_cookies = 1 ; whether to use cookies
这句表明使用 cookies 存储session 而 cookies的设置必须在正式 htm 之前,也就是只能在 header 里面才行,所以造成这个错误的发生
我们修改程序为
<?
echo "testing ... ";
session_start();
?>
同样错误,因为 echo 已经输出了
我们修改程序为
<?
$i=1;
session_start();
?>
运行正确表明在session_start的前面可以有计算语句,但是不能有输出语句
我尝试过修改
session.use_cookies = 0 ; whether to use cookies
但是没有成功,希望知道答案的朋友通知我,如何去掉cookie方式的 session
MySQL是可以远程调用的,但用户要有远程调用的权限。
在增加用户的时候有一个host 选项,是任何主机 或 locahost,你选用 any host,这样,你就可以远程调用了。
mysql_pconnect("192.168.0.2:3306","root","password");
这是因为PHP。INI中有一些设置不对,最有可能是就是有无效的DLL文件在内。但为什么会出现这些呢?
我在WIN32下,建了一个空的test.php文件。
然后执行c:php4php.exe test.php,此时我的php.ini的配置是正确的。屏幕输出为:
X-Powered-By: PHP/4.0.0
Content-type: text/html
咦,这不是显示在屏幕上的东西吗?是的。但这时这两行是作HTTP信息头的。是不会显示在浏览器中的。
现在我在php.ini中加载了php_mysql.dll。而这个文件是不存在的。
再次执行c:php4php.exe test.php,屏幕输出为:
Content-type: text/html
PHP Fatal error: Unable to load dynamic library 'php_mysql.dll'
此处还有些乱字符
X-Powered-By: PHP/4.0.0
Content-type: text/html
就是在Content-type: text/html之后,又出现了一些错误信息,所以才导致X-Powered-By: PHP/4.0.0 Content-type: text/html出现在屏幕上。而这其实本来是HTTP的信息头的。
那么我想在出这些错时,如果output_buffering=off的话,那么setcookie()是没办法使用的。
明白了吗?
当然可以,PHP中有个函数number_format,函数原型:
string number_format
(
float number,
int decimals,
string dec_point,
string thousands_sep
)
举个例子:
<?
$num = 12345678.9;
echo number_format($num).'<br>'; //会4舍5入
echo number_format($num,2).'<br>';
echo number_format($num,2,':').'<br>'; //这种写法是错误的
echo number_format($num,2,':','-').'<br>';
?>
输出结果为:
12,345,679
12,345,678,90
Warning: Wrong parameter count for number_format() in /data/homepage/test/number_format.php on line 5
12-345-678:90
这是IIS的安全模式有问题。这是所有CGI脚本在IIS下面运行都会遇到的问题。它先建立完全的HTML文件(不通过PHP解析)后通过使用者认证路径进入该页。当使用META标记重新导向PHP页面,或者连接到PHP页面时,PHP将确认正确的认证。当ISAPI模块可用时,这就不在是问题。这个问题不会影响到其它的NT WEB服务器。更多的信息请参考:
http://support.microsoft.com/support/kb/articles/q160/4/22.asp。
相关文章
PHP session_start()很慢问题分析与解决办法
本文章来给各位同学介绍一下关于PHP session_start()很慢问题分析与解决办法,希望碰到此问题的同学可进入参考。 最近在做东西的时候发现一个问题 有一个接口挂...2016-11-25PHP分布式框架如何使用Memcache同步SESSION教程
本教程主要讲解PHP项目如何用实现memcache分布式,配置使用memcache存储session数据,以及memcache的SESSION数据如何同步。 至于Memcache的安装配置,我们就不讲了,以前...2016-11-25- 这篇文章主要介绍了C#中的session用法 ,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-06-25
Python3使用Selenium获取session和token方法详解
这篇文章主要介绍了Python3使用Selenium获取session和token方法详解,需要的朋友可以参考下...2021-02-17- session和cookie是网站浏览中较为常见的两个概念,也是比较难以辨析的两个概念,但它们在点击流及基于用户浏览行为的网站分析中却相当关键。基于网上一些文章和资料的参阅,及作者个人的应用体会,对这两个概念做一个简单的阐述...2013-09-11
- session在php中是一个非常重要的东西,像我们用户登录一般都使用到session这个东西,相对于cookie来说session 要安全很多,同时我们购物车经常使用session来做临时的记录保存哦。使用session保存页面登录信息1、数据库连接...2015-10-21
- 这篇文章主要介绍了Vue使用axios引起的后台session不同操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-14
RestTemplate实现发送带headers的GET请求
这篇文章主要介绍了RestTemplate实现发送带headers的GET请求,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-10-30- PHP的session功能,一直为许多的初学者为难。就连有些老手,有时都被搞得莫名其妙。本文,将这些问题,做一个简单的汇总,以便大家查阅。 1. 错误提示 引用 代...2016-11-25
- 要设置php生存有效时间我们可以利用session_set_cookie_params函数或修改php.ini文件哦,下面小编来介绍一下。 第一种方法:session_set_cookie_params 函数原型 voi...2016-11-25
jsp使用sessionScope获取session案例详解
这篇文章主要介绍了jsp使用sessionScope获取session案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下...2021-08-29- 这篇文章主要介绍了C#实现简单获取及设置Session类,涉及C#针对session的设置及获取的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 下面小编就为大家带来一篇Node.js刷新session过期时间的实现方法推荐。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-05-20
- 发生场合:当左边对象是浮动的,右边对象采用外补丁的左边距来定位,则右边对象内的文本会离左边有3px的空白误差。 没加修正: 运行代码框 代码如下 复制代...2017-07-06
- 上一篇我们已经对Session 0 隔离有了进一步认识,如果在开发过程中确实需要服务与桌面用户进行交互,可以通过远程桌面服务的API 绕过Session 0 的隔离完成交互操作...2021-09-22
jQuery ajax全局函数处理session过期后的ajax跳转问题
这篇文章主要介绍了基于jQuery的全局ajax函数处理session过期后的ajax操作的相关资料,需要的朋友可以参考下...2016-06-12- 关于PHP session并发及session读写锁问题估计各大程序员都不会想到这个问题,因为一般情况我们不会使用session来做并发操作了,但有时也有可能用到,下面整理一个session并...2016-11-25
为什么出现“APACHE.EXE: cannot determine
由于Windows版本的Apache默认情况下不指定ServerName,所以运行时会出错。 解决的办法是修改Apache安装目录下的conf目录下的httpd.conf: - 搜索ServerName - 去掉前面...2016-11-25Nodejs中session的简单使用及通过session实现身份验证的方法
session的本质使用cookie来实现。本文给大家介绍Nodejs中session的简单使用及通过session实现身份验证的方法,对node.js session相关知识感兴趣的朋友一起学习吧...2016-02-09- php中session经常会出现一些很奇怪的问题,这些问题很多都是小细节的事情,对于php 初学者来说可能很难发现是什么原因,今天我们把几乎所有的session引起或出现的问题收集...2016-11-25