Подскажите с фильтром
1.
Дмитрий (24.06.2010 / 10:25)
какой функцией отфильтровать сразу много переменных ?
2.
Azzido (24.06.2010 / 10:26)
array_filter();
3.
Дмитрий (24.06.2010 / 10:28)
мм а с примером?
4.
Azzido (24.06.2010 / 10:30)
http://php.su/functions/?f=array_filter&choice=info
5.
Дмитрий (24.06.2010 / 10:30)
ты наверно не понял меня )
вот допустим регулярка
if (preg_match('![^ a-zA-Zа-яА-ЯёЁ0-9@\*\?\\/\(\)\[\]\!\.\"\'\%\-,~_=:;]+!u',$msg)) {
echo 'Ошибка!запрещенные символы.';
exit;
}
как несколько сразу отфильтровать
6.
Azzido (24.06.2010 / 10:31)
ээээээээ не то вот это читай
http://php.su/functions/?array-map функция array_map тебе нужна
7.
Дмитрий (24.06.2010 / 10:33)
мда ниче не понятно
8.
Azzido (24.06.2010 / 10:33)
$array=array_map('htmlspecialchars',$array);
9.
Дмитрий (24.06.2010 / 10:37)
htmlspecialchars - хрень, надо фильтровать спец символы
10.
Дмитрий (24.06.2010 / 10:39)
отак шоль
$a = array($b, $c, $d, $e, $z);
$x = array_map("", $a);
11.
Azzido (24.06.2010 / 10:39)
function check($text){
return mysql_real_escape_string(htmlspecialchars($text));
}
$array=array_map('check',$array);
12.
Дмитрий (24.06.2010 / 10:42)
хорошо, вопрос 1 - как записать НЕСКОЛЬКО переменных ?
через запятую сюда же? вопрос 2 - фильтровать от таких символов µ¥¤¢ будет?
13.
Azzido (24.06.2010 / 10:54)
$array[]=$var1;
$array[]=$var2;
$array[]=$var3;
function check($text){
return preg_replace('![^a-zA-Zа-яА-ЯёЁ0-9@\*\?\(\)\[\]\!\.\-,~_=:;]+!u','',$text);
}
$array=array_map('check',$array);
14.
Azzido (24.06.2010 / 10:57)
такс, короче забудь все что я выше писал и читай вот эти две статьи
http://www.bombimbom.com/manual/function.filter-var-array.html
http://visavi.net/blog/blog.php?act=view&id=65&
15.
Дмитрий (24.06.2010 / 11:56)
Не совсем понял....
тоесть мне вот типа так юзать надо?
$var1 = '<>/?\|';
$var2 = '<>/?\|';
$var3 = '<>/?\|';
$array[]=$var1;
$array[]=$var2;
$array[]=$var3;
function check($text){
return preg_replace('![^a-zA-Zа-яА-ЯёЁ0-9@\*\?\(\)\[\]\!\.\-,~_=:;]+!u','',$text);
}
$array=array_map('check',$array);
if ($text !== false) {
echo 'OK';
} else {
echo 'ERROR';
}
16.
Azzido (24.06.2010 / 12:04)
я тебе уйму мана дал, переваривай
17.
Дмитрий (25.06.2010 / 03:55)
Делаю так, записываю функцию в конфиг который везде инклудится
function msg_Filtr ( $data )
{
if ( preg_match( '![^ a-zA-Zа-яА-ЯёЁ0-9@\*\?\(\)\[\]\!\.\"\'\%\-,~_=:;]+!u',$data ) )
return TRUE;
else
return $data;
}
далее в обработчике пишу
if ( msg_Filtr( $msg )) {
echo 'В сообщении найдены запрещенные символы';
exit;
}
не работает, и что неправильно?
18.
Артур (25.06.2010 / 06:23)
Что значит "не работает"?
if(msg_Filtr($msg) === TRUE)...
19.
Дмитрий (25.06.2010 / 06:51)
Вот так работает
if (msg_Filtr($name) === TRUE) {
echo 'В сообщении найдены запрещенные символы';
exit;
}
а если вот так
if ((msg_Filtr($name) === TRUE) or (msg_Filtr($infa) === TRUE)) {
echo 'В сообщении найдены запрещенные символы';
exit;
}
не работает, т.е. напостой выбивает что запрещенные символы
20.
Дмитрий (25.06.2010 / 06:54)
Во, вот теперь работает )
21.
Мансур (25.06.2010 / 07:48)
Функция экранирования основных знаков
function check($msg){
if (is_array($msg)) {
foreach($msg as $key=>$val) {
$msg[$key] = check($val);
}
} else {
$msg = htmlspecialchars($msg);
$search = array('|','\'','$','\\','^','%','`',"\0");
$replace = array('|',''','$','\','^','%','`','');
$msg = str_replace($search, $replace, $msg);
$msg = stripslashes(trim($msg));
}
return $msg;
}
Функция удаления основных знаков
function check_full($message){
$message=str_replace("|","I",$message);
$message=str_replace("||","I",$message);
$message=str_replace("&","",$message);
$message=str_replace("\"","",$message);
$message=str_replace(">","",$message);
$message=str_replace("<","",$message);
$message=htmlspecialchars($message);
$message=str_replace("'","",$message);
$message=str_replace("\"","",$message);
$message=str_replace("\$","",$message);
$message=str_replace("$","",$message);
$message=str_replace("\\","", $message);
$message=str_replace("`","", $message);
$message=str_replace("%","", $message);
$message=stripslashes(trim($message));
return $message;
}
22.
Олег (25.06.2010 / 11:25)
Да уж, preg_replace же есть
23.
Дмитрий (25.06.2010 / 11:53)
Все, всем спасибо получилось )
URL:
https://visavi.net/topics/10838