Компьютерный форум NoWa.cc Здесь может быть Ваша реклама
Правила Форума
редакция от 22.06.2020
Форум .::NoWa.cc::.
Вернуться   Компьютерный форум NoWa.cc > В помощь вебмастеру > Веб - Программирование > PHP

Уважаемые пользователи nowa.cc. Мы работаем для вас более 20 лет и сейчас вынуждены просить о финансовой помощи по оплате за сервер.
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже.
Webmoney Webmoney WMZ: Z021474945171 Webmoney WME: E159284508897 Webmoney WMUSDT: T206853643180
Кошелёк для вашей помощи YooMoney 4100117770549562
YooMoney Спасибо за поддержку!

Ответ
 
Опции темы Опции просмотра Language
Старый 19.05.2009, 16:00   #16
agent_smith
Пользователь
 
Пол:Мужской
Регистрация: 07.03.2008
Адрес: Киев
Сообщений: 111
Репутация: 35
По умолчанию Re: Как получить данные из формы?

ну есть капча http://www.captcha.ru/kcaptcha/, вроде неплохая
agent_smith вне форума
 
Ответить с цитированием Вверх
Здесь может быть Ваша реклама
Здесь может быть Ваша реклама


Реклама: наполнитель для виброгалтовки купитькаркасные дома под ключ барнхаусяндекс метрика для яндекс формы6500wМагазин бытовой техники: мультиварка панасоник 18 купить - переходи на сайт ТАЙМТВ!


Старый 21.05.2009, 08:28   #17
AzeriFire
Новичок
 
Пол:Мужской
Регистрация: 05.01.2008
Сообщений: 3
Репутация: 0
По умолчанию Re: Как получить данные из формы?

Цитата:
Сообщение от nordcap Посмотреть сообщение
я не заморачиваюсь никогда использовать $_POST[] и $_GET[], пользую $_REQUEST[] все равно они входят туда

Не правильно. Всегда надо проверять что за данные и как они к нам попали ( в смысле с $_POST или с $_GET запросом). в твоем примере можно зарегистрироваться даже через УРЛ И ты об этом не будешь знать. Иногда очень полезна проверять источник запроса и метод запроса. Дополнительная защита ни кому не вредить.
AzeriFire вне форума
 
Ответить с цитированием Вверх
Старый 22.05.2009, 10:00   #18
Pazan
Пользователь
 
Аватар для Pazan
 
Пол:Мужской
Регистрация: 01.09.2007
Сообщений: 67
Репутация: 3
По умолчанию Re: Как получить данные из формы?

Цитата:
Сообщение от AzeriFire Посмотреть сообщение
Не правильно. Всегда надо проверять что за данные и как они к нам попали

просветите неука о чём речь, плз
Pazan вне форума
 
Ответить с цитированием Вверх
Старый 22.05.2009, 11:14   #19
Leningrad00
Новичок
 
Пол:Мужской
Регистрация: 09.10.2007
Сообщений: 18
Репутация: 12
По умолчанию Re: Как получить данные из формы?

Если скрипт обрабатывает данные из формы, введенные пользователем, всегда читай их из массива $_POST, если данные отправлены методом POST. Если данные отправлены методом GET, всегда читай их из массива $_GET.
Никогда в этих случаях не используй массив $_REQUEST.

Причина. Допустим, у тебя форма с методом отправки данных POST. Если в URL скрипта-обработчика добавить &var_name=var_value и данные читаются из массива $_REQUEST, переменная $var_name будет прочитана со значением var_value, несмотря на то, что на самом деле в форме ничего не вводилось и в массиве $_POST этой переменной нет. Потенциальная уязвимость.
Leningrad00 вне форума
 
Ответить с цитированием Вверх
Эти 2 пользователя(ей) сказали cпасибо за это полезное сообщение:
Старый 22.05.2009, 17:28   #20
agent_smith
Пользователь
 
