为什么Session值不被传递?

一共有三个主要文件,index.php check.php test1.php 一个登录类文件与一个数据库配置文件:login.php config.php

在Check.php里Echo还能得到Session[Username]的值,但转向到Test1.php时却什么值都没了。不管用哪种方式转向。
以下是代码片断……

index.php

PHP code
<?php include("config.php"); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>首页</title> <link href="images/admin.css" rel="stylesheet" type="text/css" /> </head> <body> <?php $username=$_SESSION["username"]; echo $username."<br>"; if($username==""){//如果没有登陆显示登陆口 ?> <form action="check.php" method="post"> <div align="center"> 用户名:<input name="username" type="text" class="input" /> 密码:<input name="password" type="password" class="input" /> <input type="submit" name="Submit" value="登录" class="btn" /> </div> </form> <?php } else//否则显示登陆信息 { echo "用户".$_SESSION["username"]."login successfully"; } ?> </body> </html>


check.php
PHP code
<?php include "config.php"; $username=$_POST["username"]; $password=$_POST["password"]; if($conn->isLoggedin()) { //echo $conn->username." has aready logged in"; header("Location: index.php"); } elseif($conn->userAuth($username,$password)) { $conn->setSession(); $username=$_SESSION["username"]; //echo $conn->username." login success!!"; //这里可以取到值 header("Location:test1.php"); //echo "<script language="javascript">top.location="test1.php";</script>"; } ?>


test1.php
PHP code
<?php $username=$_SESSION["username"]; echo "Session值 ".$username." 正在传递ing....<br>";//这边的值就是收不到。 ?>

数据挖掘工具



Login登录类是被include在config.php里。config.php有使用$conn=new Login()。

转向就看了一

引用 1 楼 tantaiyizu 的回复:
转向就看了一


??没写完吗?

session_start()试试

引用 3 楼 fxs_2008 的回复:
session_start()试试

在哪里Session_start()?
在$conn-> setSession();的时候已经有Session_start()过了。
也试过在Test1.php页面里加上Session_start(),但仍无效。

config.php
  里面有输出没?
header前面不能包含任何输出的内容

config.php

PHP code
<?php 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的内容

再附一个“login.php”的代码

login.php

PHP code
<? /* * 名称:CnkknD PHP Login Class * 描述:PHP用于登录的类,基于MySQL * 作者:Daniel King,cnkknd@163.com * 日期: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"; } } ?>
数据挖掘研究院

= =我也被问住了,替你顶一下!

晕了,用Opera浏览器查看就没问题

用IE8和FOX查看就不行~~~

uniqid 是不断在改变的,你怎么能用它做sid呢?
除非它只被调用了一次.

test1.php 也需要session_start()的.
Php并不能在这样的情况下保持跨页面的会话,所以 不能在A页面start了,在B页面就不用start了.

服务器设置了

引用 11 楼 nirvana52 的回复:
服务器设置了


怎么设置才对?

我在单一入口文件index.php中,统一设置了star后,就没问题了~

在公共文件中写入session.start()..

session丢失的问题吧,在session_start();前加上session_id(SID);

详细看我的blog吧

http://www.5dhome.net/myblog/read.php?154

Create By Any-Extract(WL-AE)

数据挖掘工具

[数据挖掘专家] [数据挖掘研究院] [数据挖掘论坛] [数据挖掘实验室]
上一篇:沈阳地区求职!
下一篇:sohu公司诚聘php开发工程师
最新评论共有 0 位网友发表了评论 , 查看所有评论
发表评论( 不能超过250字,需审核,请自觉遵守互联网相关政策法规。 )
匿名?
数据挖掘网站导航 数据挖掘论坛导航
  • 数据挖掘工具
  • 数据挖掘论坛
  • DataCruncher - Cognos
  • MineSet - MathSoft
  • Intelligent Miner - GainSmarts
  • Sqlserver - SAS - Clementine
  • CART - Weka - WizSoft
  • NeuroShell - ModelQuest
  • data mining tools - Darwin
  • 数据挖掘交友
  • 数据挖掘博客
  • 数据挖掘工具
  • 数据挖掘资源
  • 数据挖掘技术算法
  • 数据挖掘相关期刊、会议
  • 研究院联盟合作专区
  • 数据挖掘基础与相关技术
  • 数据挖掘厂商与就业
  • 数据挖掘研究者乐园
  • 知名厂商数据挖掘工具资料
  • 国内数据挖掘实验室
  • Foreign Data Mining Lab
  • 热点关注
  • 揭秘成为最牛程序员的五大要诀
  • MYSQL错误:Illegal mix of collations (lat
  • PHP程序不适用大型系统的九大原因
  • 上海酒店公寓,上海短租公寓,上海短租房,上
  • 安装php5.2.5和mysql5.045后phpmyadmin报错
  • 福利彩票幸运号码自动生成器
  • 关于APACHE的配置文件httpd.conf
  • 国际:身处两难境地,PHP 该走向何方?
  • PHP跳转的方法?
  • 函式:preg_match_all()
  • 论坛最新话题
  • Foundations of Statistical Natural Langu
  • Game Theory meet Data Mining: A Recent P
  • System Building: How does it help or hin
  • 数据挖掘与Clementine培训
  • 新手报到
  • 求 SASEM 客户流失预测分析
  • 数据挖掘工程师/搜索研究院—北京——无线
  • 数据挖掘入门介绍(如何着手数据挖掘)
  • Information Overload Survey Results
  • The INEX 2005 Workshop on Element Retrie
  • 相关资讯
  • Module mod_log_config
  • 圣殿骑兵PHP 2007年Web开发技术预言 (四)
  • 圣殿骑兵PHP 2007年Web开发技术预言 (三)
  • 圣殿骑兵PHP 2007年Web开发技术预言 (二)
  • 圣殿骑兵PHP 2007年Web开发技术预言 (一)
  • 一棵php的类树(支持无限分类)
  • 通过对php一些服务器端特性的配置加强php的
  • 如何使用动态共享对象的模式来安装PHP
  • 提升PHP执行速度全攻略(上)
  • phpBBBBcode处理的漏洞
  • 数据挖掘实验室资料
  • 数据挖掘博客地址
  • 数据挖掘实验室网站地址
  • Prepare for Medicare audits by using dat
  • 注册成为SAS用户与爱好者俱乐部会员
  • 水南梅
  • 明日烟
  • 新人报道
  • 下载
  • 厦门服务器托管,450元/月—0592-5177319 高
  • 买空间送域名--0592-5177319 高静