У меня есть база данных, содержащая в себе статьи. Ячейка хранящая текст статьи иметт тип longtext.
Так же я реализовал создание списка в стиле bb-code. Каждый раз, когда статья загружается из базы данных, перед отображением она обрабатывается следующим образом:
$content = str_replace('[ul]', '<div><ul>', $content);
$content = str_replace('[/ul]', '</li></ul></div>', $content);
$content = str_replace('[*]', '</li><li>', $content);
Попытка записать в базу данных через форму следующий текст ни к чему не приводит - существующие тексты не редактируются, новые статьи отказываются создаваться:
[ul][*]пробую
[*]это
[*]записать
[/ul]
Напрямую через PhpMyAdmin текст получается поместить в поле, значит проблема не в непосредственно записи в базу данных. Любое другое редактирование текста работает нормально.
Код, который может быть полезен в решении вопроса
Код формы отправки текста:
<form action="sys/correct.php" method="post">
<fieldset>
<input type='hidden' name='author' class='form-control' value=<?echo "'".$_POST['author']."'";?>>
<input type="hidden" name="ida" class="form-control" value=<? echo "'".$id."'"; ?>>
<div>
<input type="text" name="name" class="form-control" value=<? echo "'".$article["name"]."'"; ?>>
<select>
<?
$cat = mysqli_query($mysql, "SELECT * FROM categories");
$el = mysqli_fetch_assoc($cat);
do
{
echo "<option ";
if ($article["category"] == $el["id"]) echo "selected";
echo ">".$el["name"]."</option>";
$el = mysqli_fetch_assoc($cat);
}
while ($el!=NULL);
?>
</select>
</div>
</fieldset>
<fieldset>
<div class="row">
<label for="imgload">Загрузка картинки</label>
<button type="submit" class="form-control f_marg"><img src="sysimg/check.png"></button>
<textarea name="content" rows="20" class="form-control f_marg"><? echo $article["content"]; ?></textarea>
<p><a href="bb_help.html" target="_blank">Справка по синтаксису BB-code</a></p>
</div>
</fieldset>
</form>
Код правки базы данных:
<?
$link = mysqli_connect('localhost', 'root', '', 'thimpor_data');
$author = $_POST["author"];
$id = $_POST["ida"];
$name = $_POST["name"];
$cont = $_POST["content"];
$name = htmlspecialchars($name);
$cont = htmlspecialchars($cont);
if (empty($_POST['name'])) {echo "<script> alert( 'Не оставляйте название статьи пустым' ); </script>";}
else
{
if ($id=='createnew')
{
$result = $link->query("INSERT INTO pages (name, author, content) VALUES ('$name','$author','$cont')");
$result = $link->query("SELECT * FROM pages WHERE name = '$name'");
$art = $result->fetch_assoc();
$link = 'Location: ../article.php?id='.$art["id"];
}
else
{
$result = $link->query("UPDATE pages SET name = '$name', content = '$cont' WHERE id = '$id'");
$link = 'Location: ../article.php?id='.$id;
}
header($link);
var_dump($cont);
}
?>
<script type="text/javascript">history.back()</script>