Пол:Мужской
Регистрация: 07.03.2008
Адрес: Киев
Сообщений: 111
Репутация: 35
По умолчанию Re: Как получить данные из формы?

Цитата:
Сообщение от Leningrad00 Посмотреть сообщение
Если скрипт обрабатывает данные из формы, введенные пользователем, всегда читай их из массива $_POST, если данные отправлены методом POST. Если данные отправлены методом GET, всегда читай их из массива $_GET.
Никогда в этих случаях не используй массив $_REQUEST.

Причина. Допустим, у тебя форма с методом отправки данных POST. Если в URL скрипта-обработчика добавить &var_name=var_value и данные читаются из массива $_REQUEST, переменная $var_name будет прочитана со значением var_value, несмотря на то, что на самом деле в форме ничего не вводилось и в массиве $_POST этой переменной нет. Потенциальная уязвимость.

Ну если подделать http запрос и изменить $_POST данные это не проблема. Использовать $_REQUEST или $_POST не никакой разницы.
Правда есть одна - уникальность названия переменных $_POST и $_GET данных. И еще все входящие данные нужно проверять и фильтровать.
agent_smith вне форума
 
Ответить с цитированием Вверх
Старый 23.05.2009, 12:49   #21
Pazan
Пользователь
 
Аватар для Pazan
 
Пол:Мужской
Регистрация: 01.09.2007
Сообщений: 67
Репутация: 3
По умолчанию Re: Как получить данные из формы?

Цитата:
Сообщение от agent_smith Посмотреть сообщение
И еще все входящие данные нужно проверять и фильтровать.

как именно это можно реализовать?
Pazan вне форума
 
Ответить с цитированием Вверх
Старый 24.05.2009, 16:10   #22
agent_smith
Пользователь
 
Пол:Мужской
Регистрация: 07.03.2008
Адрес: Киев
Сообщений: 111
Репутация: 35
По умолчанию Re: Как получить данные из формы?

Цитата:
Сообщение от Pazan Посмотреть сообщение
как именно это можно реализовать?

Ну смотри, все данные которые переданы через $_GET, $_POST (также сессии и кукисы если используешь), перед тем как что-то сними делать в коде, надо их проверить на зловредный код или sql инъекцию.


Ссылки по теме защиты сайта
http://lib.labpc.ru/article.php?id=012
http://www.softoplanet.ru/topic6436.html
agent_smith вне форума
 
Ответить с цитированием Вверх
Старый 08.07.2009, 19:02   #23
P0larBeer
Неактивный пользователь
 
Регистрация: 01.12.2008
Сообщений: 11
Репутация: 2
По умолчанию Re: Как получить данные из формы?

Цитата:
Сообщение от Pazan Посмотреть сообщение
намаялся, но вообщем решил задачу, но другим путём
всё в одном файле без передачи данных в другой файл. использовал $_POST, что б покороче. так и не понял, почему не передавались данные в другой файл на обработку.
но это уже не важно. другой этап -- это запись данных в таблицу MySQL. буду учиться
P.S. ещё бы как-нить прикрутить к форме капчу с контрольной картинкой

у тебя проблемы сjavascript, проверю функции, надо быть внимательнее если делаешь сабмит формы через javascript, я так тоже как то попал, но потом нашел, как говорится дело было не в бабине
P0larBeer вне форума
 
Ответить с цитированием Вверх
Старый 09.07.2009, 11:54   #24
Pazan
Пользователь
 
Аватар для Pazan
 
Пол:Мужской
Регистрация: 01.09.2007
Сообщений: 67
Репутация: 3
По умолчанию Re: Как получить данные из формы?

P0larBeer,
Цитата:
Сообщение от P0larBeer Посмотреть сообщение
тебя проблемы сjavascript

отставил JS проверку, решил, что PHP лучше
Pazan вне форума
 
Ответить с цитированием Вверх
Старый 12.07.2009, 22:25   #25
g46
Новичок
 
