标签: session-variables

PHP 会话变量未定义

我有这个会话变量,当用户使用以下命令登录时,我试图将其设置为访问级别:

 $accessquery = mysql_query("SELECT roleid FROM person WHERE email = '". $email ."'");
 $access = mysql_fetch_array($accessquery);

 $_SESSION['Access'] = $access;
Run Code Online (Sandbox Code Playgroud)

但是它说“访问”未定义,问题是什么?

编辑*

if (($_SESSION['Access']) == "2")
Run Code Online (Sandbox Code Playgroud)

此处出现错误

编辑*

已调用会话开始。

php session-variables

2
推荐指数
1
解决办法
2万
查看次数

从另一个 php 文件访问 SESSION 变量

我想访问我在另一个 php 文件中声明的会话变量。

我怎样才能做到这一点?

这就是我所做的。

测试.php

$_SESSION['SESS_VERSION'] = $member['Version'];
session_write_close();
header('location: '.$_SESSION['SESS_VERSION']);
Run Code Online (Sandbox Code Playgroud)

该会话变量正在工作,我已正确重定向到另一个页面。

例如在该页面上:

test2.php
Run Code Online (Sandbox Code Playgroud)

我正在从 javascript 调用 php 脚本来返回 JSON 格式的数据。

我在该脚本中试图做的test3.php是访问会话变量test.php

这是代码:

<?php
header("Content-type: application/json; charset=UTF-8");

echo '{ "results" : [ ';

