标签: session-variables

PHP - 将所有POST数据转换为SESSION变量

要做到这一点,必须有一个更优雅的方式.

如何将所有非空的帖子数据转换为会话变量,而不是逐行指定每一个?基本上,我想对POST数组中存在的所有X实例执行以下函数.

if (!empty($_POST['X'])) $_SESSION['X']=$_POST['X'];
Run Code Online (Sandbox Code Playgroud)

我打算一个接一个地做,但后来我认为必须有一个更优雅的解决方案

php post session-variables

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

asp.net中强类型的会话

如果这个问题已被提出,请原谅我.HttpContext.Current.Session["key"]返回一个对象,我们必须Type先将它强制转换为该对象才能使用它.我正在研究类型会话的各种实现

http://www.codeproject.com/KB/aspnet/typedsessionstate.aspx http://weblogs.asp.net/cstewart/archive/2008/01/09/strongly-typed-session-in-asp-net.aspx http://geekswithblogs.net/dlussier/archive/2007/12/24/117961.aspx

如果我们想要将一个新Type的对象添加到会话中,或者作为一个方法或一个单独的包装器,我觉得我们需要在SessionManager中添加一些代码(如果我错了,请更正).我以为我们可以使用泛型

public static class SessionManager<T> where T:class
 {
  public void SetSession(string key,object objToStore)
  {
   HttpContext.Current.Session[key] = objToStore;
  }

  public T GetSession(string key)
  {
   return HttpContext.Current.Session[key] as T;
  }

 }
Run Code Online (Sandbox Code Playgroud)
  • 使用是否有任何固有的优势

    SessionManager<ClassType>.GetSession("sessionString")

而不是使用

HttpContext.Current.Session["sessionString"] as ClassType
Run Code Online (Sandbox Code Playgroud)
  • 我也觉得有类似的东西会很好

SessionManager["sessionString"] = objToStoreInSession,但发现静态类不能有索引器.有没有其他方法来实现这一目标?

  • 我的想法是创建一个SessionObject,它将存储Type和对象,然后使用密钥将此对象添加到Session(使用SessionManager).检索时,将所有对象强制转换为SessionObject,获取类型(比方说t)和对象(比如说obj)并转换objt并返回它.

    public class SessionObject { public Type type {get;set;} public Object obj{get;set;}
    }

这不会起作用(因为返回签名将是相同的,但返回类型将是不同的).

是否有任何其他优雅的方式以更安全的方式在会话中保存/检索对象

asp.net session session-variables session-state

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

会话中存储的变量是否在整个页面生命周期中反序列化一次或多次?

我想以类似于CodeProject讨论的方式包装Session变量.

public static class WebSession
{
  private const string CurrentUserKey = "CurrentUser";

  private static HttpSessionState Session
  {
    get { return HttpContext.Current.Session; }
  }

  public static bool Exists
  {
    get { return Session != null; }
  }

  public static User CurrentUser
  {
    get { return Session[CurrentUserKey] as User; }
    set { Session[CurrentUserKey] = value; }
  }
}
Run Code Online (Sandbox Code Playgroud)

这是我的问题:如果我必须CurrentUser在同一页面中多次访问,是否可以通过将其分配给本地变量而不是访问包装属性来提高性能?或者HttpSessionState确保每个请求只对对象进行一次反序列化,以便在同一个http请求中的后续调用不再需要花费多少钱?

谢谢你,亚伦

c# asp.net session-variables

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

使用PHP将会话变量添加到MYSQL查询中

我试图将两个变量传递给一个mysql查询,并在下面传递会话变量时遇到困难:

