• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Получаю Post. Что дальше?

  • Автор темы Dasha
  • Дата начала
D

Dasha

Подскажите, плиз, такое дело - получаю из формы массив $_POST
как его циклом записать в бд?

например, в форме "имя", "фамилие", "телефон"
форма заполняется несколько раз,

приходит несколько раз данные:

имя
фамилие
отчество
имя
фамилие
отчество
....

как их записать в базу?
 
V

vital

Как обычно подключаетесь к бд.
И как обычно INSERT .. VALUES() записываете.
Может перед тем, как идти на форум, стоит почитать _хоть что-нибудь_ ?
 
D

Dasha

Как обычно подключаетесь к бд.
И как обычно INSERT .. VALUES() записываете.
Может перед тем, как идти на форум, стоит почитать _хоть что-нибудь_ ?

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

а прежде надо куда-то их считать, чтобы проверить.
 
D

Dasha

Ну я читаю.

Нигде не могу найти, как это сделать в цикле.

Если бы нашла, где почитать, не пришла бы на форум.
 
G

Guest

Воспользуйся foreach

К примеру

foreach ($_POST['massive'] as $key => $val)
{
@mysql_query("INSERT INTO table VALUES (NULL,'".$val."'");
}
 
V

vital

foreach ($_POST['massive'] as $key => $val)
{
@mysql_query("INSERT INTO table VALUES (NULL,'".$val."'");
}
Скучно мне. Распишу-ка полностью почему так делать низя.

Первым делом не мешает проверить на сущевствование как таковое переданного массива.
Ченить в духе
PHP:
if (!empty($_POST['massive'])/*&&is_array($_POST['massive']) для любителей пожестче=)*/)
{
//Так мы точно знаем что нам что-то передали(не выскочит нотис).
//Далее надо сформировать правильный запрос. Никогда, НИКОГДА нельзя делать кучу инсертов циклом, т.к. скорее всего это закончиться смертью сервера.
//А сделать как-нить так

foreach ($_POST['massive'] as $key => $val)
{
$query.="('".mysql_real_escape_string($val)."'),"; //Cделаем заготовку для запроса, попутно параметр экранируется, что бы злобные хакеры не подсунули нам кавычку и прочую гадость.
}
$query= 'INSERT INTO table VALUES'.substr($query, 0, -1).';';//Обрежем последнюю лишнюю запятую, и в итоге получим запрос вида INSERT INTO table VALUES (),(),()..();
if (!mysql_query($query)) //Скажу по секрету, что ставить собаку это моветон.
{
print "Упс, что-то сломалось";
print mysql_error();
}else {print "Вот и все"}
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!