Разрешение только на латинские символы и цифры

Andronik

Новичок
Разрешение только на латинские символы и цифры

Такой вот возник вопрос.
Нужно разрешить ввод только латинских букв, цифр и знаков "_" и "-".
Функции ctype, проводимые над строками, не дают этого результата.
Наверное в РНР есть средства для реализации оной задачи. Зачем изобретать колесо.
 

Andronik

Новичок
А можно, я подумал, выделить диапазон разрешённых символов по ASCII, и с помощью ord(), сравнивать каждый символ с этими диапазонами.

-~{}~ 10.01.06 16:19:

Лучше конечно регулярные выражение.

Это факт.

-~{}~ 10.01.06 17:05:

Приношу извинение. Вопрос в продолжение темы.
Чисто ради эксперимента попробовал написать следующее:

PHP:
<?
$slovo=$_GET['slo'];
$kol=strlen($slovo);
$m=0;
$error="Введён недопустимый символ...";
do{
$simvol=ord($slovo{$m});
if($simvol<97||$simvol>122){
echo $error;
exit();
}
$m++;
}while($m!=$kol);
echo "Усе у порадку";
?>
У меня замечательно работает. И при вводе латинских прописных букв, соответственно, "Усе у порадку", при вводе других "Введён недопустимый символ..."

А на сарвере (хостинг Агава) "виснет" и следующая ошибка в логе:
[10-Jan-2006 17:57:13] PHP Warning: PHP Startup: U‰еѓмVSи: Unable to initialize module
Module compiled with module API=20020429, debug=0, thread-safety=0
PHP compiled with module API=20050922, debug=0, thread-safety=0
These options need to match
in Unknown on line 0
[10-Jan-2006 17:57:13] PHP Warning: Zend Optimizer does not support this version of PHP - please upgrade to the latest version of Zend Optimizer in Unknown on line 0
Я что-то по серости своей и безграмотности не пойму про какое-то обновление.
Что это такое и что посоветуете делать?
 

white phoenix

Новичок
Как в том бородатом анекдоте про лошку в чашке и окулиста...
Говорит типа Zend Optimizer внатуре не поддерживает эту версию пхп, и чиста конкретно без базара просит обновить Zend Optimizer до последней версии.
UPD:
PHP:
if (!preg_match('~^[a-z0-9_\-]*$~i',$string)) {echo 'Пора вам смазку менять.';}
else {echo 'Захады, гостем будэш.';}
 

Andronik

Новичок
За пример, оргомное спасибо!
А вообще-то, что это за ошибка? У меня она не только в данном примере. Таких примеров пять уже так точно накопилось. У меня всё отлично работает, а на агаве "обнови Zend Optimizer".
Что же это за несправедливость, товарищи? Что же это делается. Обдерают среди бела дня.

Что делать в этой ситуации?
 

Andronik

Новичок
Ужасно!

Вот как над простыми людьми издеваются. Только бы деньги собрать за хостинг.

Спасибо, white phoenix
 
Сверху