我正在设置登录表单。
预期结果:
成功登录后页面上的Echo会话用户名。
实际结果:
登录成功。会话用户名不回显。看起来好像会话用户名不存在或者没有持久到下一页。
下面的代码有问题吗?
的login.php
...
session_start();
if (mysql_num_rows($result) ==1)
{
session_regenerate_id();
$row = mysql_fetch_assoc($result);
$profileid = $row['userid'];
$profile = $row['username'];
//Set session
$_SESSION['profileid'] = $profileid;
//Put name in session
$_SESSION['profile'] = $profile;
//Close session writing
session_write_close();
//Redirect to user's page
header("location: index.php?msg=userpage");
exit();
}
...
的index.php
...
<?php
session_start();
if($_GET['msg']=="userpage")
{
echo $_SESSION['profile'];
}
...
编辑:
把session_start放在php标签中。
将HTML更改为INDEX.PHP
“如果”支架关闭。
在LOGIN.PHP中更改为if。
将用户名更改为用户页面
答案 0 :(得分:0)
您不需要打开/关闭会话,这不值得额外的代码行。我也不知道你为什么要重新生成会话ID。
但是,有一点是你的HTML文件构造糟糕,而且几乎看起来session_start()不在任何PHP标签内,因此它甚至不被视为代码。
答案 1 :(得分:0)
首先, HTML 尚未 PHP ,因为它只涉及PHP标记。
将while
替换为if
因为您只想设置$ _SESSION变量一次。
最后一部分你要找的是
<?php
session_start(); //at the beginning of your script
if($_GET['msg']=="username")
{
echo $_SESSION['profile'];
}
?>
确保在打开脚本上的第一个<?php
标记之前消除所有空格,因为这会产生潜在的标题错误。
答案 2 :(得分:0)
关闭html文件中的if循环
<强>编辑:强>
我在我的页面中完成了这个简单的代码,并按照会话概念进行了概述代码工作正常...相应地进行更正
<强> p1.php 强>
<?php
session_start();
//Put name in session
$_SESSION['profile'] = "Pranav";
//Close session writing
//Redirect to user's page
header("location: p2.php?msg=userpage");
exit();
?>
<强> p2.php 强>
<?php
session_start();
if($_GET['msg']=="userpage")
{
echo $_SESSION['profile'];
}
?>
FOR NEW SESSION ID 使用这个
$a = session_id();