PHP — Xampp сообщает об ошибках, в то время как хостинг не

#php

#php

Вопрос:

Может ли кто-нибудь объяснить мне, почему при тестировании некоторого PHP-кода на localhost выдает предупреждения с ошибками, а при загрузке его на мой хостинг — нет?

Я нахожу это тревожным, поскольку это происходит не в первый раз, но, похоже, все равно работает нормально…

Пример:

Использование простого пароля защиты на одной странице:

 <?php
// Define your username and password
$username = "logitek_00164";
$password = "JHvzQ3jK";

if ($_POST['txtUsername'] != $username || $_POST['txtPassword'] != $password) {

?>

<form name="form" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">

<label for="txtUsername">Username:</label>

<input type="text" title="Enter your Username" name="txtUsername" />

<label for="txtpassword">Password:</label>

<input type="password" title="Enter your password" name="txtPassword" />
<input type="submit" name="Submit" value="Login" />
</form>
  

Сообщает об этой ошибке: Обратите внимание: Неопределенный индекс: txtUsername в C:xampphtdocstest_passwordindex.php в строке 6

Я знаю, что отключение отчетов об ошибках может быть решением (худшим), а с другой стороны, я мог бы решить проблему, но мне просто интересно, связана ли проблема с какой-либо конфигурацией PHP или нет.

Заранее благодарю вас

Ответ №1:

Потому что php в XAMPP настроен так, как в php.ini, а php на вашем сервере — нет.

Смотрите http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting

Это также может быть настроено внутри вашего php-скрипта. Смотрите http://php.net/manual/en/function.error-reporting.php

Комментарии:

1. в зависимости от заданной вами конфигурации будут генерироваться сообщения об ошибках и уведомления.

Ответ №2:

Вы должны использовать:

 if ((isset($_POST['txtUsername'])amp;amp;$_POST['txtUsername'] != $username )|| (isset($_POST['txtUsername'])amp;amp;$_POST['txtPassword'] != $password)) {
  

Ну, отчеты об ошибках также настроены в php.ini , которые вы можете отключить (я не буду рекомендовать при разработке) оттуда.

Комментарии:

1. Спасибо за рекомендацию, но, как вы сказали, отключить ее — не лучшее решение

2. Да, но написание кода без ошибок может быть одним из них, а также считается хорошей практикой.

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