powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Укажите на ошибки в проверке входных данных из формы
17 сообщений из 17, страница 1 из 1
Укажите на ошибки в проверке входных данных из формы
    #38433331
Фотография vip-y
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кусок кода функции:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
//.....................
if ((!empty($_REQUEST['preparate'])) && (!empty($_REQUEST['city'])) && (!empty($_REQUEST['category'])))
{
/* preparate protect*/
$preparate = strip_tags($_REQUEST['preparate']);
$patern = array("'",",","+","/","\\","@","|",":","?","union","and","or","$","{","}","&","#","%","`","Like",";","*");
$preparate = trim(str_replace($patern,"", strip_tags($preparate)));
if (!$preparate) return false;  // на момент написания нету возможности проверить, но проверка на пустую строку "" работает только так, ни isset ни empty не выдавали желаемый результат (данные брались из формы html)
/* city protect*/
$city = intval($_REQUEST['city']);
if(!preg_match("/^[1-9][0-9]*$/", $city)) return false;
/* category protect*/
$category=Array();
$category=join(',',$_REQUEST['category']);
//......................


вот такой код наковырял...
вроде с $preparate и $city все в норме. в плане защиты (если я не прав - подскажите)
осталось проверить $category - вот с этой проверкой у меня небольшие затруднения...
как проверить 100% на все возможное этот массив данных (возможные варианты данных только 1,2,3,4,5,6)
...
Рейтинг: 0 / 0
Укажите на ошибки в проверке входных данных из формы
    #38433337
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторif (!$preparate) return false; // на момент написания нету возможности проверить, но проверка на пустую строку "" работает только так, ни isset ни empty не выдавали желаемый результат (данные брались из формы html)
ты сделал мой день.
...
Рейтинг: 0 / 0
Укажите на ошибки в проверке входных данных из формы
    #38433338
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор$city = intval($_REQUEST['city']);
if(!preg_match("/^[1-9][0-9]*$/", $city)) return false;

песня. просто песня.
...
Рейтинг: 0 / 0
Укажите на ошибки в проверке входных данных из формы
    #38433343
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторкак проверить 100% на все возможное этот массив данных (возможные варианты данных только 1,2,3,4,5,6)
if !array_diff ( $category, array(1,2,3,4,5,6) ) return false


дальше начинаем думать что будет если тебе там пару мегабайт пришлют.
...
Рейтинг: 0 / 0
Укажите на ошибки в проверке входных данных из формы
    #38433347
Фотография vip-y
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowты сделал мой день.
я очень рад)

Код: php
1.
if (empty($preparate)) return false; // вроде работает


сказывается недосыпание)
...
Рейтинг: 0 / 0
Укажите на ошибки в проверке входных данных из формы
    #38433351
Фотография vip-y
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowавтор$city = intval($_REQUEST['city']);
if(!preg_match("/^[1-9][0-9]*$/", $city)) return false;

песня. просто песня.
я не понял, здесь все нормально??
возможные входные данные: числа от 1 до 200, исключая 0
но я ограничения по значению не писал (хотя кстати надо)
...
Рейтинг: 0 / 0
Укажите на ошибки в проверке входных данных из формы
    #38433352
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторвозможные входные данные: числа от 1 до 200
что правда? и это правда работает?
...
Рейтинг: 0 / 0
Укажите на ошибки в проверке входных данных из формы
    #38433355
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ты еще попробуй
if ('' === $preparate)

тебя ждет много нового.
...
Рейтинг: 0 / 0
Укажите на ошибки в проверке входных данных из формы
    #38433362
Фотография vip-y
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowты еще попробуй
if ('' === $preparate)

тебя ждет много нового.

=== сравнение по значению и типу данных
ваше выражение проверяет на пустую строку?
...
Рейтинг: 0 / 0
Укажите на ошибки в проверке входных данных из формы
    #38433365
Фотография vip-y
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowавторвозможные входные данные: числа от 1 до 200
что правда? и это правда работает?
конкретно 1 до 200 не работает
работает от 1 до ........)
...
Рейтинг: 0 / 0
Укажите на ошибки в проверке входных данных из формы
    #38433426
Фотография vip-y
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: php
1.
2.
3.
4.
if((!array_diff ( $_REQUEST['category'], array(1,2,3,4,5,6) ))==false) return false;
$category=Array();
$category=join(',',$_REQUEST['category']);
//вот так сделал для category - работает
...
Рейтинг: 0 / 0
Укажите на ошибки в проверке входных данных из формы
    #38433431
Фотография vip-y
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Part 2)
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
	mysql_connect("localhost", "root", "") or die (mysql_error ());
	mysql_select_db("xxx") or die(mysql_error());
	mysql_set_charset( 'Utf8' ); 
	$preparate = "'".mysql_real_escape_string($preparate)."'";  
	if(($rs = mysql_query($strSql))===0) return false;
	else if(($num_rows =  mysql_num_rows($rs)) ===0) return false;
	else while($row = mysql_fetch_assoc($rs)){
echo '<tr>';
echo '<td>'.$row['x'].'</td></br>';
echo '</tr>';
}
	mysql_close();
{



подскажите сдесь все "ровно"?
...
Рейтинг: 0 / 0
Укажите на ошибки в проверке входных данных из формы
    #38433439
Фотография vip-y
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vip-y, вот сам заметил)
else походу здесь лишнее, т.к. при return ф-я прекратит выполнение
...
Рейтинг: 0 / 0
Укажите на ошибки в проверке входных данных из формы
    #38433447
phpz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vip-y,

Попытки защититься от скули при помощи str_replace или preg_replace это просто трата вашего драгоценного времени. Для данных целей в пыхе существуют соответствующие функции, используйте либо их либо, что еще лучше, переходите к изучению PDO ($preparate). Также было бы неплохо познакомиться с функциями для работы с массивами, особенно array_slice и in_array ($category). С $city простая арифметика:

Код: php
1.
2.
$city = isset($_REQUEST['city']) ? $intval($_REQUEST['city']) : 0;
if ($city<1 || $city>200) return false;
...
Рейтинг: 0 / 0
Укажите на ошибки в проверке входных данных из формы
    #38433449
Фотография vip-y
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
phpz,
спасибо за совет
...
Рейтинг: 0 / 0
Укажите на ошибки в проверке входных данных из формы
    #38433651
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор$city = isset($_REQUEST['city']) ? $intval($_REQUEST['city']) : 0;
$_REQUEST['city'] = 100xdfgsrth;
...
Рейтинг: 0 / 0
Укажите на ошибки в проверке входных данных из формы
    #38433807
phpz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ScareCrowавтор$city = isset($_REQUEST['city']) ? $intval($_REQUEST['city']) : 0;
$_REQUEST['city'] = 100xdfgsrth;
Получаемое на выходе значение (100) не устраиваивает?!
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Укажите на ошибки в проверке входных данных из формы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]