Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Сравнения строк
Форумы портала PHP.SU » » Вопросы новичков » Сравнения строк

Страниц (1): [1]
 

1. saber135791 - 03 Октября, 2011 - 10:12:16 - перейти к сообщению
Здравствуйте, подскажите какую функцию надо применить для следующего: мне нужно, чтобы пользователь в поле пароль писал только латинские символы, и ни какие другие, как это можно сделать?
2. illy - 03 Октября, 2011 - 10:19:12 - перейти к сообщению
если ява скрипт то так

CODE (html):
скопировать код в буфер обмена
  1. <input name=firm class=ini type=password maxlenght=40 onkeyup="this.value=this.value.replace(/[^a-zA-Z]*/g,'');">
3. saber135791 - 03 Октября, 2011 - 11:07:14 - перейти к сообщению
illy пишет:
если ява скрипт то так

А php есть? Нужна php функция с помощью которой можно вызвать ошибку если в поле содержатся не латинские символы, к примеру здесь я вызываю ошибку если в логине меньше 6 символов:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. if (strlen($login) < 6)
  3. {
  4.         echo "В логине должно быть больше 6 символов!";
  5. }
  6. ?>
4. gephaest - 03 Октября, 2011 - 11:54:11 - перейти к сообщению
http://www.php.su/articles/?cat=...exp&page=001
PHP:
скопировать код в буфер обмена
  1. if(!preg_match("/^[a-zA-Z]+$/", $password)) {
  2.   // пароль состоит из нелатиницы
  3. } else {
  4.    // соотсветсвенно из латиницы
  5. }

Выражение учитывает большие и маленькие латинские буквы.
5. illy - 03 Октября, 2011 - 12:14:48 - перейти к сообщению
можно чуть короче Подмигивание
PHP:
скопировать код в буфер обмена
  1. if(!preg_match("/^[a-z]+$/i", $password)) {
  2.   // пароль состоит из нелатиницы
  3. } else {
  4.    // соотсветсвенно из латиницы
  5. }
6. saber135791 - 03 Октября, 2011 - 12:36:10 - перейти к сообщению
Спасибо!
7. saber135791 - 03 Октября, 2011 - 15:18:51 - перейти к сообщению
Появилась не большая проблема: если строка пуста, то появляется сообщение "Присутствуют недопустимые символы!", подскажите как можно с этим справится?
P.S. А можно использовать такое: if (if())? Если можно, то вышестоящий вопрос отпадает!
8. LIME - 03 Октября, 2011 - 15:38:51 - перейти к сообщению
а так? ))
PHP:
скопировать код в буфер обмена
  1. if (empty($password)) {
  2.   //пароль пустой
  3. }
  4.   elseif(preg_match("/^[a-z]+$/i", $password)) {
  5.       // из латиницы
  6. }   else {
  7.      // из нелатиницы
  8. }
9. saber135791 - 03 Октября, 2011 - 16:00:33 - перейти к сообщению
LIME пишет:
а так? ))

Не совсем как надо, мне нужно для проверке перед занесением в базу данных, а там один if! Вот пример:
CODE (htmlphp):
скопировать код в буфер обмена
  1. if ((проверка заполнены ли переменные) && (проверка занят ли логин) && (проверка есть ли не латинские символы))
  2. {
  3. $result = mysql_query ...;
  4. }
10. LIME - 03 Октября, 2011 - 16:03:40 - перейти к сообщению
какие проблемы?
PHP:
скопировать код в буфер обмена
  1. if (empty($password)) {
  2.   //пароль пустой
  3. }elseif ((проверка заполнены ли переменные) && (проверка занят ли логин) && (проверка есть ли не латинские символы))
  4. {
  5. $result = mysql_query ...;
  6. }

(Добавление)
или так
PHP:
скопировать код в буфер обмена
  1. if ((проверка заполнены ли переменные) && (проверка занят ли логин) &&(!empty($password) )&&(проверка есть ли не латинские символы))
  2. {
  3. $result = mysql_query ...;
  4. }

 

Powered by ExBB FM 1.0 RC1