Пол:Мужской
Регистрация: 12.07.2009
Сообщений: 2
Репутация: 0
По умолчанию Re: Как получить данные из формы?

Цитата:
Сообщение от Pazan Посмотреть сообщение
P0larBeer,

отставил JS проверку, решил, что PHP лучше

Вопрос не в "лучше-хуже", а в "надежно-ненадежно". Проверку на стороне JS всегда можно обойти, поэтому она делается только как фича, чтобы облегчить жизнь пользователю, например сообщить что он ввел некорректный адрес эл. почты до того как он отправить форму на сервер. Проверка на сервере (PHP) производится независимо от того была ли проверка данных на стороне клиента (JS) и именно она позволяет обезопасить данные.
g46 вне форума
 
Ответить с цитированием Вверх
Старый 13.07.2009, 12:08   #26
Pazan
Пользователь
 
Аватар для Pazan
 
Пол:Мужской
Регистрация: 01.09.2007
Сообщений: 67
Репутация: 3
По умолчанию Re: Как получить данные из формы?

и всё-таки, если "надёжнее", значит — "лучше"
Pazan вне форума
 
Ответить с цитированием Вверх
Старый 20.07.2009, 01:11   #27
nemecfc
Неактивный пользователь
 
Пол:Мужской
Регистрация: 19.07.2009
Сообщений: 21
Репутация: 2
По умолчанию Re: Как получить данные из формы?

Цитата:
Сообщение от Pazan Посмотреть сообщение
и всё-таки, если "надёжнее", значит — "лучше"

к "надежности" еще неплохо бы добавить удобство, что и делает JavaScript

П.С. Насчет капчи, сам когда-то немного провозился с этими разными скриптами, как на меня, намного проще делать так (капча не слишком сложная, но для большинства целей подходит):

в форме капча вызывается просто как <img src="captcha.php">,
поле для ее вода как <input type="text" name="captcha" maxlenght=7>

файл captcha.php:
<?php
session_start();
$kod=rand(1000000,9999999);
$_SESSION['code']=$kod;
for($i=0;$i < 7;$i++) $arr[$i]=substr($kod,$i,1);
$im=imagecreate(130,40);
imagecolorallocate($im,255,255,255);
$a=0;
for($i=0;$i < 7;$i++)
{
$color=imagecolorallocate($im,rand(0,255),rand(0,2 55),rand(0,255));
imagestring($im,rand(2,9),$a+=15,rand(0,20),$arr[$i],$color);
}
header("Content-type: image/jpeg");
imagejpeg($im,'',100);
?>

файл, куда передается форма (методом post, если же метод get, то заменить далее все $_POST на $_GET), начинается с проверки капчи:
<?php
session_start();
if($_SESSION['code']!="" && $_POST['captcha']==$_SESSION['code'])
{
...

думаю, в таком скрипте намного проще разобраться, нежели в скриптах, предлагаемых разными сервисами...
nemecfc вне форума
 
Ответить с цитированием Вверх
Старый 21.07.2009, 09:08   #28
Pazan
Пользователь
 
Аватар для Pazan
 
Пол:Мужской
Регистрация: 01.09.2007
Сообщений: 67
Репутация: 3
По умолчанию Re: Как получить данные из формы?

nemecfc,
Спасибо за труды, однако:
1) чего-то изображение не создаётся
2) куды втулить сие, я чего-то не понял, так как у меня всё происходит в одном файле:
PHP код:
<?php
session_start
();
if(
$_SESSION['code']!="" && $_POST['captcha']==$_SESSION['code'])
{
Pazan вне форума
 
Ответить с цитированием Вверх
Старый 21.07.2009, 21:51   #29
nemecfc
Неактивный пользователь
 
Пол:Мужской
Регистрация: 19.07.2009
Сообщений: 21
Репутация: 2
По умолчанию Re: Как получить данные из формы?

Цитата:
Сообщение от Pazan Посмотреть сообщение
nemecfc,
Спасибо за труды, однако:
1) чего-то изображение не создаётся
2) куды втулить сие, я чего-то не понял, так как у меня всё происходит в одном файле:
PHP код:
<?php
session_start
();
if(
$_SESSION['code']!="" && $_POST['captcha']==$_SESSION['code'])
{

1) Должно создаваться, если ты все правильно сделал (пример, что все работает - http://fightclub.net.ua/guestbook.php)
2) Это вставляется в файл, куда передаются данные из формы (<form action="файл, куда передаются данные из формы">), если это та же страница, то, значит, в файл той же страницы.
nemecfc вне форума
 
