$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
Кто-нибудь знает, почему приведенный выше код не будет работать, если не существует эхо-инструкции? Я подтвердил с помощью ручных проверок базы данных, что должен выполняться оператор first if.PHP-код не будет выполняться, если в определенном месте нет эха. Почему это?
Это должно привести к перенаправлению страницы на ссылку, хранящуюся в переменной MAIN_URL. $ This-> groups_page (и это отсутствие перенаправления было исходной проблемой). Однако часть заголовка («Местоположение: ...») не выполняется, если нет эха в инструкции if или выше оператора if. Почему это так? Я поставил выражение эха ПОСЛЕ заголовка («Местоположение:» .MAIN_URL. $ This-> groups_page); строка в первом if-statement и не выполнялась. Это будет выполняться только в том случае, если у меня была команда echo перед строкой заголовка (...).
Это почти нечитаемо. Вы можете быть более краткими? –
Я постараюсь сварить его. –
Некоторые варианты [заголовки уже отправлены] (http://stackoverflow.com/search?q=headers%20already%20sent) и output_buffering включены или нет. – mario