我无法在设置它们的页面上使用会话变量,它们就像非会话变量一样.我在其他六个类似的论坛上发现了一个类似的问题,但在其他案例中的答案总是不适用.
这是我的文件:
sess1.php
<?php
session_start();
session_register("userid");
session_register("textvar");
$_SESSION['userid'] = 10333 ;
$_SESSION['textvar'] = TextVariable ;
echo "<p>User ID is: " . $_SESSION['userid'] . "</p>" ;
echo "<p>Another variable is: " . $_SESSION['textvar'] . "</p>" ;
?>
<p>Go to the <a href="sess2.php">next page</a>.</p>
Run Code Online (Sandbox Code Playgroud)
并且, sess2.php
<?php
session_start();
echo "<p>The userid session variable is: " . $_SESSION['userid'] . "</p>";
echo "<p>The other session variable is: " . $_SESSION['newvar']. "</p> ";
?>
Run Code Online (Sandbox Code Playgroud)
每种情况下的浏览器输出是:
sess1.php
用户ID是:10333
另一个变量是:TextVariable
转到[下一页].
并且, sess2.php
userid会话变量是:
另一个会话变量是:
转到[最后一页].
有些事情不是: …
它是"更好"(更高效,更快,更安全等)到(A)缓存数据,用于$ _SESSION数组中的每个页面加载(但仍然查询表以获取标记以重新加载数据),或者(B)每次从数据库加载它?
我正在使用缓存方法(A),但我担心有数百个用户,内存可能会成为一个问题?它只是简单的数据,如名字,姓氏,生日等.
无论使用哪种方法,仍然会运行查询.思考?
我正在构建一个Asp.net应用程序.我需要在会话中保存HashTable.
在页面加载我正在写
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
Session["AttemptCount"]=new Hashtable(); //Because of this line.
}
}
Run Code Online (Sandbox Code Playgroud)
这里的问题是,当用户刷新页面时,会话["AttemptCount"]也会刷新.我想知道我应该在哪里申报
Session["AttemptCount"]=new Hashtable();
Run Code Online (Sandbox Code Playgroud)
所以我的看法不会被彻底改变.
编辑在Global.asax中,只要用户打开网站,此会话就会开始.我想仅在用户转到特定页面时才创建此会话.即Login.aspx
我在代码的一个时刻设置了一个会话对象:
Session("my_name") = "Dave"
Run Code Online (Sandbox Code Playgroud)
稍后在我的代码中,我给用户一个更新此对象的机会:
Session("my_name") = TextBox1.Text
Run Code Online (Sandbox Code Playgroud)
我重新加载我的页面并显示一个像这样的小问候:
Label1.Text = "Hello" & CStr(Session("my_name"))
Run Code Online (Sandbox Code Playgroud)
结果是:"Hello Dave"无论我改变Session("my_name")也是如此.
编辑:这是我写的一个完整的代码隐藏演示:
Public Class WebForm1
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Response.Cache.SetCacheability(HttpCacheability.NoCache)
Response.ExpiresAbsolute = DateTime.Now.AddMonths(-1)
If Page.IsPostBack = False Then
Session("my_name") = "Dave"
End If
Label1.Text = CStr(Session("my_name"))
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
Session("my_name") = TextBox1.Text
End Sub
Run Code Online (Sandbox Code Playgroud)
结束班
可能重复:
无法在php中的会话中传递mysqli连接
我们中的许多人编写了需要数据库的PHP应用程序; 主要是MySQL,但我经常使用非常小的MS Access数据库,因为技术能力较差的人可以下载调整它们/保存备份/等等.在他们自己(这是否正确,我不知道).
我注意到的是,花了很多时间来连接和运行一些相同的查询.因此,我有一个有趣的想法:存储连接和可能的结果集,这些结果集在$_SESSION变量中大部分是静态的,以减轻用户导航网站时的负担.
显然这样做需要很多考虑.在会话被销毁时关闭连接的事情只是一个开始.
我的问题归结为:这真的有可能吗?如果是这样,我应该注意哪些事情(除了会话固定,因为它是适用于所有会话的自身问题)?
我有多个CF应用程序在相同的域名下运行在同一台服务器上.其中之一,我们称之为Portal,旨在成为其他应用程序的单点登录,让我们称之为Atlas和P-Body.通常,您会在session范围中设置一些变量来处理登录信息:
function Login()
{
session.auth = structNew();
session.auth.isLoggedIn = true;
session.auth.id = GetCurrentUserId();
}
Run Code Online (Sandbox Code Playgroud)
但会话范围仅在一个应用程序中共享,而不是在整个服务器中共享.这意味着登录Portal的任何用户都将保持登录状态,但如果他们尝试导航到Atlas或P-Body,他们将不得不再次登录.
在这种情况下,我将如何"共享"会话范围,以便服务器上的所有应用程序都可以访问它?我能想到的唯一方法是使用客户端变量并设置数据存储,以便在应用程序之间共享.然后代码变成:
function Login()
{
client.auth = structNew();
client.auth.isLoggedIn = true;
client.auth.id = GetCurrentUserId();
}
function Logout()
{
structDelete(client, "auth");
}
Run Code Online (Sandbox Code Playgroud)
需要注意的是,因为客户端变量在会话结束时没有被清除,所以我们必须在OnSessionEnd处理程序中手动清除它.
这是处理ColdFusion中单点登录的最佳方式吗?如果是这样,使用客户端变量有什么缺点,或者需要注意缺陷吗?
更新:我只是测试客户端变量法,它看起来像只hitcount,timecreated,lastvisit,和urltoken应用程序之间共享,所以我又回到了起点1.
authentication coldfusion session-variables single-sign-on coldfusion-9
回到referer页面时遇到问题:
first url: http://site.com/venue/apartments/1564/venue-name
referer url: null
Run Code Online (Sandbox Code Playgroud)
在这个页面我可以编辑内部的东西,所以我有一个login按钮去登录页面,成功登录后,我想转回到first url.
second url: http://site.com/users/login
referer url: http://site.com/venue/apartments/1564/venue-name
Run Code Online (Sandbox Code Playgroud)
当我尝试登录时,由于CakePHP操作规则,我必须刷新登录页面以检查凭据,problem从这里开始:
third url: http://site.com/users/login
referer url: http://site.com/users/login
Run Code Online (Sandbox Code Playgroud)
通过刷新页面,并检查控制器的login操作中的凭据users我得到的是我之前的相同页面,现在我不能回到first url.
我通过在AppController中设置会话变量来尝试一些解决方案,该变量检查我是否不在login操作页面中并执行此操作:
AppController.php
public function beforeFilter () {
$this->setRedirect();
}
public function setRedirect () {
if ($this->request->params['controller'] != 'users' && $this->request->params['action'] != 'login') {
$this->Session->write('redir', array('controller'=>$this->request->params['controller'], 'action'=>$this->request->params['action'], implode($this->request->params['pass'], '/')));
}
}
Run Code Online (Sandbox Code Playgroud)
通过测试会话var,debug($this->Session->write('redir'));一切看起来都很完美,直到我开始login行动:
UsersController.php
public function login () {
if …Run Code Online (Sandbox Code Playgroud) CentOS 6.5上的postgresql-9.0.15.我有一个输出INFO消息的plperlu函数.我想在测试期间抑制它(使用psql,其行为如下),但我似乎甚至无法从pgAdminIII(win2003的1.18.1)查询窗口中执行此操作:
SET client_min_messages TO WARNING;
select my_info_outputting_function('lalala')
Run Code Online (Sandbox Code Playgroud)
我运行它并查看"消息"选项卡,这是我的INFO消息.
(这可能类似于在运行psql脚本时如何抑制INFO消息,但我不想为我的整个会话禁用INFO消息,只是其中的一部分,然后将最小值设置为NOTICE.)
我上面的代码片段出了什么问题?client_min_messages不适用于pl/perlu函数吗?
更新:进一步调查后,即使使用plpgsql函数,似乎也会发生这种情况,而不仅仅是plperlu函数:
create or replace function my_info_outputting_function() returns void as $$
begin
raise INFO 'this should not appear...';
return;
end;
$$ language plpgsql;
SET client_min_messages TO WARNING;
select my_info_outputting_function();
Run Code Online (Sandbox Code Playgroud)
我在pgAdminIII查询窗口中运行上面的代码片段,并在"消息"选项卡中显示"不应出现此内容".Quoi?
更新2:我还尝试了log_min_messages以防万一.相同的行为.
postgresql logging error-logging session-variables postgresql-9.0
我正在使用php 5.4
会话变量$_SESSION['name']用于存储数据,以便数据可以在任何将来的请求中访问,但仅对用户
是唯一的
是否可以创建类似于会话变量的内容,所有请求都可以访问但是不管是哪个用户?换句话说,一个不是用户唯一的会话变量
目前我正在使用MySQL数据库来存储临时数据,但我认为如果这Global Session for all users是可能的,它会提供一些性能改进
我想存储一些非常小的数字,如4位数字
$_SESSION['token']在每页开头生成A. 我已经知道使用$_COOKIES完全错误,因为它们是针对每个请求自动发送的.
在每个中<form>,<input type="hidden" name="t" value="<?php echo '$_SESSION['token']; ?>">附加以下输入:
该$_SESSION['token'];验证与$_POST['t']
现在我有几个小问题:
$_SESSION变量时,前一个(仍然打开的)页面变为无效,如何防止这种情况?非常感谢你提前.