Большие тексты через POST не сохраняет в бд

The_Wolf

Мой дом здесь!
Регистрация
21 Окт 2013
Сообщения
338
Реакции
200
Не сохраняет в бд большие тексты (через post) .
Как сделать чтобы работал ?

Кусок кода который сохраняет текст в бд :
PHP:
            $id                        =    $_POST['id'];
            $title                    =    htmlspecialchars($_POST['title']);
            $content                 =    $_POST['content'];
            mysql_query ("
            UPDATE text SET
                title='$title',
                content='$content'
                WHERE id='$id'
                ");
 
Какой тип данных у поля? Версия PHP какая?
 
PHP 5.3.27
 
Ну для начала, код должен быть примерно таким:
PHP:
            $title                    =    mysql_real_escape_string(htmlspecialchars($_POST['title']));
            $content                 =    mysql_real_escape_string(htmlspecialchars($_POST['content']));
Скорее всего в $content какие-либо спецсимволы были...
 
PHP:
mysql_query ("UPDATE text SET title='$title', content='$content' WHERE id='$id'") or die(mysql_error());
Как первое. Как второе не помешало бы чтобы воспринимались спец символы оборачивать это дело в base64 а то так фактически sql injection получается.
 
Как первое. Как второе не помешало бы чтобы воспринимались спец символы оборачивать это дело в base64 а то так фактически sql injection получается.
То есть зашифровать Base64 . да ?
как здесь можно атаковать через sql инъекцию ?
 
То есть зашифровать Base64 . да ?
как здесь можно атаковать через sql инъекцию ?
Примерно так
exploits_of_a_mom.png


Где ваша query может магически превратиться в

Код:
"UPDATE text SET title='lol';-- , content='$content' WHERE id='$id'

(все что после -- воспринимается у mysql как коментарий)

Для просмотра ссылки Войди или Зарегистрируйся
 
То есть зашифровать Base64 . да ?
как здесь можно атаковать через sql инъекцию ?
Да шифровать в base64 тогда можно принимать в базу все символы, а так обрабатывать запросы как написал Горбушка, mysql_real_escape_string и htmlspecialchars, а id вообще intval-ом. Главное правило в php - не доверять пользователю всё жестко проверять, ничего лишнего не пропускать.
 
Назад
Сверху