PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
scurra
Отправлено: 26 Ноября, 2016 - 20:08:48
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Нояб. 2016  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2. echo $_POST["textvalu"];
  3. $ttext=$_POST["textvalu"];
  4. $utext="777".mysql_real_escape_string($ttext);
  5. mysql_query("INSERT INTO `111`(`text`) VALUES ('$utext')");


Данный кусок кода записывает в БД только "777", но выводит в первой строке именно тот текст, что был введен в форме отправки. В общем mysql_real_escape_string обрезает полностью то, что пришло из формы в <textarea></textarea>.
Какие идеи?

(Отредактировано автором: 26 Ноября, 2016 - 20:09:38)

 
 Top
Denkill
Отправлено: 27 Ноября, 2016 - 10:53:24
Post Id



Посетитель


Покинул форум
Сообщений всего: 330
Дата рег-ции: Янв. 2013  
Откуда: Барнаул


Помог: 7 раз(а)




Скорее всего $_POST['textvalu'] пуст. Иначе не может быть.


-----
Хо-Хо-Хо
 
 Top
Строитель
Отправлено: 27 Ноября, 2016 - 12:33:57
Post Id



Частый посетитель


Просматривает форум
Сообщений всего: 972
Дата рег-ции: Февр. 2014  


Помог: 33 раз(а)




scurra пишет:
Какие идеи?

1. Распечатать строку $utext = "777". mysql_real_escape_string($ttext);
PHP:
скопировать код в буфер обмена
  1. echo '<pre>'; var_dump($utext); echo '</pre>';


2. Проверить тип данных поля, в которое записывается строка из переменной $utext, и его размер.
 
 Top
scurra
Отправлено: 27 Ноября, 2016 - 13:33:05
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Нояб. 2016  


Помог: 0 раз(а)




Denkill пишет:
Скорее всего $_POST['textvalu'] пуст. Иначе не может быть.

первая строчка кода выводит $_POST["textvalu"] на страницу нормально.
(Добавление)
Строитель пишет:
scurra пишет:
Какие идеи?

1. Распечатать строку $utext = "777". mysql_real_escape_string($ttext);
PHP:
скопировать код в буфер обмена
  1. echo '<pre>'; var_dump($utext); echo '</pre>';


2. Проверить тип данных поля, в которое записывается строка из переменной $utext, и его размер.


string(3) "777"
в БД $utext пишется в VARCHAR(1024)
вот форма

CODE (html):
скопировать код в буфер обмена
  1. <form action="contacts.php" method="post" enctype="multipart/form-data">
  2. <textarea name="textvalu" cols="78" rows="20" maxlenght="1024"></textarea><br><br>
  3. <center><input type="file" name="filename"><br><br>
  4. <input type="submit" value="Загрузить"><br></center>
  5. </form>


проблема в том, что в первой строке кода $_POST["textvalu"] содержит введенные в форме данные, а после mysql_real_escape_string(), они исчезают сказочным образом.

Проверил - mysql_real_escape_string() с любой строковой переменной на выходе дает "ничего".

PHP Version 5.6.24-0+deb8u1
в этой версии может какие-то траблы с этой функцией?
(Добавление)
РЕШЕНО: функция mysql_real_escape_string нужно использовать ПОСЛЕ установления соединения с БД, а не ДО.

(Отредактировано автором: 27 Ноября, 2016 - 14:10:54)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB