$result=mysql_query($sql_info) or die("Error 1: ".mysql_error());
$no= mysql_fetch_array($result);
$groups_no = $no['number'];
mysql_num_rows($result) or die("Error 2: ".mysql_error());
// echo "what's going on?"; if I uncomment this line then the echo below executes
if(($this->user_group=="I am Talent") &&($groups_no==0)) {
header("Location: ".MAIN_URL.$this->groups_page);
echo "what's going on?"; //THIS DOESN'T EXECUTE BY ITSELF...WHY NOT??
}
if(mysql_result(mysql_query(sprintf("SELECT last_update FROM `users_profile` WHERE users_id=%d LIMIT 1",$this->id)),0)==0) {
header("Location: ".MAIN_URL.$this->groups_page);
}
echo "what's going on?"; //won't execute unless the line above
エコーステートメントがない限り、上記のコードが機能しない理由は誰にも分かりますか?私は最初のif文が実行されるべきであることを手動のデータベースチェックによって確認しました。特定の場所にエコーがない限り、PHPコードは実行されません。どうしてこれなの?
これは、変数MAIN_URLに格納されたリンクへのページのリダイレクトを引き起こすはずです。$ this-> groups_page(このリダイレクトの欠如が元の問題でした)。ただし、if文またはif文のいずれかにエコーがなければ、header( "Location:...")部分は実行されません。なぜこれが地球上にあるのでしょうか?私はヘッダー( "場所:" .MAIN_URL。$ this-> groups_page)の後にエコーステートメントを置く。最初のif文の行に記述され、実行されませんでした。ヘッダー(...)行の前にecho文がある場合にのみ実行されます。
これはほとんど読めません。もっと簡潔にできますか? –
私はそれを煮詰めようとします。 –
[ヘッダが既に送信されました](http://stackoverflow.com/search?q=headers%20already%20sent)とoutput_bufferingのいくつかの変形が有効かどうか。 – mario