用mysql保存session问题 Session的输出应该放在任何HTTP输出之前 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 错误不是已经很明显了吗?你好像重复发送/输出了header:"headers already sent "仔细看看代码,看看是不是? 我在test.php中是这样开始的:<?include("session_mysql.php");session_start();哪里有什么输出? 我在test.php中是这样开始的:<?include("session_mysql.php");session_start();哪里有什么输出? 数据库中已经有值写入了,不过sesskey=0 <?phpsession_start();include("session_mysql.php");?>换成这样试试。 换后:Fatal error: session_start(): Failed to initialize storage module. in F:\PHP\test\session_test3.php on line 2 去掉session_mysql.php的第86行(?>)后面的空格和空行即可 去掉session_mysql.php的第86行(?>)后面的空格和空行即可 多谢 xuzuning(唠叨) 确实没错了。不过又有了个问题了:在数据库中sesskey都是等于0,value是这样的形式:count|i:7;bbs|s:6:"Flying";为什么? xuzuning(唠叨) 向你学习,为什么会是这样?去掉后面的 ?>和空个空行就可以了。 在数据库中sesskey都是等于0,value是这样的形式:count|i:7;bbs|s:6:"Flying";为什么?还没解决啊 我用的函数,没有问题。改自php手册。CREATE TABLE `sessions` ( `sessionid` varchar(32) NOT NULL default '', `lastupdated` datetime NOT NULL default '0000-00-00 00:00:00', `datavalue` text NOT NULL, PRIMARY KEY (`sessionid`), KEY `lastupdated` (`lastupdated`)) TYPE=MyISAM;<?phpfunction mysess_open($aSavaPath, $aSessionName){ global $aTime; $aTime=600; mysess_gc( $aTime ); return True;}function mysess_close(){ return True;}function mysess_read( $aKey ){ $query = "SELECT datavalue FROM sessions WHERE sessionid='$aKey'"; $res = mysql_query($query); if(mysql_num_rows($res) == 1) { $r = mysql_fetch_array($res); return $r['datavalue']; } else{ $query = "INSERT INTO sessions (sessionid, lastupdated, datavalue) VALUES ('$aKey', NOW(), '')"; mysql_query($query); return ""; }}function mysess_write( $aKey, $aVal ){ $aVal = addslashes( $aVal ); $query = "UPDATE sessions SET datavalue = '$aVal', lastupdated = NOW() WHERE sessionid = '$aKey'"; mysql_query($query); return True;}function mysess_destroy( $aKey ){ $query = "DELETE FROM sessions WHERE sessionid = '$aKey'"; mysql_query($query); return True;}function mysess_gc( $aMaxLifeTime ){ $query = "DELETE FROM sessions WHERE UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(lastupdated) > $aMaxLifeTime"; mysql_query($query); return True;}session_set_save_handler("mysess_open", "mysess_close", "mysess_read", "mysess_write", "mysess_destroy", "mysess_gc");?> to:ustb(偶然) 你用的这个函数跟我上面写到的实际没什么差别。问题是我的session_id怎么会是0呢?怎么解决? 郁闷了 如何截取前三个数字或都文字 ajax提交东西又要有权限认证,这个你们是怎么解决的? 救命啊。包含文件问题 哪位在linux8.0下成功安装GD-2.0.28? php wml表单中文输入的问题 $_GET["str"]为什么这样的形式不能使用? mail的问题 图片如何分开显示呀?高手请进 linux平台下面,能同时支持php,asp吗,如果可以,能不能详细指点。 在线等候! 用php发送邮件问题 iis配置完php后,浏览php页面使出现以下错误
<?
include("session_mysql.php");
session_start();
哪里有什么输出?
<?
include("session_mysql.php");
session_start();
哪里有什么输出?
不过sesskey=0
session_start();
include("session_mysql.php");?>换成这样试试。
Fatal error: session_start(): Failed to initialize storage module. in F:\PHP\test\session_test3.php on line 2
确实没错了。
不过又有了个问题了:
在数据库中sesskey都是等于0,value是这样的形式:count|i:7;bbs|s:6:"Flying";为什么?
CREATE TABLE `sessions` (
`sessionid` varchar(32) NOT NULL default '',
`lastupdated` datetime NOT NULL default '0000-00-00 00:00:00',
`datavalue` text NOT NULL,
PRIMARY KEY (`sessionid`),
KEY `lastupdated` (`lastupdated`)
) TYPE=MyISAM;
<?phpfunction mysess_open($aSavaPath, $aSessionName)
{
global $aTime;
$aTime=600;
mysess_gc( $aTime );
return True;
}function mysess_close()
{
return True;
}function mysess_read( $aKey )
{
$query = "SELECT datavalue FROM sessions WHERE sessionid='$aKey'";
$res = mysql_query($query);
if(mysql_num_rows($res) == 1)
{
$r = mysql_fetch_array($res);
return $r['datavalue'];
} else{
$query = "INSERT INTO sessions (sessionid, lastupdated, datavalue) VALUES ('$aKey', NOW(), '')";
mysql_query($query);
return "";
}
}function mysess_write( $aKey, $aVal )
{
$aVal = addslashes( $aVal );
$query = "UPDATE sessions SET datavalue = '$aVal', lastupdated = NOW() WHERE sessionid = '$aKey'";
mysql_query($query);
return True;
}function mysess_destroy( $aKey )
{
$query = "DELETE FROM sessions WHERE sessionid = '$aKey'";
mysql_query($query);
return True;
}function mysess_gc( $aMaxLifeTime )
{
$query = "DELETE FROM sessions WHERE UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(lastupdated) > $aMaxLifeTime";
mysql_query($query);
return True;
}session_set_save_handler("mysess_open", "mysess_close", "mysess_read", "mysess_write", "mysess_destroy", "mysess_gc");
?>
你用的这个函数跟我上面写到的实际没什么差别。问题是我的session_id怎么会是0呢?怎么解决?