$result = dbMySql::Exec("SELECT 
    m.data1
    v.data2,
    k.data3
FROM {$_SESSION['SESS_MAIN_BASE']} m, {$_SESSION['SESS_SECOND_BASE']} v, {$_SESSION['SESS_THIRD_BASE']} k");
$result_array = array();
?>
Run Code Online (Sandbox Code Playgroud)

为什么我无法访问此 php 页面上的任何会话变量?也许我的语法不正确。但这是我收到的错误:

Warning: Cannot modify header information - headers already sent 
Run Code Online (Sandbox Code Playgroud)

当然还有变量为空的错误。

php session session-variables

2
推荐指数
1
解决办法
1万
查看次数

struts2中如何设置和销毁会话变量?

我是 Struts2 的初学者。我在 PHP 中使用,在记录时将身份验证保存在会话变量中,我可以在注销后销毁该变量。我想知道如何在 Struts2 中执行相同的过程:在登录时设置会话变量并在注销时销毁它。万分感谢。

更新(附加解决方案)

除了有用的答案和评论之外,我们还可以使用:

session.remove("session_var_name"); // instead of session.clear();
Run Code Online (Sandbox Code Playgroud)

删除一个确切的会话变量,而不是删除所有会话变量。谢谢你们。

struts2 session-variables destroy

2
推荐指数
1
解决办法
2万
查看次数

应用程序和 Web 浏览器的公共会话

我对应用程序和网络浏览器之间的会话维护有疑问。

我正在开发一款 iPhone 应用程序,并且还有一个与该应用程序相同的网站(在 WordPress 中)。

我的问题是,如果用户从同一移动设备登录应用程序,是否可以在移动网络浏览器中显示用户登录信息?

简而言之,我想知道这个session存储在哪里?在应用程序中还是在设备中?如果它在设备中,那么我如何检查网络浏览器是否相同?

iphone wordpress session web-services session-variables

2
推荐指数
1
解决办法
2503
查看次数

Laravel - 访问 API 中的会话变量

我有一个简单的应用程序,我希望能够更改语言。在我的主控制器中我有:

session(['applocale' => 'en']);
$request->session()->put('applocale','en');
Run Code Online (Sandbox Code Playgroud)

我知道这两行是相同的,但我想确保它们都不起作用。

然后我有API方法:

public function switchLang(Request $request, $lang)
{
    error_log("Current language is: " . session('applocale'));
    error_log("Current language is: " . $request->session()->get('applocale'));
}
Run Code Online (Sandbox Code Playgroud)

这里 error_log 没有显示任何内容。

我正在关注这个线程:Laravel 5.3 - How to add Sessions to APIwithout CSRF? 在 Debugbar 中,我可以看到我的 API 函数已命中中间件“会话”,但会话变量不存在。

这就是我的“季节”中间件的样子:

'sessions' => [
    \Illuminate\Session\Middleware\StartSession::class,
]
Run Code Online (Sandbox Code Playgroud)

它实际上同时触及“api”和“sessions”中间件。

有什么想法我做错了吗?

php api session-variables laravel-5

2
推荐指数
1
解决办法
4150
查看次数

PHP页面之间丢失的会话数​​据?

我正在使用post方法添加新闻表单.在第二页中,我进行数据验证.我之后定义了变量$message = $_POST["message"],$_SESSION['message'] = "$message";之后我回显了会话变量,一切看起来都很好.当我点击发送哪个转到另一个页面将数据添加到数据库时,会话变为空.每个页面都有session_start,如果我定义可靠,就像$_SESSION="test"它通过所有3个页面但表格中生成的数据丢失.请帮忙!

php redirect session-variables data-loss

1
推荐指数
1
解决办法
2171
查看次数

为什么我的CakePHP flash消息没有出现?

背景:我是CakePHP的新手.我有一个小的测试网站(目前主要是静态视图和联系表格),在我学习的时候可以玩.在localhost(Ubuntu上的Apache)上一切正常,所以我将它部署到共享主机帐户(由Lunarpages提供).我将/ cake文件夹移出了正常的目录结构(所以我可以将它用于多个应用程序)并且我相应地重新配置了我的webroot的index.php路径.

问题:

  1. setFlash消息不会显示.甚至做一个除了之外什么都不做的简单视图$this->Session->setFlash('message');.我没有收到任何错误消息,闪存只是没有显示
  2. 重定向不起作用.例如,在联系表单完成后我想$this->redirect( array( 'action' => 'success' ), null, true);但服务器会抛出错误:

    警告(2):无法修改标题信息 - 已经发送的标题(输出从/routetoapp/config/routes.php:40开始)[CORE/cake/libs/controller/controller.php,第742行]

其他所有东西似乎都像在localhost上一样工作 - URL重写,组件加载,模型验证.我不知道我的问题是相关的还是单独的问题

到目前为止的疑难

  1. 我已经尝试了'蛋糕'和'php',Configure::write('Session.save', 'val');但两者都没有区别.
  2. 我的app/tmp文件夹是可写的.
  3. 我的布局模板具有用于显示Flash消息的正确代码.(完全相同的M,V,C和Layout对象显示localhost上的预期闪存)

我想我错过了一些简单的东西,但我是这个框架的新手,所以我不确定在哪里看.

cakephp session-variables http-headers cakephp-1.3

1
推荐指数
1
解决办法
5834
查看次数

会话名称中的变量

是否可以在会话名称中包含变量?就像我有一个变量:$id 我想要这样的东西:

$_SESSION['number'$id]
Run Code Online (Sandbox Code Playgroud)

所以,如果 $id=1

$_SESSION['number1']
Run Code Online (Sandbox Code Playgroud)

而如果 $id=65

$_SESSION['number65']
Run Code Online (Sandbox Code Playgroud)

php variables session-variables

1
推荐指数
1
解决办法
2169
查看次数

xpages在数据库打开时设置applicationScope变量

我想在一个人打开应用程序时设置一个applicationScope变量.设置的值在当前会话期间不会更改.可以作为sessionScope,但有相同的问题如何在会话打开时设置它.

database session-variables xpages

1
推荐指数
1
解决办法
790
查看次数

访问保存在Swift会话中的Dictionary索引

所以我基本上在我的应用程序上有一个登录屏幕,成功登录后,在对主屏幕执行segue之前,我将以下信息保存在会话中的Dictionary中。就像这样(在示例中输入静态信息):

    let preferences = UserDefaults.standard
    let session_info : [String: String] = [
        "user_id": "123",
        "name": "John",
        "email": "john@doe.com"
    ]
    preferences.set(session_info, forKey: "session")
    preferences.synchronize()
Run Code Online (Sandbox Code Playgroud)

这样就保存了会话数据,如果我将其分配给变量并打印,则可以在控制台中获得可选的信息字典。

    let session_data = preferences.value(forKey: "session")!
Run Code Online (Sandbox Code Playgroud)

如果我这样做,print(session_data)则会得到以下输出:

   {
       "user_id" = "123";
       "name" = "John";
       "email" = "john@doe.com";
   }
Run Code Online (Sandbox Code Playgroud)

我的问题是我不确定如何访问键,因为如果我将分配的变量视为字典,它会说Type 'Any' has no subscript members.我使用的是:

   print(session_data["user_id"])
Run Code Online (Sandbox Code Playgroud)

有没有办法访问此信息,或者我必须将每个变量保存到单独的会话密钥中?

session-variables ios swift swift-dictionary

1
推荐指数
1
解决办法
45
查看次数