|
|
|
| Закачал сайт на хостинг... не работают Рег. Выражения... что делать?
$val = ucfirst('имя');
if(!preg_match("/^[а-яa-z\ ]+$/i", $val)) echo 'Erorr';
|
Выдает 'Erorr'.
На локальной машине все работает наормально.... | |
|
|
|
|
|
|
|
для: tAleks
(03.04.2007 в 21:05)
| | Какая версия php? | |
|
|
|
|
|
|
|
для: ddhvvn
(03.04.2007 в 21:17)
| | На локальной машине: 5.1.6
На хостинге: 5.2.0 | |
|
|
|
|
|
|
|
для: tAleks
(03.04.2007 в 21:25)
| | А больше ниче не пишет? | |
|
|
|
|
|
|
|
для: ddhvvn
(03.04.2007 в 21:37)
| | больше ничего.... :( | |
|
|
|
|
|
|
|
для: tAleks
(03.04.2007 в 21:39)
| | приведи весь скрипт | |
|
|
|
|
|
|
|
для: 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);
}
|
| |
|
|
|
|
|
|
|
для: tAleks
(03.04.2007 в 21:44)
| | - | |
|
|
|
|
|
|
|
для: ddhvvn
(03.04.2007 в 21:41)
| | Кодировка какая? | |
|
|
|
|
|
|
|
для: 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';
|
| |
|
|
|
|
|
|
|
для: Poison
(03.04.2007 в 21:49)
| | >Попробуй так:
>
>
>$val = ucfirst('имя');
>if(!preg_match("/^[а-яa-z\s]+$/i", $val)) echo 'Erorr'; else echo 'Ok';
>
|
>
Пропробовал - "Error" пишет. | |
|
|
|
|
|
|
|
для: du
(03.04.2007 в 21:44)
| | Кодировка Windows-1251
Да, по ходу че-то ему не нравяться именно русские буквы....
мыло и аську тоже проверят, но ошибки не выдает....
Что делать? Люди добрые ... помогите.... | |
|
|
|
|
|
|
|
для: tAleks
(03.04.2007 в 21:05)
| | Проблему решил!
Добавл локаль в фонфиг, и все заработало....
Всем спасибо, за участие! | |
|
|
|