请帮忙。 在form.php中使用$ _SERVER ['HTTP_REFERER']获得的链接如下:
<?php
$link = 'http://' . getenv('HTTP_HOST') . '/';
if (isset($_SERVER['HTTP_REFERER']) and !empty($_SERVER['HTTP_REFERER'])) {
$link = $_SERVER['HTTP_REFERER'];
$refData = parse_url($link); }
if($refData['host'] !== 'domain.com') {
die("server error"); }
?>
<p>Send this link - <?php echo htmlentities($page_url, ENT_QUOTES); ?></P>
<input name="link" type="hidden"
value="<?php echo htmlentities($page_url, ENT_QUOTES); ?>" />
<input type="submit" value="submit" />
提交表单后,referer url会切换到 form.php 。这段代码有问题吗?或者是否有任何具体方法可以阻止引用网址被切换?
答案 0 :(得分:0)
正如评论已经指出的那样,它可以正常运作。
当用户第一次访问您的网站时,您可以使用sessions临时存储引荐来源。
<?php
session_start();
// ...
if( !isset($_SESSION['referrer']) ){
$_SESSION['referrer'] = parse_url($_SERVER['HTTP_REFERER']);
}
// ...
if( $_SESSION['referrer'] !== "domain.com"){
die("Server Error");
}