我使用此代码在我的表单中存储引荐来源网址以跟踪转化,我遇到的问题是它存储的网址是表单所在的网址,而不是访问者来自的网址。
我正在尝试获取用户来自的网站的网址,即如果用户来自Google,我需要将网址设为Google。
这是我的代码;
function hiddenreferer_shortcode($tag) {
if ( ! is_array( $tag ) )
return '';
$options = (array) $tag['options'];
foreach ( $options as $option ) {
if ( preg_match( '%^name:([-0-9a-zA-Z_]+)$%', $option, $matches ) ) {
$name_att = $matches[1];
}
}
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
$value_att = $pageURL;
$html = '<input type="hidden" name="' . $name_att . '" value="'.$value_att.'" />';
return $html;
}
// REFERER IN CONTACT FORM 7
wpcf7_add_shortcode('hiddenreferer', 'hiddenreferer_shortcode', true);
答案 0 :(得分:1)
这可能与以下内容重复: Get original URL referer with PHP?
在这种情况下,您正在寻找:
var $_escape_char = '';
编辑:正如Martin在下面的评论中提醒我的那样,所有数据都来自您受控制的环境之外 - 清理它!
如果在PHP中处理字符序列,则转义该字符序列,如果将其存储在数据库中(并使用PDO /预处理语句等),则最好检查它是否为SQL注入尝试。