|
|
|
| Составлена форма :
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Добавление данных</title>
</head>
<div class="Content">
<form action="add_article_post.php" method="post" name="form">
<p><label>title<br><input name="title" type="text" id="title"></label></p>
<p><label>text<br><textarea name="text" cols="80" rows="20" id="text"></textarea></label></p>
<p><label><input type="submit" name="Submit" value="Занести в базу"></label></p>
</form>
</div>
</body>
</html>
|
Введенные данные передаются в файл:
<?php include ("block/bd.php");
if (isset($_POST['title'])) {$title = $_POST['title']; if ($title == '') {unset($title);}}
if (isset($_POST['text'])) {$text = $_POST['text']; if ($text == '') {unset($text);}}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<div >
<?php if (isset($title) && isset($text))
{$result = mysql_query ("INSERT INTO articles (title,text) VALUES ('$title','$text')");
if ($result == 'true'){echo "<p>$title</p><p>$text</p>";}
else {echo "<p>Данные не добавлены!</p>";}}
else{echo "<p>Данные добавлены не полностью. Заполните поля.</p>";}
?>
</div>
</body>
</html>
|
Проблема. Текст, который я ввожу в поле text не вседа попадает в базу данных и не всегда отображается браузере.
Проверял по разному. Как правило с небольшим текстом проблем нет, а начиная от 3000 знаков и больше - то проходит в базу, то появляется фраза "Данные не добавлены".
Текст в поле вводил путем копирования, а если набираю в ручную или добавляю небольшими частями все работает и при больших объемах текста.
Не пойму, что может мешать. По идее тег <textarea> позволяет ввести любой по объему и по виду текст( я имею введу наличие тегов в тексте). Помогите. | |
|
|
|
|
|
|
|
для: Сергей Серый
(05.07.2011 в 10:26)
| | Структуру БД в студию | |
|
|
|
|
 28.9 Кб |
|
|
для: ONYX
(05.07.2011 в 10:33)
| | Не знаю,как правильно подавать структуру БД "в студию", - я на форуме недавно. Прикрепил скриншот. Если не понятно, то на пальцах объясню: в БД табл."articles", в ней три поля: id, title, text.
Типы полей: int, varchar, text соответственно. Вот и вся БД. Находится она на локальном сервере. | |
|
|
|
|
|
|
|
для: Сергей Серый
(05.07.2011 в 10:26)
| | какой тип данных для поля text?
установите TEXT и попробуйте снова
ещё полезно использовать mysql_error() и mysql_errno(), чтобы видеть ошибки при выполнении запроса к базе
<?php
$query = "INSERT INTO articles (title,text) VALUES ('$title','$text')";
if(!mysql_query($query)){
echo mysql_error();
}
else{
echo "данные записаны";
}
?>
|
| |
|
|
|
|
|
|
|
для: Slo_Nik
(05.07.2011 в 10:44)
| | Спасибо за попытку помочь!
Тип данных поставил "TEXT" ничего не изменилось.
На вашу рекомендацию о проверке ( echo mysql_error(); ), скрипт отреагировал следующим образом:
Когда количество текста небольшое данные в базу попадают, но в браузере выводится "You have an error in your SQL syntax near '1' at line 1". Когда текст длинный, то "Query was empty".
Такое впечатление, что форма анализирует вид текста, как ввели его в поле - бред какой-то. | |
|
|
|
|
|
|
|
для: Сергей Серый
(05.07.2011 в 21:08)
| | Скорее всего текст у вас содержит кавычки, данные перед вставкой следует экранировать
<?php
...
if (!get_magic_quotes_gpc())
{
$title = mysql_escape_string($title);
$text = mysql_escape_string($text);
}
$result = mysql_query ("INSERT INTO articles (title,text) VALUES ('$title','$text')");
...
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(05.07.2011 в 23:59)
| | Да, на самом деле. В текстовое поле формы вводился текст на украинском языке. В некоторых словах присутствует апостроф " п'ять, зв'язок " и т.д. SQL на них и реагировал. Спасибо за совет по экранированию данных. Спасибо всем, кто отозвался!!! | |
|
|
|
|
|
|
|
для: Сергей Серый
(05.07.2011 в 10:26)
| | Уважаемый автор, а вы часом кавычки не забываете экранировать....
При определенных настройках сервера, к примеру одинарные кавычки могут сыграть весьма дурную шутку... | |
|
|
|
|
|
|
|
для: Tamplier
(05.07.2011 в 10:57)
| | Спасибо за напоминание, но игра с кавычками ничего не дала. Сервер обычный, локальный, с настройками по умолчанию. | |
|
|
|
|
|
|
|
для: Сергей Серый
(05.07.2011 в 10:26)
| | Что возвращает функция mysql_error()? | |
|
|
|