PHP,同一窗口,不同页面,每个页的SESSION_ID都不同是怎么回事?

login.htmllogin.phpwelcome.php--login.php--<?phpsession_start();$str_UserName=$_POST[... login.html login.php welcome.php
--login.php--
<?php

session_start();

$str_UserName = $_POST['UserName'];
$str_Password = $_POST['Password'];

$conn=mysqli_connect('lpdfeom','sd3dsad','12dsfe3','wfe3cdsm');

if(empty($conn))
{
die("数据库连接失败");
}
else
{

$conn->query('set names utf8');

$sqlcmd="select * from Members where UserName='".$str_UserName."'and Password='".$str_Password."'";

$result=$conn->query($sqlcmd);
$row=$result->fetch_row();

if($row)
{

$_SESSION["UserName"]=$username;
$_SESSION["Password"]='true';
echo "登录成功";
}
else
{
$msg="用户名或密码错误";
$_SESSION['msg']=$msg;

echo "用户名或密码错误";
}
}

?>
---welcome.php-
<?php

if($_SESSION["Password"]=='true')
{
echo 'Password:'.$_SESSION["Password"].'<br/>';
echo '欢迎回来!';
}
else
{echo 'Password:'.$_SESSION["Password"].'<br/>';
echo '没有登录<br/>';
echo 'ID:'.session_id().'<br/>';
}
?>
------------------
在login.html填写正确的账户密码提交给login.php后,login.php读取数据库成功核对并显示登陆成功。之后在地址栏输入welcome.php的地址,得到的页面确实新的SESSION_ID,这是为什么?
------login.php----
<?php

session_start();

$str_UserName = $_POST['UserName'];
$str_Password = $_POST['Password'];

$conn=mysqli_connect('12','23','33','44');

if(empty($conn))
{
die("数据库连接失败");
}
else
{

$conn->query('set names utf8');

$sqlcmd="select * from Members where UserName='".$str_UserName."'and Password='".$str_Password."'";

$result=$conn->query($sqlcmd);
$row=$result->fetch_row();

if($row)
{
$_SESSION["Online"]='true';
$_SESSION['msg']="登录成功";
echo "<a href='welcome.php'>进入</a>";
}
else
{
$_SESSION['msg']="登陆失败";

echo "<a href='welcome.php'>进入</a>";
}
}

?>
-------welcome.php------

<?php

session_start();
echo $_SESSION["msg"].'<br/>';

if(isset($_SESSION['Online']))
{
echo 'Online:'.$_SESSION["Online"].'<br/>';
}
else
{echo 'Online:'.$_SESSION["Online"].'<br/>';
}
?>
展开
 我来答
小葵啦
2012-07-04 · TA获得超过669个赞
知道小有建树答主
回答量:200
采纳率:0%
帮助的人:121万
展开全部
你应该在初始化文件中加载
session_start();
这样每个页面都自动开启session 就不会出现你说的那个问题。
sessionid是自动生成的当然不一样了
更多追问追答
追问
请问初始化文件指的是哪个?PHPINI文件吗?
追答
简单来说就是你的项目中 每执行一段代码都会先运行初始化文件里的代码  这样说你明白吗
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
飞扬舞侠
2012-07-03 · TA获得超过271个赞
知道小有建树答主
回答量:294
采纳率:0%
帮助的人:218万
展开全部
welcome.php代码中前面加上session_start();
你在login.php中输出下
$_SESSION["Password"]
值看看
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mr__pegasus
2012-07-03 · 超过24用户采纳过TA的回答
知道答主
回答量:75
采纳率:66%
帮助的人:31.8万
展开全部
你的welcome.php页面session没有启用。
更多追问追答
追问
加上
session_start();
也不行,这是后来删除的。
现在的问题就是login.php页面注册的SESSION变量,在welcome.php页面里读不出来,不知道是什么原因。
追答
检查下你的运行时设置(ini_get),
session.use_cookies
session.gc_probability
session.gc_maxlifetime
以及浏览器是否禁用了cookie
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-07-03
展开全部
SessionID生成的规则是有加上时间戳的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式