Записване на грешки в масив

lub4o

Registered
Здравейте, записвам грешките в масив
Код:
 if(strlen($username) > 4)
                {
                    if($broi >= 1)
                         {
                            $errors[] = 'weche uim atakuv';
                         }
                }else
                {
                    $errors[] = 'Кратко потребителско име';
                }
                  if(strlen($password) >=4)
                  {
                     if($password != $password2)
                         {
                            $errors[] =  'Паролите не съвпадат';
                         }
                  }else
                  {
                      $errors[] = 'Кратка парола';
                  }
                   if(strlen($email) >= 6)
                   {
                     if(!strstr("$email","@") || !strstr("$email","."))
                        {
                            $errors[] =  'Невалиден email';
                        }
                   }else
                   {
                     $errors[] = 'Malyk email';
                   }
                        if(count($errors) < 1)
                        {
                            $password = md5($password);
                            $sql = mysql_query("INSERT INTO users (username,password,email,skype,date,ip) VALUES ('$username','$password','$email','$skype','$date','$ip')") or die (mysql_error());
                            echo 'Успешна регистрация';
                        }
                       
                     foreach($errors as $error)
                        {
                           echo $error.'<br />';
                        }
                
            }

Искам да попитам хубаво ли е да се записват така грешките, има ли начин за пробив и още нещо, защо като направя проверка с preg_match за непозволени символи си изпълнява скрипта

ето така бях пробвал

Код:
 if(strlen($username) > 4 || !preg_match("/[#$%@]+/", $username))
                {
                    if($broi >= 1)
                         {
                            $errors[] = 'Вече има такъв потребител';
                         }
                }else
                {
                    $errors[] = 'Кратко потребителско име ili simvoli';
                }
Съответно на кода - ако потребителското е име е по малко от 4 и няма непозволени символи да изпълнява надоло, но при мен като напиша %^%$^$% пак си продължава.
 
PHP:
 if(strlen($username) > 4 && !preg_match("/[#$%@]+/", $username))
                {
                    if($broi >= 1)
                         {
                            $errors[] = 'Вече има такъв потребител';
                         }
                }else
                {
                    $errors[] = 'Кратко потребителско име ili simvoli';
                }
 
strlen() можеш да го ползваш основно (да не кажа само) за символи на латиница. Я пробвай да напишеш:

Код:
echo strlen('алабала портокала');

И виж какво ще ти излезе. Използвай multibyte функциите, в случая mb_strlen(); ...
 

Back
Горе