[php] Возбудить Internal Server Error

feliks28

Можно ли искуственно возбудить 500ю ошибку?
Такой вот вариант не работает:
  if(!$file = @fopen($filename, "r"
{
header ("HTTP/1.0 500 Internal server error");
}
else
{
fpassthru($file);
}

Marinavo_0507

Какой-нибудь exit(1) не покатит?

feliks28

Нет.
Нужно управление передать файлу который в .htaccess как "ErrorDocument 500 ..." прописан.

feliks28

Может быть хотя бы идеи в какую сторону копать?

ppplva

Сдохнуть с большим шумом.
Попробуй abort или sig11 себе послать, и т.д.

skvoria

Вариант:
если имеешь доступ к обработчику (знаешь, где лежит ) можешь выставить переменные окружения REDIRECT_STATUS в 500 internal server error, REDIRECT_URL в нужный тебе и вызвать скрипт обработчика напрямую.

feliks28

abort'а php не знает...
А sig11 это для линукса что-то? Тогда не катит...

feliks28

Ну во-первых таким образом скрипт жестко привязывается к сайту.
А во-вторых это просто неспортивно!

Marinavo_0507

мда
в php даже exit неправильно работает
и после этого ещё спорят с тем, что php - остой

sergei1969

сделать деление на 0 ?

artimon

Фиг
Warning: Division by zero

sergei1969

хм....
как-то у меня получалось такое
может бесконечная рекурсия?

laki

цепляешь джавовский класс и в нем делаешь
System.out.println("some text");
ошибка гарантирована

skvoria

Кстати, для справки:
вывод любой информации без заголовка карается 500 ISE.
Не знаю, правда, можно ли это делать в ПХП. В перле - легко.

ppplva

if(!$file = @fopen($filename, "r"
{
header ("HTTP/1.0 500 Internal server error");
}
else
{
fpassthru($file);
}
А что он делает ? Неужели хедер не добавляется ?

feliks28


HTTP/1.1 500
Date: Thu, 27 Jan 2005 14:35:55 GMT
Server: Apache/2.0.46 (Win32)
X-Powered-By: PHP/4.3.2
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=WINDOWS-1251

И пустая страница.

ppplva

ErrorDocument 500 есть ?

feliks28

Во-первых есть.
Во-вторых если б не было, то апач в случае настоящего Internal Server Error вывел бы стандартную страницу, а нет даже ее.

stm7884696

мб, ты просто удалил стандартную страницу... Или что ты подразумеваешь под таковой?
Все страницы с ошибками изначально на локольном компе..

Fragaria

ошибка посылкой хедера не возбуждается, понятное дело. Апач не смотрит, какой заголовок от скрипта идёт, поэтому и не подставляет стандартную страницу

stm5981037

бред имхо. Страницы с ошибками лежат локально. Апачу вообще пофиг какой заголовок, он посылает то что ему сказали и ничего не показывает. Не пофигу браузеру. Вот он и показывает страницу с ошибкой.
Например, у меня php скрипт генерит ошибку "страница не найдена".
   
function show_not_found
{
header("Status: 404 Not Found");
header("HTTP/1.0 404 Not Found");
}
Оставить комментарий
Имя или ник:
Комментарий: