Перейти к контенту

Обработка $_POST


Рекомендуемые сообщения

Как можно обезапасить примерно следующий алгоритм.

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

 

form.php

 

echo "<form action=\"file.php\" method=post>";

for($i=0;$i<=10;$i++)
{
echo "
<input type=text name=\"name[$i]\">
<input type=text name=\"surname[$i]\">\n";
<inpu type-hidden name=\"id[$i]\" value=\"$i\">
}

echo "<input type=submit>
</form>";

 

 

file.php

 

$c = count($name) - 1;
for($i=0;$i<=$c;$i++)
{
$name[$i] = mysql_escape_string($name[$i]);
$surname[$i] = mysql_escape_string($surname[$i]);

mysql_query("INSERT INTO table (name,surname) VALUES ('$name[$i]','$surname[$i]') WHERE ID='$id[$i]'");
}

 

 

Обнулить массив в начале файла file.php нельзя, но тогда злоумышленник может через строку подменить данные из формы. Каким образом можно в данном случае избежать подстановки данных?

Ссылка на комментарий
Поделиться на других сайтах

Дык стоп, а чего бояться подмены через строку, если это можно сделать валидно в том же самом input type ?
Ссылка на комментарий
Поделиться на других сайтах

а чего бояться подмены через строку

да правда что, когда можно и код формы отредактировать...

 

Код file.php при отключеном register_globals работать не будет! Да кстати по той же причине у вас там что-то через строчку поменять можно.

 

Так что либо extract($_POST) в самом начале скрипта, либо $_POST['Имя_массива']

Ссылка на комментарий
Поделиться на других сайтах

Про register_globals я знаю :D

Я просто пример пример скрипта...

Так вот мне что интересно, как ещё можно организовать цикловую обработку форму? ТО есть грубо говоря згнать её в массив и оттуда перегонять в базу!?

 

Код конечно не идален, и допустим даже слишком. Я им показал только сам принцип, конечно проверка данных на целостность в обработке скрипта присутствует. Интерес в том, что бы сделать сам процесс обработки как можно менее емким.

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.