Я получаю эту ошибку
Неприемлимо
Соответствующее представление запрошенного ресурса
/admin/prc_res.php не может быть найден на этом сервере.Кроме того, возникла ошибка 406 Недопустимо при попытке
использовать ErrorDocument для обработки запроса.
Eсть $_POST['additionalinfo']
(из HTML teaxtarea
) который дает мне эту ошибку. Если я удаляю это, код работает нормально.
Но почему я получаю 406
ошибка?
Мой index1.php в unnat1ir.in/cdn/
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>406 Error</title>
</head>
<p><form method="post" action="process.php">
<textarea name="test" rows="10" style="width:100%"></textarea><br>
<button type="submit">Check for 406 Error</button>
</form>
</p>
<p>This form is posted to <code>process.php</code>. In <code>process.php</code> I am just echo-ing <code>$_POST['test']</code> of the <code>textare with tinymce plugin</code>. <strong>If little amount of data is entered in textarea, no issues, BUT LARGE DATA will cause <code>406</code> error</strong></p>
<h1>Please check by inserting large <code>html</code> data </h1>
<body>
</body>
</html>
И process.php
<?
ini_set("log_errors", 1);
ini_set("error_log", "err.txt");
?>
<h1>The <code> echo ($_POST['test'])</code> is</h1>
<hr>
<code><? echo htmlentities($_POST['test']); ?></code>
<hr>
Все вышеперечисленные коды работают нормально на localhost
это потому, что вы не экранируете некоторые html-символы, которые вводятся через поле textarea, такие как кавычки и т. д. Попробуйте приведенный ниже код, который работает.
mysql_escape_string($_POST['additionalinfo']);
Это должно быть проблемой с вашим php.ini
конфиг, попробуйте отредактировать
post_max_size=80M
или что-то, чтобы увеличить лимит.
попробуй это :
<?
ini_set("log_errors", 1);
ini_set("error_log", "err.txt");
?>
<h1>The <code> echo (htmlspecialchars($_POST['test']))</code> is</h1>
<hr>
<code><? echo htmlspecialchars($_POST['test']); ?></code>
<hr>
Судя по всему, это решено, но я подумал, что могу дать вам некоторый контекст.
406 Ошибки возникают, когда сервер настроен на отклонение запросов, которые соответствуют или не соответствуют определенным условиям.
Ваш хостинг-провайдер, вероятно, возился со своими правилами mod_security, а ваша форма вызывала непреднамеренный отказ от Apache.
Правила mod_security могут быть очень сложными и сложными, потому что они обычно настраиваются на одной линии.
Если вас беспокоит безопасность, вы можете проверить у своего хоста, отключили ли они mod_security для вашего сайта или просто перенастроили его.
Вы можете проверить, активна ли mod_security на вашем сайте, загрузив файл с именем phpinfo.php
на ваш сайт, который просто содержит <?php phpinfo() ?>
,
Загрузите страницу в браузере и затем найдите mod_security
, Если это так, то они просто исправили свою конфигурацию mod_security.
Если нет, то они просто удалили его с вашего сайта.
Рад, что это решено.
Я обнаружил, что эта ошибка возникает из-за того, что вы пытаетесь вставить ‘±’ значения такого типа. Если вы удалите этого персонажа и отправите форму, ваша форма будет успешно отправлена. Таким образом, решение заключается в том, что вы должны использовать знак «±» вместо «±» или использовать коды символов html, тогда только ваша информация будет сохранена в базе данных.
Попробуйте этот код (см. Открывающие теги):
<?php
ini_set("log_errors", 1);
ini_set("error_log", "err.txt");
?>
<h1>The <code> echo ($_POST['test'])</code> is</h1>
<hr>
<code><?php echo htmlentities($_POST['test']); ?></code>
<hr>