我使用Xampp在我的本地有一个活的Wordpress网站的副本。我在php.ini中的会话路径是session.save_path =“C:\ xampp \ tmp”,并且这些会话变量的文件设置如下。在我设置会话并重定向后,会话在回调页面上为空。我错过了什么?该文件夹在Xammp中可见,用于tmp文件夹。
如果重要的话,我还有我的主机文件将Domain Url指向我的localhost。
session_start();
$_SESSION['oauth_token'] = $request_token['oauth_token'];
$_SESSION['oauth_token_secret'] = $request_token['oauth_token_secret'];
此外,它不在现场工作。
答案 0 :(得分:8)
在尝试使用着陆页上的会话变量之前,请确保您正在呼叫session_start()
。重定向时,会导致浏览器发送新页面的新请求。此新请求尚无法访问您在初始请求中使用的会话。调用session_start()
会恢复会话,以便您可以使用其中包含的数据。
e.g。
FirstFile.php:
session_start();
$_SESSION['my_variable'] = "my data";
header("Location: http://example.com/SecondFile.php");
SecondFile.php:
session_start(); // **This line recovers the session**
echo $_SESSION['my_variable']; // This line will now print "my data"
答案 1 :(得分:1)
在必须读/写$ _SESSION之前,您可以避免在WordPress中执行session_start()。只需在插件或主题的functions.php文件中执行此操作:
if (!session_id()) {
add_action('init','session_start');
}
另请注意,如果在调用session_start()之前使用以下内容,它将在许多PHP应用程序中起作用,但会导致WordPress删除会话变量,原因有些奇怪:
session_set_cookie_params(0,'/');
所以,我删除了那个语句,现在使用functions.php中的技巧,现在我的插件和主题支持会话就好了。