我一直在寻找几个小时,但却无法找到答案。
我正在尝试将引用网址添加到电子邮件中(访问者在网站上发送的表单),以便我知道访问者所引用的网站。 (正在进行的分析的一部分)。
我正在尝试将SERVER [" HTTP_REFERER"]设置为这样的会话。
if(!isset($_SESSION["inbound"])) {
$_SESSION["inbound"] = $_SERVER["HTTP_REFERER"];
}
但每次加载另一个页面时,会话都会不断变化。我推测放!在isset之前会告诉它已经有一个会话而不是再尝试添加它。
我也尝试过这种方式(以及其他方式的组合):
if(isset($_SESSION["inbound"])) {
// do nothing
} else {
$_SESSION["inbound"] = $_SERVER["HTTP_REFERER"];
}
我在WordPress中这样做,但我不认为这应该是一个问题。我之前在Wordpress中使用过很多次没有任何问题。
非常感谢任何建议或帮助! 谢谢 约恩
更新:尝试过这样:
function get_ref_session() {
if(!isset($_SESSION["inbound"])) {
$the_referer = $_SERVER["HTTP_REFERER"];
$_SESSION["inbound"] = $the_referer;
}
}
add_action( 'wp_head', 'get_ref_session' );
这种方式也没有喜悦:(
在插件和functions.php中试过这个,没有快乐。 (在顶部)
function register_session(){
if( !session_id() )
session_start();
}
add_action('init','register_session');
答案 0 :(得分:2)
Wordpress默认不使用PHP会话。它直接设置cookie来管理自己的会话。
在发送任何标头信息之前,您需要包含session_start();
。否则,不会保存会话数据。
How to use session in wordpress in plugin development
function register_session(){
if( !session_id() )
session_start();
}
add_action('init','register_session');
答案 1 :(得分:0)
经过大量挖掘,结果表明它的页面缓存阻止会话正常工作..
登录wordpress会话时工作正常,但是当注销时(所有访问者都会),他们无法正常工作。
想想我要用cookie代替这样做。