一旦分配给会话类的属性,就无法检索会话值[关闭]
Posted
技术标签:
【中文标题】一旦分配给会话类的属性,就无法检索会话值[关闭]【英文标题】:Unable to retrieve Session Value once assigned to attribute of the session class [closed] 【发布时间】:2018-02-07 10:23:44 【问题描述】:各位,我无法检索会话值。我已经尝试了一整天来解决这个问题,但失败了。我的情况是这样的:-
我在实例化时创建一个会话类,我通过构造函数自动启动会话。我从登录表单中获取两个值“用户名”和“密码”,然后在获取这些值后,我将它们分配给会话类属性,如下所示
$username=$_POST['username'];
$password=$_POST['password'];
$session_object->session_username=$username;
$session_object->session_password=$password;
。现在只要我回显 $session_object->session_username;在登录表单上显示值的任何地方。但是当我尝试在任何其他页面上显示该值时,它什么也没有显示。我是一名初学者 Web 开发人员,但我了解到会话存储在服务器端,并且可以在应用程序的任何位置访问。
我只有一个 Session 类的对象 $session_object,我不再创建任何对象。 请帮助您的帮助将不胜感激。使用 php 7.1,XAMPP 服务器。
【问题讨论】:
称它为“$session”并不能使它成为一个 php 会话 你的$session_object
在哪里声明和分配?
我的 $session_object 在 session.php 中声明。我有一个在实例化时自动启动 session_start() 的构造函数
【参考方案1】:
您可以只使用 $_SESSION 全局数组。但首先你必须调用 session_start()。
session_start();
if ($_POST['username'] && $_POST['password'])
$username = $_POST['username'];
$password = $_POST['password'];
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
else
$username = $_SESSION['username'];
$password = $_SESSION['password'];
echo "Username is '$username', password is '$password'.";
http://php.net/manual/en/session.examples.basic.php
【讨论】:
为什么是$password = $_POST['password']; $_SESSION['password'] = $password;
而不是$_SESSION['password'] = $_POST['password'];
??
因为下面使用了$password,无论如何。
@ili4 ***为什么是 $_SESSION['password'] ? *** 不好的做法!
当然!但问题是如何在会话中存储价值。
是的,如果我不使用类会话并手动存储会话,即程序 php。有用。唯一的问题是它应该也可以在 oop 中工作,但它并不可悲以上是关于一旦分配给会话类的属性,就无法检索会话值[关闭]的主要内容,如果未能解决你的问题,请参考以下文章