2013-11-12 3 views
1

На удаленном сервере нет проблем, но в localhost (xampp 3.1.) Я не могу отключить уведомления об отчетах.Как отключить уведомление о регистрации в xampp?

<?php 
$Fname = $_POST["Fname"]; 
... 

результат:

Notice: Undefined index: Fname in D:\xampp\htdocs\xx\php01\form01.php on line 6 

php.ini

; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED 
; Development Value: E_ALL 
; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT 
; http://php.net/error-reporting 
error_reporting = E_ALL & ~E_NOTICE //shouldn't this line turn off notice reporting ? 

Любое предложение?

+7

Почему вы хотите отключить уведомления для разработки? Лично в среде Dev, я считаю, вы должны использовать 'E_ALL', и все. Вы проверили, что вы не изменяете это значение во время выполнения? –

+2

Лучший способ действий - исправить ошибки. Сообщает об ошибках _are_, но из тех, от которых программа может восстановиться. '$ Fname = isset ($ _ POST ['Fname'])? $ _POST ['Fname']: ''; ' –

+0

Подавление уведомлений - это немного похоже на подвешивание обоев вокруг разрушающихся гипсовых стен. –

ответ

1

Попробуйте сделать phpinfo(); непосредственно перед вашей линией $Fname = $_POST["Fname"];. Какова стоимость свойства error_reporting? См. this или this, чтобы понять значение, отображаемое в таблице.

Если это не то, что вы ожидали, убедитесь, что свойство не изменено с помощью php. Возможно также, что вы отредактировали неправильный файл php.ini: XAMPP имеет тенденцию копировать исходный файл php.ini и создавать свои собственные. Используйте phpinfo();, найдите строку «php.ini» в таблице: вы найдете путь к файлу php.ini.

Последнее, может быть, проблема в том, что вы неправильно перезапустили apache после того, как вы изменили файл php.ini. Дело в том, что xamp - это отличный процесс службы apache. Закрытие XAMP не приводит к остановке службы apache, лучше использовать панель управления XAMPP для остановки/запуска apache.

+0

Итак, что вы получаете? – OlivierH

+0

OliverH, я получил все таблицы phpinfo и в конце - 'Примечание: Неопределенный индекс: Fname в D: \ xampp \ htdocs \ xx \ php01 \ form01.php в строке 7' – bonaca

+0

Да, но что вы получили на phpinfo Таблица ? Я имею в виду поиск строки error_reporting и отображение значения. – OlivierH

7

Запишите этот код в начале вашего файла.

ini_set('display_errors', 0); 
error_reporting(E_ERROR | E_WARNING | E_PARSE); 

Edit1

Если вы не хотите использовать выше линии, то вы должны написать @ перед тем $_POST подавлять уведомления, как

$Fname = @$_POST["Fname"];

Edit 2

С этой строкой error_reporting = E_ALL & ~E_NOTICE также изменяется display_errors = Off, хотя его плохая практика программирования.

+0

Noor, спасибо, это работает, но в этом случае я должен писать эти строки в каждом файле. Почему это невозможно сделать на уровне php.ini? – bonaca

+2

Ваш файл 'php.ini' с этим кодом' error_reporting = E_ALL & ~ E_NOTICE' должен абсолютно сделать трюк. Не знаете, почему он не работает с вами. Вы используете какой-либо фреймворк/CMS, возможно, там 'error_reporting' снова установлен на значение true – Noor

+1

Noor, no framework, no cms. Но если вы не видите никаких ошибок в моей строке php.ini - допустим, решили. Кто знает, что может быть настоящей причиной. Спасибо, больше. – bonaca

2

Если ваши работают XAMPP и хотят отключить уведомления (или другие функции):
1. Убедитесь, что редактирование правильного INI-файла (выбрать конфигурации с панели управления)
2. Включите display_errors = на
3. Включите error_reporting = E_ALL & ~ E_NOTICE (Это будет только подавить ошибки уведомления)
4. Важно - Убедитесь, что XAMPP не перекрывая ваши настройки далее вниз файла (прочитать извещение выше первого набора параметров)
5. Остановить и запустить Apache после сохранения файла

0

Самый простой способ решить эту проблему следующим образом: 1. Выключите сервер Apache 2. Перейдите в C: \ XAMPP \ PHP \ 3. Переименовать php.ini в php.ini.bak 4 Переименуйте php.ini-production в php.ini 5. Включите сервер снова.

У этого есть недостаток, что он возвращает все в производственный режим. но вы всегда можете отменить это.

+0

Я думаю, было бы лучше получить базовое понимание конфигурации php и только изменить необходимые значения. –

Смежные вопросы