проверка на валидность кошелька

Discussion in 'PHP' started by felix_, 15 Nov 2009.

  1. felix_

    felix_ New Member

    Joined:
    25 Sep 2008
    Messages:
    24
    Likes Received:
    3
    Reputations:
    0
    нужно при регистарции проверить валидность wmz кошелька, вот такой код выводит "ok", если даже
    $wm='f46';

    PHP:
    if ((ereg("(z+[0-9]{12})"$wm )) or (ereg("(Z+[0-9]{12})"$wm )) )
        {
        echo 
    "ok";
        }
    else
        {
                echo 
    "fuck";
        }
     
  2. Deathdreams

    Deathdreams Elder - Старейшина

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    PHP:

    $koshel 
    $_GET['wmz']; //тут способ получения кошеля
     
    if(!preg_match('#Z[0-9]{12}#'trim($koshel))) die('Говно твой кошель'); 

    echo 
    'Норма'


     
    #2 Deathdreams, 15 Nov 2009
    Last edited: 15 Nov 2009
  3. felix_

    felix_ New Member

    Joined:
    25 Sep 2008
    Messages:
    24
    Likes Received:
    3
    Reputations:
    0
    а если маленькая "z" в кошельке ?
     
  4. diGriz

    diGriz Elder - Старейшина

    Joined:
    11 Oct 2006
    Messages:
    138
    Likes Received:
    82
    Reputations:
    6
    PHP:
    if(!preg_match('#Z[0-9]{12}#i'trim($wm))) die('Говно твой кошель');  
    echo 
    'Норма';  
     
  5. Deathdreams

    Deathdreams Elder - Старейшина

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    Можно, как показано в верхнем посту, поставить регистронезависимый знак.

    Или просто сделать strtoupper();
     
  6. b3

    b3 Moderator

    Joined:
    5 Dec 2004
    Messages:
    2,041
    Likes Received:
    933
    Reputations:
    199
    Есть одна большая ошибка в вашей регулярке:

    PHP:
    <?php
    $koshel 
    '121212121212 z123456789012';
    if(!
    preg_match('#Z[0-9]{12}#i'trim($koshel)))  
    {
    echo 
    'Неверный формат Z кошелька';
    exit; 
    }
    echo 
    $koshel;
    ?>
    Вывод:
    121212121212 z123456789012

    PHP:
    <?php
    $koshel 
    '121212121212 z123456789012';
    if(!
    preg_match('#^Z[0-9]{12}$#i'trim($koshel)))  
    {
    echo 
    'Неверный формат Z кошелька';
    exit; 
    }
    echo 
    $koshel;
    ?>
    вывод:
    Неверный формат Z кошелька.

    Вы забыли указать начало и конеч строки в регекспе.
     
    _________________________
    1 person likes this.
  7. felix_

    felix_ New Member

    Joined:
    25 Sep 2008
    Messages:
    24
    Likes Received:
    3
    Reputations:
    0
    всем спасибо.
     
  8. Deathdreams

    Deathdreams Elder - Старейшина

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    b3
    Так понял, что ТСу нужно парсить именно тогда, когда в сообщений только кошель.