Регуляр прави проблем

reletobg

Registered
Здравейте!
Имам проблем със следния код:
Код:
 if(isset($_POST['msize']))
                        {
                            if(preg_match("/^[a-zа-я0-9]+$/iu", $_POST['msize']))
                            {
                                    $msize=filter($_POST['msize']);
                            }
                            else
                            {
                                echo 'Забранени символи343';
                                exit;
                            }
                        }
Проблема е ,че отива директно на else,а полето msize е празно.Проверих за правописни грешки,но няма интересното е,че го прави заедно с още 2-3 полета,но и те са с същата структура.Реснах apache,но без ефект.Какво да правя?
 
значи ти търсиш за букви и цифри в $_POST['msize'], а щом е празно следователно няма букви и цифри и ти връща else...

тествай така:

$_POST['msize'] = "asd2312sd";

if(isset($_POST['msize']))
{
if(preg_match("/^[a-zа-я0-9]+$/iu", $_POST['msize']))
{
$msize=filter($_POST['msize']);
}
else
{
echo 'Забранени символи343';
exit;
}
}
 
Добре де.При изпращане на формата msize е "" празно,би трябвало isset да го зачете като false,направил съм и други оператори на подобен принцип и не правят проблем,че стринга е "".Защо точно тези 4-те?Защо?
 
Опитай така

if($_POST['msize'] != "") ....

НЕ използвай if(empty($_POST['msize'])) защото ако стойността е 0 го приема за празен.

А иначе isset($_POST['msize']) правилно го засича защото има такава променлива и нейната стойност е празен стринг.
 
madmax3 каза:
Опитай така

if($_POST['msize'] != "") ....

НЕ използвай if(empty($_POST['msize'])) защото ако стойността е 0 го приема за празен.

А иначе isset($_POST['msize']) правилно го засича защото има такава променлива и нейната стойност е празен стринг.

Ами ако е равно на NULL.Кво става?
 

Back
Горе