- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
<?php
include(db_connect.php);
$name = $_POST["name"];
$pass = $_POST["pass"];
$email = $_POST["email"];
$data = "INSERT INTO userlist (id_user, name, pass, email) VALUES (NULL , "$name" , "$pass" , "$email" )";
if(mysql_query($data)){
echo("data transfered");
}else{
return false;
}
?>
Konardo 21.02.2014 13:11 # −11
Konardo 21.02.2014 13:12 # −11
Konardo 21.02.2014 13:13 # −9
ragnar 21.02.2014 14:13 # +5
norto, очевидно, что здесь ошибка в Деструктуризации Нормальной Конкатенации.
Konardo 21.02.2014 14:21 # −13
Vasiliy 21.02.2014 14:33 # +2
Отлично
anonimb84a2f6fd141 21.02.2014 18:23 # −1
Доооо...
guest 21.02.2014 14:02 # +2
Konardo 21.02.2014 14:20 # −13
guest 21.02.2014 14:20 # +6
2. Данные, встраиваемые в SQL-запрос, не экранированы: бегом читать о том, что такое 'SQL-инъекции'.
3. Совершенно бессмысленные переменные $name, $pass, $email.
4. Использование давно устаревшей библиотеки mysql, что приводит к необходимости встраивать значения непосредственно в sql-выражения. Библиотеки mysqli и pdo позволяют использовать 'подготовленные выражения', что обеспечивает защиту от инъекций и не требует явного экранирования значений.
Konardo 21.02.2014 14:24 # −10
Правда, одну ошибку ты так и не обнаружил. Но всё равно - смерть тебе.
anonimb84a2f6fd141 21.02.2014 18:24 # +1
И ты бегом читай, что такое параметризированные запросы.
guest 21.02.2014 21:40 # −1
guest 24.02.2014 19:11 # 0
com1 22.02.2014 00:02 # 0
2. бегом читать о php.ini.
3. внутри представленного контента возможно, но может парень вырезал пару строк?..
4. что mysqli, что pdo предоставляют возможность "встраивать значения непосредственно в sql-выражения", давайте запинаем их ногами.
Konardo 22.02.2014 01:56 # −2
bormand 22.02.2014 07:46 # +3
Более того, во многих диалектах sql можно юзать только 'строку' но не "строку".
> бегом читать о php.ini
Еще один фанат магических кавычек?
> давайте запинаем их ногами
А mysql, в отличие от mysqli и pdo вообще не позволяет делать что-то кроме "вставки значений в строку запроса". Собственно уже за это ее надо закопать.
bormand 22.02.2014 08:03 # +3
This feature has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 5.4.0.
Помним. Скорбим.
com1 23.02.2014 20:04 # 0
рандом упаси! смысл был заложен не в это. )))
> Собственно уже за это ее надо закопать.
покажите мне где я был против? и, опять же, смысл не в этом. )))
З.Ы. меня болеше порадовало
if (...)
echo '...';
else
return false;
guest 25.02.2014 02:39 # 0
А во что?
guest 25.02.2014 02:40 # 0
Эх, кто не видел \' на страницах? Алсо, от кодированных строк (хекс итд) оно не спасало вообще никак.
guest 25.02.2014 14:35 # +1
2. Это ты про устаревший идиотизм под названием "магические кавычки"?
3. Не мои проблемы. Что опубликовано - то и комментируется.
4. Бегом читать мануалы по PHP. Именно библиотека mysql, использованная автором вопроса, не позволяет сделать ничего, кроме прямого встраивания данных в запрос. Упомянутые же мной библиотеки mysqli и pdo позволяют использовать - в терминах php - "подготовленные выражения" (в visual studio именуемые "параметризованными запросами").
Dummy00001 21.02.2014 23:20 # −1
guest 07.03.2014 22:51 # −2
guest 07.03.2014 23:15 # 0