Ответить с цитированием Вверх
Старый 31.07.2009, 11:31   #30
milov
Неактивный пользователь
 
Регистрация: 30.07.2009
Сообщений: 9
Репутация: 2
По умолчанию Re: Как получить данные из формы?

вот пример с аттачем
смотреть"]Шаг 1.
<form action="./upload.php" method="post" enctype="multipart/form-data">
<p><input type="file" name="userfile" id="file"></p>
<p><input type="submit" value="Загрузить фаил"></p>
</form>

Шаг 2.
<?php

$allowed_filetypes = array('.jpg','.gif','.bmp','.png'); // Здесь мы перечисляем допустимые типы файлов

$max_filesize = 524288; // Максимальный размер загружаемого файла в байтах (в данном случае он равен 0.5 Мб).

$upload_path = './files/'; // Место, куда будут загружаться файлы (в данном случае это папка 'files').

$filename = $_FILES['userfile']['name']; // В переменную $filename заносим точное имя файла (включая расширение).

$ext = substr($filename, strpos($filename,'.'), strlen($filename)-1); // В переменную $ext заносим расширение загруженного файла.

// Сверяем полученное расширение со списком допутимых расширений, которые мы определили в самом начале. Если расширение загруженного файла не входит в список разрешенных, то прерываем выполнение программы и выдаем соответствующее сообщение.

if(!in_array($ext,$allowed_filetypes))
die('Данный тип файла не поддерживается.');

// Теперь проверим размер загруженного файла и если он больше максимально допустимого, то прерываем выполнение программы и выдаем сообщение.

if(filesize($_FILES['userfile']['tmp_name']) > $max_filesize)
die('Фаил слишком большой.');

// Проверяем, доступна ли на запись папка, определенная нами под загрузку файлов (папка files). Если вдруг недоступна, то выдаем сообщение, что на папку нужно поставить права доступа 777.

if(!is_writable($upload_path))
die('Невозможно загрузить фаил в папку. Установите права доступа - 777.');

// Загружаем фаил в указанную папку.
if(move_uploaded_file($_FILES['userfile']['tmp_name'],$upload_path . $filename))
{
echo 'Ваш фаил успешно загружен <a href="' . $upload_path . $filename . '">смотреть</a>';
}
else
{
echo 'При загрузке возникли ошибки. Попробуйте ещё раз.';
}

?>
milov вне форума
 
Ответить с цитированием Вверх
Ответ


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VBNet+ Access.Как получить данные из таблиц в DataSet? Yuru Веб - Программирование 2 14.02.2011 11:43
Как получить данные из БД в Delphi 7 Чех Delphi 8 12.07.2010 21:34
Как получить данные из адресной строи? Vinni_incorp PHP 5 28.01.2008 11:36
Как в ASP Linux11 получить данные с DV камеры:? и перекодировать их в DVD trf_st UNIX, Linux, MacOs для PC и другие ОС 1 08.12.2007 01:36

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 21:04. Часовой пояс GMT +3.


Copyright ©2004 - 2026 NoWa.cc

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, vBulletin Solutions, Inc. Перевод: zCarot
Время генерации страницы 0.07925 секунды с 13 запросами