我有以下内容:
$allowed_referer = array("https://localhost/**blah.php**"); //add the allowed sites in this array
$referal = $_SERVER['HTTP_REFERER'];
if (in_array($referal, $allowed_referer)){
//Do-stuff
}
因此,如果页面来自 blah.php ,则允许显示保存按钮而不是提交。 我设置了保存按钮更新数据库并将提交按钮插入数据库的位置。
<?php if (!in_array($referal, $allowed_referer)){ ?>
<button type="submit" name="submit" value="submit-new"> Submit </button>
<?php }
else { ?>
<button type="submit" name="submit" value="save-new"> Save </button>
<?php } ?>
如果点击保存后,如何确保保存按钮保持不变 例如,假设页面来自blah.php,然后你做了一些更改并单击保存按钮,然后它刷新页面,使它相信它不是来自“$ allowed_referer”数组,所以它会改变“提交”按钮的保存按钮,这是不好的,因为现在不是保存当前的ID,而是提交将插入您想要保存的文件的副本。
答案 0 :(得分:0)
首次点击时,您可以将信息user in comming from a known referer
存储在首位:
$allowed_referer = array("https://localhost/**blah.php**"); //add the allowed sites in this array
$referal = $_SERVER['HTTP_REFERER'];
if (in_array($referal, $allowed_referer)){
//Store a flag in the session
$_SESSION['come_from_known_referer'] = true;
//Do-stuff
}
然后修改你的代码:
<?php if (!isset($_SESSION['come_from_known_referer'])){ ?>
<button type="submit" name="submit" value="submit-new"> Submit </button>
<?php } else { ?>
<button type="submit" name="submit" value="save-new"> Save </button>
<?php } ?>
作为旁注,请记住,用户可以隐藏或修改发送到服务器的标头,因此不要依赖此标题来实现关键功能。