Jump to content
  • 0

вопрос по регулярным выражениям


rediskavet
 Share

Question

прошу указать на ошибку. Учу совсем недавно, можно сказать это первый скрипт(не считая "здравствуй мир"). Цель скрипта проверка пароля, если введенное слово не "маша, даша, света и т.д.(из списка), или любое слово заканчивающееся на Я". Разрешить доступ. Иначе запретить доступ. Работает, но не как то непонятно, имена из списка и "я, яя яяяяя" не могут зайти, а "коля, женя, ***" заходят.

if(ereg("[^(маша|даша|света|яна|эделаида|татьяна|я$)]", $_REQUEST['newlogin']))
{
echo "<p>привет <span>$_REQUEST[newlogin]</span>, код доступа K1</p><br>";
echo '<a href="form.php">на главную</a>';
}
else
{
echo "<p>тебе <span>$_REQUEST[newlogin]</span> доступ закрыт, иди мой посуду</p>";
}

Edited by s0rr0w
Link to comment
Share on other sites

10 answers to this question

Recommended Posts

  • 0

[^

Я думаю, дело в этой крышке.

А вообще, почему не in_array()? Делаешь $ff=explode(' ', $_REQUEST['newlogin']) и потом if (in_array($ff[sizeof($ff)-1],$names) || (substr($ff[sizeof($ff)-1],-1) == 'я')) echo "заходите";

Edited by Int
Link to comment
Share on other sites

  • 0

Привет. Спасибо. Не мог ответить, отдыхал в "бан"-е.

$ff=explode(' ', $_REQUEST['newlogin']) и потом if (in_array($ff[sizeof($ff)-1],$names) || (substr($ff[sizeof($ff)-1],-1) == 'я')) echo "заходите";

Такой вариант не проверял(проблемы с ХАМР-ом сейчас), но тут вопрос больше по синтаксису, у меня в книге написано что '[^' - это отрицание, а 'я$' - это "Я" в конце слова, но ведь не работает, решил выяснить.

А ты вот такие конструкции из головы берешь из головы, просто я кроме ECHO сам ни чего не могу написать. с опытом придет?или всегда так со шпаргалкакми и придется писать код?

Link to comment
Share on other sites

  • 0

Конструкции - это логическая уепочка, основанная на известных программисту возможностях языка. Не знаю как Int, но мне непосредственно за уточнением аргументов и тонкостей работы самих функции иногда приходится заглядывать в шпаргалки )) Это касается тех функций, которыми редко пользуешься.

А заглядывать надо не в шпаргалки, а в и-нет или в новые книги, поскольку техника не стоит на месте и некоторые функции устаревают, некоторые меняют кол-во аргументов или еще что-то, у некоторых появляются более совершенные аналоги и т.п.

В php вот с выходом новой версии важные изменения произошли.

Link to comment
Share on other sites

  • 0

Ну для офлайна у меня есть документация(я ее шпорой называю) и книг штук двадцать скачал(хоть одну дочитать-бы до конца), а в сети нашел себе php.su - там тоже есть много молезного.

Куда еще стоит сходить?

Link to comment
Share on other sites

  • 0

Я даже в частоиспользуемые функции заглядываю, у php дикий набор схожих функций с разным порядком параметров. Я, например, всё время забываю, что за чем идёт в strpos и strtr. Порядок параметров для in_array я тоже смотрел в мане :)

У тебя написано:

Могут зайти следующие люди: все, кроме тех, у кого последняя буква я и кроме тех, кто перечислен в списке

А дальше ты спрашиваешь, почему "я я яя" не заходит.

Edited by Int
Link to comment
Share on other sites

  • 0

php.su - хороший ресурс, там и новости вполне свежие. Если есть знания английского, то стоит еще и на западные ресурсы заходить, там больше инфы, больше разбирается примеров и посвежее новости.

Link to comment
Share on other sites

  • 0
Я даже в частоиспользуемые функции заглядываю, у php дикий набор схожих функций с разным порядком параметров. Я, например, всё время забываю, что за чем идёт в strpos и strtr. Порядок параметров для in_array я тоже смотрел в мане :)

У тебя написано:

Могут зайти следующие люди: все, кроме тех, у кого последняя буква я и кроме тех, кто перечислен в списке

А дальше ты спрашиваешь, почему "я я яя" не заходит.

да нет, не так. я,яя,яяя не могут заходить так и задумывалось, ведь они на "я" заканчиваются. Вопрос почему Коля, Саня и КлпдвЯ - могут зайти. Ну ладно оставим это, все равно неприменимо.

У меня другой вопрос, я на выходных буду верстать сайт, там страниц 30-ать, без БД, шапка одинаковая везде, и левая колонка страницах на 15-20-ти, очень мне уже не терпится свои скудные знания в ПХП применить. Стоит или нет вставлять шапку и левую колонку через инклюд в HTML. Заказчику пофиг.

Link to comment
Share on other sites

  • 0
Стоит или нет вставлять шапку и левую колонку через инклюд в HTML. Заказчику пофиг.

Если кроме этого ничего нету из php, то - нет, не стоит, для таких мелочей есть SSI

Link to comment
Share on other sites

  • 0

Я не думаю, что сервер будет настолько слабый, что не потянет инклуд на php.

rediskavet, тебещ ещё надо модификатор i использовать, чтобы и я и Я подходили. И не ereg, а preg тогда.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy