PHP $_SESSION[variable] 在下一页没有获得价值
Posted
技术标签:
【中文标题】PHP $_SESSION[variable] 在下一页没有获得价值【英文标题】:PHP $_SESSION[variable] is not getting value on next page 【发布时间】:2013-07-27 17:14:44 【问题描述】:这是一个登录表单,当用户名/密码与数据库值匹配时,我们会从该表单重定向到 login_success.php 页面。
Checklogin.php
<?php
include 'config.php';
// username and password sent from form
$myusername=$_POST['email'];
$mypassword=$_POST['password'];
// To protect mysql injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sql="SELECT * FROM drsignup WHERE email='$myusername' and password='$mypassword'";
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1)
// Register $myusername, $mypassword and redirect to file "login_success.php"
$_SESSION['email']=$myusername;
$_SESSION['password']=$mypassword;
header("location:login_success.php");
else
echo "Wrong Username or Password";
?>
Login_success.php
此表单为登录和会话开始的用户显示欢迎消息。在下面的代码中,我无法使用欢迎字符串获取 $_SESSION['email'] 值并显示未定义的索引电子邮件。
我试图从 session_id() 中收集 session_id;函数给出像 e9ubrn9v239o60tfalag6e6kt4 这样的值。 请让我知道为什么我无法在此处获取电子邮件 ID。如何将会话变量存储在我的所有 php 页面上。
<?php
session_start();
echo session_id();
SESSION_WRITE_CLOSE();
if(isset ($_SESSION['email']))
echo "Welcome $_SESSION['email']";
else
header("location:Drlogin.php");
?>
【问题讨论】:
首页上的session_start()
在哪里?
将session_start()
添加到配置文件中。
PHP session variables not carrying over to my logged in page, but session ID is的可能重复
简单说明一下,为什么要在会话中保存密码?不建议这样做。
【参考方案1】:
您需要在Checklogin.php
中添加session_start()
。您需要在每个使用会话的页面上启动会话。
【讨论】:
以上是关于PHP $_SESSION[variable] 在下一页没有获得价值的主要内容,如果未能解决你的问题,请参考以下文章
将 SQL 查询的结果存储在 PHP $variable 中