За последние 24 часа нас посетили 15787 программистов и 1642 робота. Сейчас ищут 1058 программистов ...

Статья о Безопасности

Тема в разделе "PHP для новичков", создана пользователем topas, 10 ноя 2006.

  1. Kortez

    Kortez Активный пользователь

    С нами с:
    16 окт 2006
    Сообщения:
    33
    Симпатии:
    0
    Код (Text):
    1. /[^(w)|(x7F-xFF)|(s)]/
    [^(w)-не буквы a-zA-Z
    |(x7F-xFF)- или символы с номерами от x7F-xFF
    |(s)]- или пробел
    но русские буквы как раз находятся в диапазоне x7F-xFF, так что по любому ошибка.
     
  2. Anonymous

    Anonymous Guest

    Kortez, неа.
    ^ - воздействует на весь символьный класс [].
    (w) != [^a-zA-Z], потому что:
     
  3. Anonymous

    Anonymous Guest

    Но как ни странно, это действительно делает шаблон =
    Другое дело, что я не могу представить себе ник, не имеющий в своем составе ни английских, ни русских букв. =))))
     
  4. zxcvbop

    zxcvbop Активный пользователь

    С нами с:
    30 авг 2006
    Сообщения:
    26
    Симпатии:
    0
    Адрес:
    Латвия, Рига.
    2 Горбунов Олег а чем тебе ненравится ник *&@#* ? =))
     
  5. Kortez

    Kortez Активный пользователь

    С нами с:
    16 окт 2006
    Сообщения:
    33
    Симпатии:
    0
    так, хорошо, разьясню на приемре, берем все символы для русской локали:
    Код (Text):
    1.  
    2. #11= #12= #13= #14= #15= #16= #17= #18= #19= #20= #21= #22= #23= #24= #25= #26= #27= #28= #29= #30= #31= #32= #33=! #34=" #35=# #36=$ #37=% #38=& #39=' #40=( #41=) #42=* #43=+ #44=, #45=- #46=. #47=/ #48=0 #49=1 #50=2 #51=3 #52=4 #53=5 #54=6 #55=7 #56=8 #57=9 #58=: #59=; #60=< #61== #62=> #63=? #64=@ #65=A #66=B #67=C #68=D #69=E #70=F #71=G #72=H #73=I #74=J #75=K #76=L #77=M #78=N #79=O #80=P #81=Q #82=R #83=S #84=T #85=U #86=V #87=W #88=X #89=Y #90=Z #91=[ #92=\ #93=] #94=^ #95=_ #96=` #97=a #98=b #99=c #100=d #101=e #102=f #103=g #104=h #105=i #106=j #107=k #108=l #109=m #110=n #111=o #112=p #113=q #114=r #115=s #116=t #117=u #118=v #119=w #120=x #121=y #122=z #123={ #124=| #125=} #126=~ #127= #128=? #129=? #130=‚ #131=? #132=„ #133=… #134=† #135=‡ #136=? #137=‰ #138=S #139=‹ #140=? #141=? #142=Z #143=? #144=? #145=‘ #146=’ #147=“ #148=” #149=• #150=– #151=— #152=? #153=™ #154=s #155=› #156=? #157=? #158=z #159=Y #160=  #161=? #162=? #163=? #164=¤ #165=? #166=¦ #167=§ #168=? #169=© #170=? #171=« #172=¬ #173=­ #174=® #175=? #176=° #177=± #178=? #179=? #180=? #181=µ #182=¶ #183=· #184=? #185=? #186=? #187=» #188=? #189=? #190=? #191=? #192=А #193=Б #194=В #195=Г #196=Д #197=Е #198=Ж #199=З #200=И #201=Й #202=К #203=Л #204=М #205=Н #206=О #207=П #208=Р #209=С #210=Т #211=У #212=Ф #213=Х #214=Ц #215=Ч #216=Ш #217=Щ #218=Ъ #219=Ы #220=Ь #221=Э #222=Ю #223=Я #224=а #225=б #226=в #227=г #228=д #229=е #230=ж #231=з #232=и #233=й #234=к #235=л #236=м #237=н #238=о #239=п #240=р #241=с #242=т #243=у #244=ф #245=х #246=ц #247=ч #248=ш #249=щ #250=ъ #251=ы #252=ь #253=э #254=ю #255=я
    убираем
    символы с номерами x7F-xFF(127-255) и пробел, остаются:
    Код (Text):
    1.  
    2. #11= #12= #13= #14= #15= #16= #17= #18= #19= #20= #21= #22= #23= #24= #25= #26= #27= #28= #29= #30= #31= #33=! #34=" #35=# #36=$ #37=% #38=& #39=' #40=( #41=) #42=* #43=+ #44=, #45=- #46=. #47=/ #58=: #59=; #60=< #61== #62=> #63=? #64=@ #91=[ #92=\ #93=] #94=^ #96=` #123={ #124=| #125=} #126=~
    т.е получается, что ник может состоять из любых символов, кроме написанных выше, а кроме букв, цифр, символа подчеркивания в нике разрешаются следующие символы:
    Код (Text):
    1. #127= #128=? #129=? #130=‚ #131=? #132=„ #133=… #134=† #135=‡ #136=? #137=‰ #138=S #139=‹ #140=? #141=? #142=Z #143=? #144=? #145=‘ #146=’ #147=“ #148=” #149=• #150=– #151=— #152=? #153=™ #154=s #155=› #156=? #157=? #158=z #159=Y #160=  #161=? #162=? #163=? #164=¤ #165=? #166=¦ #167=§ #168=? #169=© #170=? #171=« #172=¬ #173=­ #174=® #175=? #176=° #177=± #178=? #179=? #180=? #181=µ #182=¶ #183=· #184=? #185=? #186=? #187=» #188=? #189=? #190=? #191=?
    , т.е. можно создать ник, например, ?Kortez®, а задача была совсем другой,
     
  6. Anonymous

    Anonymous Guest

    Kortez, сел... подумал, перечитал мануал. Знаешь что?
    По логике, все шаблоны там - неправильные.
    Просто потому, что использовать обозначение () для подмасок внутри символьного класса [] и нельзя.
     
  7. Anonymous

    Anonymous Guest

    ЗЫ. Может, конечно, я чегой то не знаю, или неправавильно понял, т.к. с регулярками я только только со словарём(мануалом) общаюсь..
     
  8. Kortez

    Kortez Активный пользователь

    С нами с:
    16 окт 2006
    Сообщения:
    33
    Симпатии:
    0
    Горбунов Олег
    Ладно, забей :) И так уже на эту статью столько времени потеряли :)
     
  9. Anonymous

    Anonymous Guest

    Kortez, э, не!
    Хочу знать!
    Вот REgexBuddy тоже сказал, что нельзя так делать....
     
  10. Kortez

    Kortez Активный пользователь

    С нами с:
    16 окт 2006
    Сообщения:
    33
    Симпатии:
    0
    Горбунов Олег
    Перечитал еще раз про скобки в регулярных выражениях, http://phpclub.ru/detail/article/regexp_1, использование () внутри символьного класса [] служит для группирующих целей, использование () вне символьного класса [] служит для сохраняющих целей
     
  11. simpson

    simpson Активный пользователь

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    можно пример сего утверждения?
     
  12. Kortez

    Kortez Активный пользователь

    С нами с:
    16 окт 2006
    Сообщения:
    33
    Симпатии:
    0
    Ну например, для наглядности вместо
    Код (Text):
    1. /^[_a-zA-Zа-яА-Я]*$/
    можно написать
    Код (Text):
    1. /^[_(a-z)(A-Z)(а-я)(А-Я)]*$/
    чисто практической пользы я в этом не вижу
     
  13. Anonymous

    Anonymous Guest

    Kortez, неа. Нельзя. Проверь.
     
  14. simpson

    simpson Активный пользователь

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Горбунов Олег, написать-то можно, вот только результат будет отличаться от желаемого. :)
    Kortez, во второй шаблон попадают соответствия открывающей и закрывающей скобкам.
     
  15. Kortez

    Kortez Активный пользователь

    С нами с:
    16 окт 2006
    Сообщения:
    33
    Симпатии:
    0
    Проверил, можно, но результат, как и сказал simpson действительно отличается :)
    Да, ты прав :)