美好的一天。我希望对以下代码获得一些帮助:
- 用户进行选择
- 当触发提交时,单击提交时,记录了选择
- 如果余额是无关的重定向到存款页面
- 其他过程选择并上传到DB
现在在以下条件下收到错误
- 用户的余额为零,应重定向到存款。php
我的代码是:
if(isset($_POST["submit"])){
if($_SESSION['FBID']){ //Facebook session
$balance = getBal($userId);
if($balance < 50){
header("location:deposit.php");
}
else{
$winner = $_POST['picks'];
$score = $_POST['score'];
echo $winner, $score;
$sql="INSERT INTO picks(member_nr,event_id,pick,score)
VALUES('$uid','$id','$winner','$score')";
mysql_query($sql)or trigger_error(mysql_error()." in ".$sql);
echo'<div id="dispPicks">';
echo'<h3 style="color:red">YOUR PICKS HAVE BEEN SUBMITTED</h3>';
echo'<h5 style="color:blue">You will be Redirected to Homepage in 3 Seconds</h5>';
echo'<meta http-equiv="refresh" content="3;url=index.php" />';
echo'</div>';
}
错误说明以下内容:
无法修改标头信息 -
已经发送的标题我正在考虑替换header("location.php")
用
<meta http-equiv="refresh" content="3;url=deposit.php" />
但我担心并非所有用户都会重定向吗?
如果有人可以提供一些帮助或建议,将不胜感激
这几乎是您可以用标头做的。
在标题()
if($balance < 50){
header("location:deposit.php");
exit;
}
您不能在发送HTTP标头之前首先回声。
任何回应的都是页面内容,内容,无论哪种类型,都必须具有HTTP标头,以指示浏览器刚刚收到的哪种类型的HTTP响应。
发送标头后,您就会陷入困境。
我更喜欢这种方法,主要是因为它要快得多。它不需要浏览器执行另一个往返HTTP请求。
if($balance < 50){
include('/home/user/public_html/deposit.php');
exit;
}
我个人对"您将在X秒内重定向"的消息感到恼火
我会设置$ popwinner = true,并包括home.php,$ winner和$得分的值在home.php中仍然有效。
else{
$winner = $_POST['picks'];
$score = $_POST['score'];
$popWinner = true;
$sql="INSERT INTO picks(member_nr,event_id,pick,score)
VALUES('$uid','$id','$winner','$score')";
mysql_query($sql)or trigger_error(mysql_error()." in ".$sql);
$popWinner = false; // or some other value
include(/home/user/public_html/home.php');
}