Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обработка переменных из формы 
:(
    Опции темы
xarakiry
Дата 8.7.2008, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 28.5.2008

Репутация: -1
Всего: -1



Народ, есть форма и око 30 переменных из неё, которые передаются постом. Хотелось знать, можно ли сделать быструю обработку на трим и хтмлспешиалчарс . А то отдельно для каждой делать, с ума можно сойти...
--------------------
Все университеты Азербайджана на students.az
PM MAIL WWW   Вверх
bars80080
Дата 8.7.2008, 16:26 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



пиши функцию, к примеру такую:
Код

function htmlSCC($mvelem, $useHSC = '', $int = '') {
    for($i = 0; isset($mvelem[$i]); $i++) { 
        $a = $mvelem[$i]; global $$a;
        if(!isset($_REQUEST[$a])) { if(empty($int)) $$a = ''; else $$a = 0; }
        else {
            if(empty($useHSC)) { $$a = HtmlSpecialChars($_REQUEST[$a]); }
            elseif($useHSC == 'all') { $$a = $_REQUEST[$a]; }
            elseif($useHSC == 'tag') { $$a = str_replace(array('<?', '?'.'>'), '', $_REQUEST[$a]); }}}}

// приходящие переменные:
$mv = array('perem1', 'perem2'); htmlSCC($mv);

// получаем переменные вида $perem1, $perem2

PM MAIL WWW   Вверх
Feldmarschall
Дата 8.7.2008, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



xarakiry, можно. http://php.net/foreach
PM   Вверх
skyboy
Дата 10.7.2008, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(xarakiry @  8.7.2008,  15:11 Найти цитируемый пост)
хтмлспешиалчарс 

вообще-то надо делать перед выводом.
PM MAIL   Вверх
xarakiry
Дата 10.7.2008, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 28.5.2008

Репутация: -1
Всего: -1



Смысле ..как это перед выводом ? Эти переменные идут в запрос Mysql ...перед ним и надо обработать...
--------------------
Все университеты Азербайджана на students.az
PM MAIL WWW   Вверх
Feldmarschall
Дата 10.7.2008, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



с чего ты взял? 
При чем здесь Mysql? Функция называется htmlspecialchars, а не mysqlspecialchars
Мускулю она глубоко до лампочки.

PM   Вверх
Sannis
Дата 10.7.2008, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 14.8.2007
Где: Москва

Репутация: 6
Всего: 13



Перед записью в БД нужно экранировать некоторые символы специальной функцией, типа mysql_real_escape_string().
А когда делать хтмлспешиалчарс (), который не связан с БД, а делается для отключения HTML в основном, имхо, вы можете и сами решить. Есть и те, кто делает до и ничего.

Добавлено через 17 секунд
Не хочу вспоминать про этот холивар снова smile


--------------------
Я Критик Джим, раньше писал моды для IPB 1.3.x-2.3.x, а теперь продвигаю Node.js в массы.
PM MAIL WWW   Вверх
xarakiry
Дата 10.7.2008, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 28.5.2008

Репутация: -1
Всего: -1



Ребята..давайте по порядку...данные получены из формы и заполняются в базу данных, но перед этим их и надо проверить... и там не тока HtmlSpecialChars ещё и трим нужен... что то я не могу конкретизировать ваши ответы... Или вы посоветуете что то другое для проверки этих данных ? Буду очень благодарен.
--------------------
Все университеты Азербайджана на students.az
PM MAIL WWW   Вверх
Feldmarschall
Дата 10.7.2008, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



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

Во-первых, не называй свои действия словом "проверка". Проверка - это когда ты проверяешь данные, и если что-то в них не так, в базу не записываешь.
А то, чем ты занимаешься, называется форматированием. 
Во-вторых, если я в первый раз неписал неконкретно, то напишу ещё раз - функция htmlspecialchars к базе данных отношения не имеет. То есть, перед помещением в базу её применять не обязательно. Можно, но не обязательно. А вот перед выводом данных в браузер - обязательно. Но если ты уже раньше это делал перед помещением в базу, то уже не надо.
В-третьих, если тебе слова Sannis показались неконкретными, я могу повторить. Для того, чтобы не было ошибок при помещении данных в базу, их надо обработать функцией mysql_real_escape_string(). Не "проверить", а обработать. Обязательно. Не все, правда, и не всегда, но это уже будет слишком сложно.
PM   Вверх
skyboy
Дата 10.7.2008, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(xarakiry @  10.7.2008,  11:37 Найти цитируемый пост)
что то я не могу конкретизировать ваши ответы.

конкретизировать надо вопросы.
тебе надо ответ на вопрос, как обработать ВСЕ входящие переменные? тебе уже ответили: foreach позволяет проходится по произвольному массиву. А $_GET и $_POST - тоже массивы.
Или у тебя вопрос: как проверить входящие данные?
если тебе известно, какого формата данные должны быть(число, дата и т.д.) - то и проверяй так(is_numeric, is_int и любый самодельные функции). trim, htmlspecialchars надо делать перед выводом, а в БД хранить неизменные.
для вставки данных в БД без проблем используется функция mysql_real_escape_string
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0657 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.