#php #oracle
#php #Oracle
Вопрос:
Я использую php 5.2.13 и Oracle database.
И я пытаюсь скрыть сообщения об ошибках, но не работает.
Я пытался…
добавьте этот код на страницу, где возникает ошибка
ini_set(display_errors,0);
установите параметр в php.ini
display_errors = Off
… и что еще я должен сделать?? Я думал, что сделал достаточно.
И сообщение об ошибке приходит от Oracle следующим образом;
ORA-01400 cannot insert NULL into .....
Интересно, есть ли в php какие-либо модули, которые отображают сообщения об ошибках ..?
Спасибо.
Комментарии:
1. Если ошибки продолжают возвращаться и преследовать вас, они, вероятно, хотят, чтобы вы действительно исправили их, а не скрывали.
2. BoltClock// Но я намеренно создаю эту ошибку, чтобы проверить, скрыта она или нет.
3. Честно говоря, я нарушаю политики безопасности. Я должен это скрыть. Потому что ошибка показывает весь запрос.
4. Декард, зачем ты это сделал? Намеренное сокрытие ошибок по любой причине — просто плохая практика; вы должны работать над исправлением вещей, чтобы ошибок не было, а те, которые вы не можете предотвратить, должны обрабатываться, а не скрываться. И «нарушение политик безопасности»? Вы пытаетесь внедрить SQL на чужой сайт или что-то в этом роде?
5. Покажите код. Если у вас есть что-то вроде
query() or die( ... )
, настройки PHP на это не повлияют.
Ответ №1:
Это не ошибка PHP, а ошибка Oracle, ваш столбец не может быть нулевым — вам нужно указать значение. Вот почему ваш display_error не скрывает эту ошибку.
Я должен подчеркнуть — как и другие в комментариях — что единственная хорошая ошибка — это исправленная.
Комментарии:
1. Тестировщик обнаружил эту проблему, изменив параметры запроса. Это означает, что эти сайты слабы для атаки.
Ответ №2:
Как насчет использования LOG ERRORS INTO
в вашем DML, это должно позволить вам выводить ваши ошибки в таблицу для последующей проверки.
смотрите: http://www.oracle-developer.net/display.php?id=329
и: http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_9014.htm#BGBDIGAH