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/>';
}
?> 展开
--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/>';
}
?> 展开
4个回答
展开全部
你应该在初始化文件中加载
session_start();
这样每个页面都自动开启session 就不会出现你说的那个问题。
sessionid是自动生成的当然不一样了
session_start();
这样每个页面都自动开启session 就不会出现你说的那个问题。
sessionid是自动生成的当然不一样了
更多追问追答
追问
请问初始化文件指的是哪个?PHPINI文件吗?
追答
简单来说就是你的项目中 每执行一段代码都会先运行初始化文件里的代码 这样说你明白吗
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
welcome.php代码中前面加上session_start();
你在login.php中输出下
$_SESSION["Password"]
值看看
你在login.php中输出下
$_SESSION["Password"]
值看看
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的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生成的规则是有加上时间戳的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询