php5.3.3的环境下,没有在代码开头使用session_start();也不会报错了,这是为什么?
解决方案 »
- 如何使用PHP编写程序监测、控制局域网内的即时通讯情况
- 怎样不让fopen函数 返回 错误信息!
- 去除重复的数据。
- 关于传值的问题?(或许不是传值)大伙帮忙一下
- 关于远程上传文件的奇怪问题~~~~给分100先
- 在form表单中有这种PHP的用法吗?<input type="text" onKeyPress="<?php a(); ?>" name="show">,详情请进。
- HTML格式入库问题
- 在windows2k下有什么好的文本编辑器来写php?
- "聊聊"网站是怎样建的?用拉什么技术,可以即使聊天?
- 请教!!!!!!!
- 急!哪位大侠能帮帮我啊...
- 求助,关于linux下配置zend debugger的一个问题
在php 页面中phpinfo() 看下session 是否存在。session 的path 是否设置。具体的还要自己检查。
1.php.ini中的output_buffering=off 改成output_buffering=4096
2.php.ini中的session.save_path是否设置好了
3.pgp.ini中的session.auto_start = 0 改成session.auto_start = 1
4.php代码session_start() 前面不能有输出,而且必须放在首行;在session_start()的php代码之前的任何字符都被看作headers。
所以解决方法是:
将<? session_start();.......?>放到文件首,并且<? 前面不能有任何字符
运行不会报错,1也显示在页面上
所以不是设置的问题,疑惑是为什么session_start()不在开头,也不报错
echo "1";
session_start(); if(@$_GET[out]){
//session_destroy();
unset($_SESSION['name']);
unset($_SESSION['password']);
}
if (@$_POST[name]&&@$_POST[password]) {
$_SESSION['name']=$_POST['name'];
$_SESSION['password']=$_POST['password'];
}
if(@$_SESSION[name]&&@$_SESSION[password]){
echo "登陆成功"."<br>"."用户名:".@$_SESSION[name]."<br>"."密码:".@$_SESSION[password]."<br>"; echo "<a href='session.php?out=out'>退出登录</a> "; }
?> <form action="session.php" method="post" > 用户名:<input type="text" name="name" /><br> 密 码:<input type="password" name="password" /><br>
<input type="submit" value="登录"/> </form>
我的环境下正常运行,前面还输出个1