$check = mysql_query("SELECT * 
                      FROM Clients 
                      WHERE Username = '$new_username' 
                      AND Username != '$_SESSION['Username']'") or die(mysql_error()); 
Run Code Online (Sandbox Code Playgroud)

有小费吗?提前致谢.

php mysql sql session-variables

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

字段'user_data'在CI 2.0.3中没有默认值

我使用CI的用户指南来创建会话表.

CREATE TABLE IF NOT EXISTS  `sessions` (
    session_id varchar(40) DEFAULT '0' NOT NULL,
    ip_address varchar(16) DEFAULT '0' NOT NULL,
    user_agent varchar(120) NOT NULL,
    last_activity int(10) unsigned DEFAULT 0 NOT NULL,
    user_data text NOT NULL,
    PRIMARY KEY (session_id),
    KEY `last_activity_idx` (`last_activity`)
);
Run Code Online (Sandbox Code Playgroud)

每当我$db['default']['stricton'] = TRUE在database.php中时,都会显示此错误

错误号码:1364

字段'user_data'没有默认值

INSERT INTO sessions(session_id,ip_address,user_agent, last_activity)VALUES( '2b92823888c4c5eb4b5b2ae25282ce9e', '192.168.1.4', '的Mozilla/5.0(Windows NT的6.1; WOW64)为AppleWebKit/535.1(KHTML,例如Gecko)铬/ 14.0.835.186 Safari浏览器/ 535.1',1317346730 )

文件名:libraries/Session.php

行号:327

但是,我想强制执行严格的SQL.

mysql database session-variables codeigniter-2

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

如何在drupal 7中保存会话变量?

我想使用变量会话($ _session),但它在Drupal 7中不起作用.为了保存变量会话,Drupal 7有什么可能性.

php drupal session-variables drupal-7

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

从 MessageBag 中删除消息

如何从 中删除错误消息MessageBag

我一直试图从消息数组中删除一个MessageBag没有任何运气的特定元素。

我两次收到相同的错误消息。

@if($errors->has('undefined'))
    <div class="alert alert-warning">
    <button type="button" class="close" data-dismiss="alert">&times;</button>
    <h4>Failure.</h4>
        {{ $errors->first('undefined') }}
    </div>
    <?
        // $messages = $errors->getMessages();
        $messages = $errors->toArray();
        unset($messages['undefined']);
    ?>
@endif

@if($errors->any())
    <div class="alert alert-error">
    <button type="button" class="close" data-dismiss="alert">&times;</button>
    <h4>Error!</h4>
        {{ $errors->first() }}
    </div>
@endif
Run Code Online (Sandbox Code Playgroud)

编辑

我做过类似的事情,而且似乎有效。

<?
    $messages = $errors->toArray();
?>

        @if(array_key_exists('undefined', $messages))
            <?
                $message_array = $messages['undefined'];
                $message = $message_array[0];
                unset($messages['undefined']);
            ?>

            <div class="alert alert-warning">
            <button type="button" class="close" data-dismiss="alert">&times;</button>
            <h4>Failure.</h4>
                {{ $message }}
            </div>
        @endif

        <?
            foreach ($messages …
Run Code Online (Sandbox Code Playgroud)

php session-variables laravel laravel-4

6
推荐指数
2
解决办法
6062
查看次数

标题重定向后,PHP会话索引是否未定义?

我已经挣扎了好几个小时,但我无法让它发挥作用.当我重定向到另一个PHP页面时,我的所有会话变量都为null.我在xampp服务器上.

session.php文件

<?php
     session_start();
     if(isset($_POST['submitted']))                                                                                         
     {   
        $_SESSION['first_name'] = "MAX";
        var_dump($_SESSION);
        header("Location: http://localhost:8080/secure login/session2.php");     
        die();
     }
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> 
<head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-    1" /> 
    <title>You Logged In</title> 
</head> 
<body> 
    <form action="session.php" method="post">
        <div align="center"><input type="submit" name="submit" value="Login" /></div>
    <input type="hidden" name="submitted" value="TRUE" />
    </form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

session2.php

<?php
    session_start();
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> 
<head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> 
    <title>You …
Run Code Online (Sandbox Code Playgroud)

php session session-variables session-state var-dump

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

如何在视图中获取会话值asp.net核心

我想尝试像这样的会议

@HttpContext.Session.GetString("some");
Run Code Online (Sandbox Code Playgroud)

但我得到了

*

非静态字段需要对象引用......

*

有想法的人吗?

asp.net-mvc session-variables

6
推荐指数
2
解决办法
7479
查看次数

如何防止网站因不活动而将您注销

我正在使用 5 个不同的网站,这些网站的会话寿命很短,它们会在不活动的 10 - 15 分钟内退出。我想出了浏览器扩展来帮我做这件事。以及我到目前为止所做的:

  1. 重新加载页面。
  2. 从同一主机打开另一个选项卡并自动关闭它。
  3. 自动将选项卡切换为活动状态(例如每 2 分钟其中一个网站就会变为活动状态)。

这些似乎有效,但用户体验非常糟糕。

此外,重新加载页面可能会导致我正在做的工作丢失。

我尝试在后台提出一些请求,但这些网站使用了大量标头和 cookie,这似乎很难弄清楚如何使用它们。

有没有更好的方法来停止由于不活动而注销,或者有正确的方法来确定我应该在我的请求中附加哪些标头和 cookie?

我真的不知道这些网站使用哪个堆栈,但似乎它们具有很高的安全标准。

javascript session-variables session-cookies google-chrome-extension

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