Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Ошибка 500 и PHP


Автор: sokpet 10.2.2010, 22:57
Подскажите плиз, что делать.

Запустил сайт на тестовом сервере Linux, PHP 5.2.12 и все работает превосходно. Теперь повесил тот же сайт на рабочий сервер, у них там IIS (сервер 2008) PHP 5.2.5 и файлы с расширением php выдают ошибку 500.
 Попробывал самый простой скрипт php - все работает. 
Позвонил системному администратору, там сказали, что скорее всего нужно поменять что-то в конфигурации php.ini. 

 Вопрос что там нужно менять??? или все таки это проблема со скриптом??? (тогда почему на сервере Linux все работает???)  

Заранее большое спасибо 

P.S. один из файлов котрые не работает - это форма обратной связи... 

Автор: skyboy 10.2.2010, 23:05
неужто в логах IIS ничего нету о причине сбоя? или администратор просто об этом скромно умолчал?

Автор: sokpet 10.2.2010, 23:20
вот именно, молчат как партизаны, типа думайте сами. И как простите быть в такой ситуации?

Добавлено через 2 минуты и 5 секунд
говоряn... скажите что нужно поменять в php.ini  и мы поменяем (кроме allow_url_fopen - это типа менять низя)

Автор: sokpet 11.2.2010, 02:36
вроде нашел проблема оказалась и в php.ini и в скрипте.  Если error_reporting: 6143 - то вылазят ошибки Undefined index... , если  error_reporting: 6135 - то все в порядке и работает.  
Уточните пожалуйста это баг или ошибка в скрипте? Если ошибка, то на сколько серьезная и как исправить?

Автор: skyboy 11.2.2010, 09:57
Цитата(sokpet @  11.2.2010,  01:36 Найти цитируемый пост)
то вылазят ошибки Undefined index...

Notice - это не ошибка. Notice - это совет, рекомендация.
А так "ошибка" в скрипте да. И заключается в том, что ты пытаешься прочитать элемент из массива, которого там нет. РНР возвращает тебе пустую строку и генерирует совет. И изменение параметра error_reporting не изменит этой ситуации.
Я с IIS не знаком, но все же рискну допустить, что надо установить display_errors в 0, а log_errors в 1, чтоб сообщения интерпретатора не выводились в поток.

Автор: sokpet 11.2.2010, 11:14
Спасибо за пояснение, все таки наверное лучше исправить скрипт, подскажите пожалуйста как это правильно сделать

PHP ругается на следующие строки:

Страница 1:

Undefined index: art ... в этой строке =         if(is_array($_POST['art'])){$val = implode("  ",$_POST['art']); }
Undefined variable: val ... в этой строке =     <input type="hidden" name="art[]" value="<?php echo $val; ?>"/>

Страница 2:

Undefined index: art ... в этой строке =         if(is_array($_POST['art'])){$val = implode("  ",$_POST['art']); }
Undefined variable: val ... в этой строке =     <input type="hidden" name="art[]" value="<?php echo $val; ?>"/>

Страница 3:

Undefined index: art ... в этой строке =      $array = $_POST['art'];
Undefined index: art ... в этой строке =      else {  $val = $_POST['art']; }
Undefined index: sub ... в этой строке =      <input type="hidden" name="exept" value="<?=$_POST['sub']?>">

Заранее спасибо


Автор: MoLeX 11.2.2010, 12:09
Код

if(is_array($_POST['art']))


так не проверяют, есть для этого isset()

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)