iwqn
@iwqn
Программист-самоучка

Как добавить статью с PHP кодом в БД MYSQL?

Я изучаю PHP, и в этом деле еще новичок. Решил сделать себе маленький блог, для собственного саморазвития, и слежению за своим прогрессом в изучении PHP.

Но случилось непонятное (я новичок), при попытке добавить в MYSQL БД статью с PHP кодом, мне выдает ошибку 403 Access denied.

Пробовал экранировать текст статьи с помощью htmlspecialchars и mysqli_real_escape_string но ничего не меняется. Почему так происходит?

Для примера добавлял в качестве php кода в статью простейшее

<?php
$a=1;
echo($a);
?>

Но все равно 403 Access denied.

Статьи без PHP кода добавляются в базу и отображаются на сайте нормально.

Сейчас заметил что ругаться сервер начинает только при наличии в статье символов

<?

именно этих двух и в таком порядке
  • Вопрос задан
  • 884 просмотра
Решения вопроса 1
iwqn
@iwqn Автор вопроса
Программист-самоучка
Написал в поддержку хостинга - пришел ответ

Запросы блокирует ModSecurity

Мы убрали из mod_security данное правило, которое блокировало попытки отправить код непосредственно через формы.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Quty
403 Access denied - ошибка не PHP или MySQL, а веб-сервера. Скорее всего у Вас неверное сконфигурирован виртуальный хост, либо же недостаточно прав на каталог, в котором находятся скрипты.
По поводу записи текста, то тут все в порядке, следующий код вполне успешно записывает строку, содержащую PHP код:
$stmt = $mysqli->prepare("INSERT INTO code_examples(code_text) VALUES (?)") or die;  
$stmt->bind_param("s", htmlspecialchars('<?php $i = 5; echo $i; ?>')) or die;
$stmt->execute() or die;
Ответ написан
infastin
@infastin
PHP программист
Я лично, так никогда не делал.
Попробуй к примеру добавить это в бд:
{a},
а потом обрабатывать в php:
<?php
  $a = 1;
  $text = str_replace("{a}", $a, "Здесь получаем статью из БД");
  return $text;
?>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы