Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.06.2010, 14:21   #1
emeraudx
 
Регистрация: 26.05.2010
Сообщений: 0
По умолчанию Как запретить пробел eregi

Помогите запретить пробел. Такая функция:

if ( !empty( $login ) and !eregi( "[-_0-9a-zA-Zа-яА-Я]+", $login ) )
$error = $error.'<li class="error_text">поле "логин" содержит недопустимые символы</li>'."\n";

Я хочу, чтобы пользователь, который хочет зарегиться, не смог поставить пробел между словами. НЕ ПУТАЙТЕ! Мне не нужно, чтобы пробел был именно между словами, а не в начале и в конце слова, который можно обрезать с помощью функции trim.

1) "пробел\логин\пробел" - можно, т.к. эти пробелы обрезает trim
2) "логин\пробел\продолжение логина" - вот этот пробел я хочу запретить.

Как быть, кто знает?
Языковой портал для тех, кто изучает иностранные языки: www.super-speaker.ru
emeraudx вне форума Ответить с цитированием
Старый 18.06.2010, 15:04   #2
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

Во-первых, вот цитата из мануала по eregi:
Цитата:
This function has been DEPRECATED as of PHP 5.3.0. Relying on this feature is highly discouraged.
Что в кратком переводе "не используйте эту дрянь, а используйте preg_match".

Во-вторых:
PHP код:
preg_match("/^\s*[^\s]+\s*$/"$login
В-третьих, ты не подумал, что если пользователь введёт пробел в конец логина, например, а ты ему не скажешь о том, что пробелы в конце логина запрещены - он будет думать, что у него логин с пробелом, а по-настоящему, ты ему этот пробел молча вырежешь. Вот он и будет, бедный, тыкаться к тебе с логином с пробелом, а ему система будет отвечать, что пароль неверный.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?

Последний раз редактировалось Johnatan; 18.06.2010 в 15:07.
Johnatan вне форума Ответить с цитированием
Старый 18.06.2010, 15:44   #3
emeraudx
 
Регистрация: 26.05.2010
Сообщений: 0
По умолчанию

Цитата:
Сообщение от Johnatan Посмотреть сообщение
Во-первых, вот цитата из мануала по eregi:
В-третьих, ты не подумал, что если пользователь введёт пробел в конец логина, например, а ты ему не скажешь о том, что пробелы в конце логина запрещены - он будет думать, что у него логин с пробелом, а по-настоящему, ты ему этот пробел молча вырежешь. Вот он и будет, бедный, тыкаться к тебе с логином с пробелом, а ему система будет отвечать, что пароль неверный.
Я об этом подумал, поэтому на странице регистрации есть предупреждение о том, что пробелы не ставить.

Функция говорит, что если введенные символы не подходят к разрешенным, то остановиться:

!eregi( "[-_0-9a-zA-Zа-яА-Я]

Как мне запретить пробел между логином??
Языковой портал для тех, кто изучает иностранные языки: www.super-speaker.ru
emeraudx вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как заменить обычний пробел на неразрывный пробел Jaroslav Microsoft Office Excel 2 05.05.2010 11:57
как убрать пробел panzergto Microsoft Office Excel 3 03.04.2010 20:03
как поставить пробел в HTLM таблице ? dima6089 Помощь студентам 2 02.11.2009 11:06
Как поставить пробел, через 8 знаков valerij Microsoft Office Word 3 12.04.2009 23:28
Как поставить пробел, через 8 знаков valerij Microsoft Office Excel 7 11.04.2009 04:24