为什么Session值不被传递? 在哪里Session_start()?在$conn->setSession();的时候已经有Session_start()过了。也试过在Test1.php页面里加上Session_start(),但仍无效。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 config.php 里面有输出没?header前面不能包含任何输出的内容 config.php<?phpinclude "Login.php";$server="localhost";$dbport="3306";$username="root";$password="123456";$database="dbname";//$conn=mysql_connect($server,$username,$password) or die($couldNotConnectMysql);//mysql_select_db($database,$conn) or die($couldNotOpenDatabase);$conn=new Login($server,$dbport,$username,$password,$database);$conn->error_report=true;$conn->cookietime=3600*24*30;?>这个是Config.php的内容 再附一个“login.php”的代码login.php<?/** 名称:CnkknD PHP Login Class* 描述:PHP用于登录的类,基于MySQL* 作者:Daniel King,[email protected]* 日期:2003/8/25*/class Login{var $username; //用户名var $password; //密码var $uid; //用户idvar $groupid; //用户级别var $authtable="members"; //验证用数据表var $usecookie=true; //使用cookie保存sessionidvar $cookiepath='/'; //cookie路径var $cookietime=108000; //cookie有效时间var $err_mysql="mysql error"; //mysql出错提示var $err_username="username invalid"; //用户名无效提示var $err_user="user invalid"; //用户无效提示(被封禁)var $err_password="password error"; //密码错误提示var $err; //出错提示var $errorreport=false; //显示错误function Login($dbserv,$dbport,$dbuser,$dbpass,$dbname) //构造函数,连接数据库{ if(@mysql_pconnect($dbserv.":".$dbport,$dbuser,$dbpass)) { mysql_select_db($dbname); } else { $this->errReport($this->err_mysql); $this->err=$this->err_mysql; }}function isLoggedin() //判断是否登录{ if(isset($_COOKIE['sid'])) //如果cookie中保存有sid { session_id($_COOKIE['sid']); session_start(); $this->username=$_SESSION['username']; $this->uid=$_SESSION['uid']; $this->groupid=$_SESSION['groupid']; return true; } else //如果cookie中未保存sid,则直接检查session { session_start(); if(isset($_SESSION['username'])) return true; } return false;}function userAuth($username,$password) //用户认证{ $this->username=$username; $this->password=$password; $query="select * from `".$this->authtable."` where `username`='$username';"; $result=mysql_query($query); if(mysql_num_rows($result)!=0) //找到此用户 { $row=mysql_fetch_array($result); if($row['publicmail']==1) //此用户被封禁 { $this->errReport($this->err_user); $this->err=$this->err_user; return false; } elseif(md5($password)==$row['password']) //密码匹配 { $this->uid=$row['uid']; $this->groupid=$row['groupid']; return true; } else //密码不匹配 { $this->errReport($this->err_password); $this->err=$this->err_password; return false; } } else //没有找到此用户 { $this->errReport($this->err_username); $this->err=$this->err_username; return false; }}function setSession() //置session{ $sid=uniqid('sid'); //生成sid session_id($sid); session_start(); $_SESSION['username']=$this->username; //给session变量赋值 $_SESSION['uid']=$this->uid; //.. $_SESSION['groupid']=$this->groupid; //.. if($this->use_cookie) //如果使用cookie保存sid { if(!setcookie('sid',$sid,time()+$this->cookietime,$this->cookiepath)) $this->errReport("set cookie failed"); } else setcookie('sid','',time()-3600); //清除cookie中的sid}function userLogout() //用户注销{ session_start(); unset($_SESSION['username']); //清除session中的username if(setcookie('sid','',time()-3600)) //清除cookie中的sid return true; else return false;}function errReport($str) //报错{ if($this->error_report) echo "ERROR: $str";}}?> 晕了,用Opera浏览器查看就没问题用IE8和FOX查看就不行~~~ uniqid 是不断在改变的,你怎么能用它做sid呢?除非它只被调用了一次.test1.php 也需要session_start()的.Php并不能在这样的情况下保持跨页面的会话,所以 不能在A页面start了,在B页面就不用start了. 我在单一入口文件index.php中,统一设置了star后,就没问题了~ 在公共文件中写入session.start().. session丢失的问题吧,在session_start();前加上session_id(SID);详细看我的blog吧http://www.5dhome.net/myblog/read.php?154 小爱同学,session会自己生成id不需要你 $sid=uniqid('sid'); //生成sid session_id($sid); php语句解释 有没有开发web控件的资料与书籍推荐 类的调用问题 帮我改一下这个php.显示ip的问题: 一道session 细节测试题 求助: 添加数据到数据库中产生了 乱码 急!!php页面加载不完全的问题,在线等 兄弟们给点意见一个报价 关于PHP的学习 200分求救:做一个需要实时更新报价的WEB程序 请问,如果用PHP完成MSN的登陆和发送?~谢谢! 服务器区没什么人气,借地方问个问题。图片服务器的硬件配置一般最低是什么要求
里面有输出没?
header前面不能包含任何输出的内容
include "Login.php";
$server="localhost";
$dbport="3306";
$username="root";
$password="123456";
$database="dbname";
//$conn=mysql_connect($server,$username,$password) or die($couldNotConnectMysql);
//mysql_select_db($database,$conn) or die($couldNotOpenDatabase);
$conn=new Login($server,$dbport,$username,$password,$database);
$conn->error_report=true;
$conn->cookietime=3600*24*30;
?>
这个是Config.php的内容
<?
/*
* 名称:CnkknD PHP Login Class
* 描述:PHP用于登录的类,基于MySQL
* 作者:Daniel King,[email protected]
* 日期:2003/8/25
*/class Login
{
var $username; //用户名
var $password; //密码
var $uid; //用户id
var $groupid; //用户级别var $authtable="members"; //验证用数据表var $usecookie=true; //使用cookie保存sessionid
var $cookiepath='/'; //cookie路径
var $cookietime=108000; //cookie有效时间var $err_mysql="mysql error"; //mysql出错提示
var $err_username="username invalid"; //用户名无效提示
var $err_user="user invalid"; //用户无效提示(被封禁)
var $err_password="password error"; //密码错误提示var $err; //出错提示
var $errorreport=false; //显示错误function Login($dbserv,$dbport,$dbuser,$dbpass,$dbname) //构造函数,连接数据库
{
if(@mysql_pconnect($dbserv.":".$dbport,$dbuser,$dbpass))
{
mysql_select_db($dbname);
}
else
{
$this->errReport($this->err_mysql);
$this->err=$this->err_mysql;
}
}function isLoggedin() //判断是否登录
{
if(isset($_COOKIE['sid'])) //如果cookie中保存有sid
{
session_id($_COOKIE['sid']);
session_start();
$this->username=$_SESSION['username'];
$this->uid=$_SESSION['uid'];
$this->groupid=$_SESSION['groupid'];
return true;
}
else //如果cookie中未保存sid,则直接检查session
{
session_start();
if(isset($_SESSION['username']))
return true;
}
return false;
}function userAuth($username,$password) //用户认证
{
$this->username=$username;
$this->password=$password;
$query="select * from `".$this->authtable."` where `username`='$username';";
$result=mysql_query($query);
if(mysql_num_rows($result)!=0) //找到此用户
{
$row=mysql_fetch_array($result);
if($row['publicmail']==1) //此用户被封禁
{
$this->errReport($this->err_user);
$this->err=$this->err_user;
return false;
}
elseif(md5($password)==$row['password']) //密码匹配
{
$this->uid=$row['uid'];
$this->groupid=$row['groupid'];
return true;
}
else //密码不匹配
{
$this->errReport($this->err_password);
$this->err=$this->err_password;
return false;
}
}
else //没有找到此用户
{
$this->errReport($this->err_username);
$this->err=$this->err_username;
return false;
}
}function setSession() //置session
{
$sid=uniqid('sid'); //生成sid
session_id($sid);
session_start();
$_SESSION['username']=$this->username; //给session变量赋值
$_SESSION['uid']=$this->uid; //..
$_SESSION['groupid']=$this->groupid; //..
if($this->use_cookie) //如果使用cookie保存sid
{
if(!setcookie('sid',$sid,time()+$this->cookietime,$this->cookiepath))
$this->errReport("set cookie failed");
}
else
setcookie('sid','',time()-3600); //清除cookie中的sid
}function userLogout() //用户注销
{
session_start();
unset($_SESSION['username']); //清除session中的username
if(setcookie('sid','',time()-3600))
//清除cookie中的sid
return true;
else
return false;
}function errReport($str) //报错
{
if($this->error_report)
echo "ERROR: $str";
}
}
?>
除非它只被调用了一次.test1.php 也需要session_start()的.
Php并不能在这样的情况下保持跨页面的会话,所以 不能在A页面start了,在B页面就不用start了.
不需要你
$sid=uniqid('sid'); //生成sid
session_id($sid);