Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP OOP消息在页面刷新时持续显示_Php_Oop_Post Redirect Get - Fatal编程技术网

PHP OOP消息在页面刷新时持续显示

PHP OOP消息在页面刷新时持续显示,php,oop,post-redirect-get,Php,Oop,Post Redirect Get,我有一个相对简单的类,可以删除帖子: function delete_post($postid, $reason){ //Stuff to delete post $this->delete_response = 'Thanks, your course has been removed.'; } 此函数在打开窗体的页面顶部调用。如果表单已提交,则同一页面将检查POST[]并执行如下功能: if(!empty($_POST['removecourse'])

我有一个相对简单的类,可以删除帖子:

function delete_post($postid, $reason){

    //Stuff to delete post      
    $this->delete_response = 'Thanks, your course has been removed.';

}
此函数在打开窗体的页面顶部调用。如果表单已提交,则同一页面将检查POST[]并执行如下功能:

if(!empty($_POST['removecourse'])){
    $courseManager->delete_post($_POST['courseid'], $_POST['cancel-reason']);
    echo $courseManager->delete_response;
}; 

所以我的问题是。。。当我刷新页面时,消息会一直显示。我知道这是因为我正在重新提交表单,而且因为没有这样的P/R/G模式,但由于我是OOP新手,我想知道我这样做是否正确,或者是否有人可以建议一种类似于PRG或其他什么的方法?

如果某些东西发生了变化,请添加一个if测试,例如mysql

function delete_post($postid, $reason)
{
    //Stuff to delete post
    if(mysql_affected_rows())
    {
       $this->delete_response = 'Thanks, your course has been removed.';
    }
}

有什么理由不能使用P/R/G吗?(只是好奇)您可以在
delete_post
中添加一点检查-计算删除的项目数,如果没有删除任何内容,则将响应设置为空字符串。@jprofitt您好,我很乐意使用PRG,但我不确定如何以OOP方式实现它,我已经这样做了:/。我是OOP新手,以前都是以过程的方式完成所有工作。啊,好吧,这是一种“最佳实践”方式吗?好的方法是生成令牌(散列),将其存储在当前用户的会话中,并将其放在隐藏表单字段中,稍后检查其有效性和(如果有效)删除记录后将其从$\u POST数组中删除,或在简单页面刷新后重新生成(在会话中和表单的隐藏字段中)。想象一下这种情况——您并没有按ID删除记录,而是添加了一些内容。因此,当用户更新页面时,您的记录会被添加很多次……看看这个答案,它是针对Zend Framework的,但由于ZF方法的名称,这个想法已经足够清楚了: