如何在重置页面后确保我的按钮保持不变

时间:2014-04-22 12:39:39

标签: php arrays post session-variables

我有以下内容:

$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,而是提交将插入您想要保存的文件的副本。

1 个答案:

答案 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 } ?> 

作为旁注,请记住,用户可以隐藏或修改发送到服务器的标头,因此不要依赖此标题来实现关键功能。