【问题标题】:Custom session variables in Drupal 7Drupal 7 中的自定义会话变量
【发布时间】:2014-04-04 07:46:07
【问题描述】:

我正在尝试在 Drupal 中制作自定义表单。此表单调用 Web 服务并将接收一些 Json。在这个 Json 响应中,我有三个信息(或错误): 1.用户名 2. 用户语言 3. 用户自定义Token(其他webapp专用)

这三个信息必须放在会话(或其他任何内容)中,并将显示在某些网页中。

例如,在每个页面上,都会写上“Hello Mr John”,而在某些网页上,我想显示一个带有自定义 Token 的图标 + 链接以访问另一个 Web 应用程序,...

我们已经有很多用户,我们不希望所有用户都在 drupal 数据库中。

我该怎么办?我正在使用 Drupal 7

提前致谢

【问题讨论】:

    标签: php json drupal drupal-7


    【解决方案1】:

    我写了这个函数来处理 Drupal 中的会话

    function _mySite_session($key, $value = NULL)
    {
        static $storage;
        if ($value)
        {
            $storage[$key] = $value ;
            $_SESSION['mykey'][$key] = $value ; // I use 'mykey' as a session key because in case some other module uses 'type' in $_SESSION. So try to make it unique.
        }
        elseif (empty($storage[$key]) && isset($_SESSION['mykey'][$key]))
        {
            $storage[$key] = $_SESSION['mykey'][$key];
        }
        return $storage[$key];
    }
    

    设置会话变量:

    _mySite_session("USERNAME", "Mr. John");
    

    并检索会话变量的值:

    $username = _mySite_session("USERNAME");
    

    【讨论】:

    • :好的,谢谢,但是你把这个函数放在哪里了?在 Drupal 的一个特殊部分?你从哪里得到会话变量?使用它没有错误或安全问题吗?我在哪里可以写 if(isset($username))?在一个特殊的文件中?
    • 函数的放置位置由您决定。在您的自定义模块或template.php 文件中使用该函数。不,使用它没有安全问题。
    • 设置和检索会话变量可以随心所欲。这取决于你的代码逻辑。
    • 好的,谢谢。您认为可以进行 ajax 调用,返回 Json 值并将其设置为 session?
    • 是的,这肯定是可能的。这也取决于您的代码逻辑。
    猜你喜欢
    • 1970-01-01
    • 2015-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-07
    • 1970-01-01
    • 2014-12-20
    • 1970-01-01
    相关资源
    最近更新 更多