Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Закачал сайт на хостинг... не работают Рег. Выражения :(
 
 автор: tAleks   (03.04.2007 в 21:05)   письмо автору
 
 

Закачал сайт на хостинг... не работают Рег. Выражения... что делать?


$val = ucfirst('имя');
if(!preg_match("/^[а-яa-z\ ]+$/i", $val)) echo 'Erorr';


Выдает 'Erorr'.
На локальной машине все работает наормально....

   
 
 автор: ddhvvn   (03.04.2007 в 21:17)   письмо автору
 
   для: tAleks   (03.04.2007 в 21:05)
 

Какая версия php?

   
 
 автор: tAleks   (03.04.2007 в 21:25)   письмо автору
 
   для: ddhvvn   (03.04.2007 в 21:17)
 

На локальной машине: 5.1.6
На хостинге: 5.2.0

   
 
 автор: ddhvvn   (03.04.2007 в 21:37)   письмо автору
 
   для: tAleks   (03.04.2007 в 21:25)
 

А больше ниче не пишет?

   
 
 автор: tAleks   (03.04.2007 в 21:39)   письмо автору
 
   для: ddhvvn   (03.04.2007 в 21:37)
 

больше ничего.... :(

   
 
 автор: ddhvvn   (03.04.2007 в 21:41)   письмо автору
 
   для: tAleks   (03.04.2007 в 21:39)
 

приведи весь скрипт

   
 
 автор: tAleks   (03.04.2007 в 21:44)   письмо автору
 
   для: ddhvvn   (03.04.2007 в 21:41)
 

Функция проверки входных данных:


function check_user_data($data, $full = NULL)
{
    // Перменная с классом, для вывода ошибок
    $err = 'class="error"';
    
    // Перебираем массив с данными
    foreach($data as $key => $val)
    {
        if(!empty($val))
        {
            $val = trim(htmlspecialchars(stripslashes($val)));
            $temp[$key] = $val;
                    
            switch($key)
            {
                // USERS
                case 'surname':
                case 'name':
                case 'patronymic':
                        $temp[$key] = ucfirst($val);
                        if(!preg_match("/^[а-яa-z\ ]+$/i", $val)) $error[$key] = $err;  // Ввот тут ругаетстя, т.е. присваивает значение переменной $error[$key].                        break;
                
                case 'sex':
                        if($val != 'male' && $val != 'female') $error[$key] = $err;
                        break;
                        
                case 'email' :
                        if(!preg_match("/^[^@\s]+@([-a-z0-9_]+\.)+[a-z]{2,}$/i", $val)) $error[$key] = $err;
                        break;
                
                case 'icq' :
                        $val = str_replace("-", "", trim(htmlspecialchars(stripslashes($val))));
                        $temp[$key] = $val;
                        if(!preg_match("/^[0-9]+$/i", $val)) $error[$key] = $err;
                        break;
                
                case 'url':
                        if(!preg_match("/(http:\\/\\/|http:\\/\\/www|www)(\\S+)/si", $val)) $error[$key] = $err;
                        break;
                
                case 'bd_day':
                case 'bd_month':
                case 'bd_year':
                        if(!is_numeric($val)) $error[$key] = $err;
                        break;
                
                // DS
                case 'id_hlf' :
                case 'id_ds' :
                    if(!is_numeric($val)) $error[$key] = $err;
                    break;
            }
        }
        else $temp[$key] = '';
    }
    
    // Проверяем обязательные для заполнения поля
    if(isset($full)) {
        foreach($full as $val) {if(empty($temp[$val])) $error[$val] = $err;}
    }
    
    // Проверяем дату рождения
    // Если все 3 значения не пустые ...
    if ( (!empty($temp['bd_day'])) && (!empty($temp['bd_month'])) && (!empty($temp['bd_year'])))
    {
        // ... проверяем корректность
        if (!checkdate($temp['bd_month'], $temp['bd_day'], $temp['bd_year']))
            $error['bd_date'] = $err;
    }
    elseif ( (!empty($temp['bd_day'])) || (!empty($temp['bd_month'])) || (!empty($temp['bd_year'])))
    {
        $error['bd_date'] = $err;
    }
    
    // Возвращаем результат
    return array($temp, $error);
}

   
 
 автор: ddhvvn   (03.04.2007 в 21:46)   письмо автору
 
   для: tAleks   (03.04.2007 в 21:44)
 

-

   
 
 автор: du   (03.04.2007 в 21:44)   письмо автору
 
   для: ddhvvn   (03.04.2007 в 21:41)
 

Кодировка какая?

   
 
 автор: Poison   (03.04.2007 в 21:49)   письмо автору
 
   для: du   (03.04.2007 в 21:44)
 

Попробуй так:


$val = ucfirst('имя'); 
if(!preg_match("/^[а-яa-z\\s]+$/i", $val)) echo 'Erorr'; else echo 'Ok';


или так


$val = 'имя'; 
if(!preg_match("/^[а-яa-z\\s]+$/i", $val)) echo 'Erorr'; else $val = ucfirst($val);  echo 'Ok';

   
 
 автор: tAleks   (03.04.2007 в 21:54)   письмо автору
 
   для: Poison   (03.04.2007 в 21:49)
 

>Попробуй так:
>
>

>$val = ucfirst('имя'); 
>if(!preg_match("/^[а-яa-z\s]+$/i", $val)) echo 'Erorr'; else echo 'Ok';
>

>

Пропробовал - "Error" пишет.

   
 
 автор: tAleks   (03.04.2007 в 21:51)   письмо автору
 
   для: du   (03.04.2007 в 21:44)
 

Кодировка Windows-1251

Да, по ходу че-то ему не нравяться именно русские буквы....
мыло и аську тоже проверят, но ошибки не выдает....

Что делать? Люди добрые ... помогите....

   
 
 автор: tAleks   (03.04.2007 в 22:37)   письмо автору
 
   для: tAleks   (03.04.2007 в 21:05)
 

Проблему решил!
Добавл локаль в фонфиг, и все заработало....

Всем спасибо, за участие!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования