将PHP会话变量设置为WordPress错误

时间:2017-08-24 作者:maxwell

在过去的几天里,我一直在想如何将会话变量添加到WordPress自定义页面,但仍然找不到解决方案。通过研究,WordPress似乎不允许您将会话变量从一个页面移动到下一个页面。我已尝试删除所有“session\\u start();”并将以下内容添加到函数中。php文件。

add_action(\'init\', \'myStartSession\', 1);
function myStartSession() {
if(!session_id()) {
    session_start();
}
}
还尝试将下面的代码添加到wp配置中。php,但无济于事。

if (!session_id())
session_start();
会话将为每个用户创建一个唯一的id,该id将在下一页进行检查,以查看是否等于上一个id。第一页代码如下:

$_SESSION[\'t\'] = md5(session_id().\'3ac49262e797b6a51b6362e264d9dbe1\');
session_write_close();
下一页是:

$testValue = md5(session_id().\'3ac49262e797b6a51b6362e264d9dbe1\');
if ($testValue == $_SESSION[\'t\'])
{$passFlag = 1;}
else
{$passFlag = 0;}
session_regenerate_id();
\'session\\u write\\u close();\'在这一页的下面进一步调用。任何帮助都将不胜感激,如果您需要任何进一步的信息,请随时留言。谢谢

2 个回复
SO网友:Rick Hellewell

您需要将代码添加到函数中。主题的php文件。(实际上,将其添加到您的子主题中是最好的,因为您不希望主题更新改变事情。除非您正在编写自己的主题。)

这就是你的函数。php文件:

if(!session_id()) {
    session_start();
}

SO网友:Mark Kaplun

(把@Tom的评论变成一个恰当的答案)

PHP会话是PHP诞生之初遗留下来的,当时DBs的使用非常罕见、复杂且昂贵。从那时起,每个人都继续前进,现在会话所能做的一切都是DB无法以更加一致和可靠的方式做的。如果您觉得需要存储在服务器上的一些信息,只需将其写入数据库,无论是用户的元还是新表(如果您的用户没有映射到WP用户)。

由于会话在任何情况下都需要cookie,所以您最好将您的唯一密钥存储在cookie中。

结束

相关推荐

尝试为404.php页面加载不同的系统

我创建了一个404.php 页面和我的主题在出错时正确加载该页面。我的问题是-我该如何设计它?我注意到body标签如下:<body class=\"error404\"> 所以我应该在队列中调用它来加载一些css,可能是这样的: // Error 404 if ( is_page(404)): // Load Newsletter Main CSS wp_enqueue_style( \'404 c