Php 只重定向到页面一次?

Php 只重定向到页面一次?,php,sql,redirect,Php,Sql,Redirect,我有这段php代码,可以在我的网站上查找帐户提示函数。基本上,如果用户违反了网站上的条款和条件,在登录时,他们会被重定向到一个提示页面,上面说你非常淘气,这里有一个警告 我的代码是: <?php $account_prompt = account_prompt(); while ($prompt = mysql_fetch_array($account_prompt)) if ($prompt['account_prompt'] == '1') { redirect_

我有这段php代码,可以在我的网站上查找帐户提示函数。基本上,如果用户违反了网站上的条款和条件,在登录时,他们会被重定向到一个提示页面,上面说你非常淘气,这里有一个警告

我的代码是:

 <?php

$account_prompt = account_prompt();
while ($prompt = mysql_fetch_array($account_prompt)) 


 if ($prompt['account_prompt'] == '1')  {
    redirect_to("prompt.php"); 
 }
 ?>

我的问题是如何让它只重定向一次?
谢谢

他只是重定向1ce,除非你陷入了无休止的循环

试试这个

if (isset($prompt['account_prompt']) && $prompt['account_prompt'] == '1')  {
    header("Location: prompt.php"); 
    exit;
}

他只是重定向1ce,除非你陷入一个无休止的循环中

试试这个

if (isset($prompt['account_prompt']) && $prompt['account_prompt'] == '1')  {
    header("Location: prompt.php"); 
    exit;
}

使用根据您的条件设置为1的标志,并将重定向从循环中移除

           $flag = 0;
           while ($prompt = mysql_fetch_array($account_prompt))  {


                if ($prompt['account_prompt'] == '1') $flag = 1;
            }

            if ($flag == 1)
                  redirect_to("prompt.php"); 

使用根据您的条件设置为1的标志,并将重定向从循环中移除

           $flag = 0;
           while ($prompt = mysql_fetch_array($account_prompt))  {


                if ($prompt['account_prompt'] == '1') $flag = 1;
            }

            if ($flag == 1)
                  redirect_to("prompt.php"); 


退出如果您尝试了您提供的原始代码,就太好了,但不起作用。出口是什么;你在之后的评论中说,我是否应该添加第二个出口?等等,等等,你到底在这里干什么,我猜你还没有分享你的全部代码,我猜,
exit
用于退出脚本,因此它不会继续..有点停止您的agree语句和此脚本在同一页面上吗?当用户登录时,他们会正常转到dashboard.php。否则,如果要对它们进行提示,并且account_prompt设置为=1,那么dashboard.php中就有代码将它们重定向到prompt.php。就这些。但在他们接受声明后,我希望他们能够转到仪表板,但由于redirec,他们只是返回提示符。php@DaveSmith我确信你会陷入一个无休止的循环中,因为重定向只会发生1秒…然后
exit
如果您尝试了您提供的原始代码,就太好了,但不起作用。出口是什么;你在之后的评论中说,我是否应该添加第二个出口?等等,等等,你到底在这里干什么,我猜你还没有分享你的全部代码,我猜,
exit
用于退出脚本,因此它不会继续..有点停止您的agree语句和此脚本在同一页面上吗?当用户登录时,他们会正常转到dashboard.php。否则,如果要对它们进行提示,并且account_prompt设置为=1,那么dashboard.php中就有代码将它们重定向到prompt.php。就这些。但在他们接受声明后,我希望他们能够转到仪表板,但由于redirec,他们只是返回提示符。php@DaveSmith我敢肯定你陷入了一个无休止的循环,因为重定向只发生1s…您是否也有相同的代码来检查prompt.php中的account\u提示符?您是否也有相同的代码来检查prompt.php中的account\u提示符?在prompt.php页面上更新数据库,以便将
'account\u提示符'
字段设置回0。然后下次他们登录时不会得到提示。嗯,是的,但他们单击“我同意”声明时我会这样做。但是如果不可能重定向一次,那么如果将值设置回0更容易,那么是的,这会更好。您不想在他们每次登录时重定向他们,直到他们单击“我同意”按钮吗?要么你只想向他们展示一次,要么你想每次都展示,直到他们点击“我同意”。如果两者都需要,则需要跟踪数据库中两个不同字段中的数据(可能是account\u prompt和account\u prompt\u accepted)。如果您希望它只显示一次,那么当页面加载时,将字段设置回0,我仍然感到困惑。您希望根据存储在数据库中的值重定向一次,但在用户单击“prompt.php”页面上的某个内容之前,不希望更改数据库以表示重定向已经发生。我不明白你怎么能两者兼得。继续显示提示页面,直到他们单击“我同意”,或者在显示页面时重置数据库值,或者另一列显示您显示了提示,但他们不同意提示。php页面更新数据库,以便将
'account\u prompt'
字段设置回0。然后下次他们登录时不会得到提示。嗯,是的,但他们单击“我同意”声明时我会这样做。但是如果不可能重定向一次,那么如果将值设置回0更容易,那么是的,这会更好。您不想在他们每次登录时重定向他们,直到他们单击“我同意”按钮吗?要么你只想向他们展示一次,要么你想每次都展示,直到他们点击“我同意”。如果两者都需要,则需要跟踪数据库中两个不同字段中的数据(可能是account\u prompt和account\u prompt\u accepted)。如果您希望它只显示一次,那么当页面加载时,将字段设置回0,我仍然感到困惑。您希望根据存储在数据库中的值重定向一次,但在用户单击“prompt.php”页面上的某个内容之前,不希望更改数据库以表示重定向已经发生。我不明白你怎么能两者兼得。要么继续显示提示页面,直到他们单击“我同意”,要么在您显示页面时重置数据库值,或者另一列显示您显示了提示页面,但他们不同意