Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > Текст из формы в базу


Автор: goltara 4.4.2008, 22:19
Проблема , как говорится на ровном месте, к тому же совсем странная.
Есть два файла : первый с формой для ввода текста поле textarea, второй - обработчик, который заносит текст из поля в Б/Д. Теперь самое интерестное. Когда в поле ввожу большой текст (минимум 10 предложений) в базу ничего не попадает выполняется код
Код

else  
    { 
    echo " <center><p>Введите текст !!! </p></center>"; 
    } 
     
    ?>

Получается переменная не создана.
Если тот же текст пишу по одному предложению и обновляю то выполняется код
Код

if (  isset ($description) and  isset ($text) ) 
{echo "<p>Текст добавлен. </p>";}

Все работает. Тоесть по чуть-чуть добавляю текст - создает переменную, оптом - нет. Все действие происходит на локалке .
Может встречался кто с такой непоняткой и сможет мне помочь , как избавиться от этой проблемы?

Автор: source777 4.4.2008, 23:46
1) Весь код в студию.
2) Если в нём не встречается $_POST, то лучше спасайся бегством, ибо иначе камнями закидаем... smile 

Автор: Feldmarschall 5.4.2008, 12:11
Предполагаю, что проблема в методе передачи.
method="POST" в форме

Автор: goltara 5.4.2008, 14:12
Вот код обработчика 
Код

if (isset ($_POST['description'])) {$description = $_POST['description'];}
if (isset ($_POST['text'])) {$text = $_POST['text'];}

if ( isset ($description) and  isset ($text))
    {
    /*Тут пишем что нужно внести в базу*/
    $result = mysql_query ("INSERT INTO lessons ( description, text) VALUES ( '$description', '$text') ");
    if ($result == 'true') {echo "<p>Текст добавлено. </p>";}
    else {echo "<p>Текст не добавлено. </p>";}
    
    }
    else 
    {
    echo " <center><p>Заполните все поля !!! </p></center>";
    }
    

 Код  в файле с формой , код в начале формы 
Код

<form name="form1" method="post" action="update.php">


Код работает только тогда когда мало текста, как только вставляю или пишу больше двух предложений - не добавляет текст в базу.

Автор: Feldmarschall 5.4.2008, 14:24
и в каком месте этого кода расположен текст
Код

else  
    { 
    echo " <center><p>Введите текст !!! </p></center>"; 
    } 
     
    ?>

?

Добавлено через 3 минуты и 26 секунд
если это
Цитата(goltara @  5.4.2008,  14:12 Найти цитируемый пост)
    else 
    {
    echo " <center><p>Заполните все поля !!! </p></center>";
    }

то при чем здесь база данных? почему вопрос задан в разделе "PHP: Базы Данных"  и озаглавлен "текст не попадает в базу"?

Автор: goltara 5.4.2008, 15:09
Текст вводится в форму , содается переменная $text и должен вставляется в базу в указанные поля
Код

$result = mysql_query ("INSERT INTO lessons ( description, text) VALUES ( '$description', '$text') ");

Автор: Feldmarschall 5.4.2008, 15:11
Цитата(goltara @  5.4.2008,  15:09 Найти цитируемый пост)
 содается переменная $text 

кто тебе сказал, что она создается?
судя по твоим же собственным словам. переменная, как раз, НЕ создается.

Ты можешь, наконец, определиться? Что у тебя создается и какой код выполняется?

Автор: goltara 5.4.2008, 15:45
В этом то и вся заковыка. Если в поле ввожу мало текста (одно предложение) переменная  $text создается и на экран выводится сообщение "Текст добавлено", а если в это же поле ввожу много текста (несколько предложений) переменная  $text почему то не создается и выводится сообщение "Текст не добавлено".  Вот и не могу понять где ошибка и почему так получается.

Автор: ksnk 5.4.2008, 15:56
Нужно почитать в мане про функцию http://www.php.net/manual/ru/function.mysql-real-escape-string.php и догадаться, к чему это я smile

Автор: goltara 5.4.2008, 16:06
Ну наконец то хоть какой то путь указали. Спасибо, иду смотреть , попробую подправить код, напишу что получилось.

Автор: Feldmarschall 5.4.2008, 16:40
Цитата(goltara @  5.4.2008,  16:06 Найти цитируемый пост)
Ну наконец то хоть какой то путь указали.

Ё
Цитата(goltara @  4.4.2008,  22:19 Найти цитируемый пост)
echo " <center><p>Введите текст !!! </p></center>";

Цитата(goltara @  5.4.2008,  14:12 Найти цитируемый пост)
echo " <center><p>Заполните все поля !!! </p></center>";

Цитата(goltara @  5.4.2008,  15:45 Найти цитируемый пост)
"Текст не добавлено".  

Невозможно указать путь человеку, который не знает, куда идет

Автор: goltara 5.4.2008, 19:35
ksnk, спасибо за подсказку ! Стоило вставить этот код и все заработало !!!
Код

$description=mysql_real_escape_string($description);
$text=mysql_real_escape_string($text);


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)