我有以下几点:
$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“数组,因此它将将保存按钮更改为" submit”按钮,这是错误的,因为现在提交将插入您想要保存的文件的副本,而不是保存当前的id。
发布于 2014-04-22 12:56:24
当您第一次模仿信息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 } ?> 作为一个侧面,请记住,用户可以隐藏或修改发送到您的服务器的头,所以在关键功能方面不要依赖这个。
https://stackoverflow.com/questions/23219865
复制相似问题