[php] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,170
    Likes Received:
    1,155
    Reputations:
    202
    Вы либо удаляйте пост полностью, либо вообще ничего не делайте, хотел подсказать но неуспел, а вообще и использовать ereg и eregi не хорошо.
     
  2. Ifrit

    Ifrit New Member

    Joined:
    10 Feb 2011
    Messages:
    33
    Likes Received:
    3
    Reputations:
    5
    ну я же написал, что если не будет вариантов,
    а как лучше сделать скажите? вместо ereg?
     
  3. ZERO-Y

    ZERO-Y Elder - Старейшина

    Joined:
    28 Mar 2006
    Messages:
    85
    Likes Received:
    16
    Reputations:
    3
    b3, ок извините :)
    п.с. у меня при использовании ereg, денвер выдает вот такую ошибку :
    Это версия денвера устарела и он не понимает ?)
     
  4. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,170
    Likes Received:
    1,155
    Reputations:
    202
    Это "версия" ereg устарела вообще то )))) Используйте preg_match вместо ereg
     
  5. Skofield

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

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    Я так понял ему нужно, чтобы при проверке 1-й строки, после буквы были 4 цифры. Тогда в регулярном выражении в $a вместо (....) нужно написать [0-9]{4}$
     
    1 person likes this.
  6. Ifrit

    Ifrit New Member

    Joined:
    10 Feb 2011
    Messages:
    33
    Likes Received:
    3
    Reputations:
    5
    учел спасибо
    оказывается в версиях 5.3.0 и выше ereg больше нет =(
    поменяйте 2 страничку на эту
    PHP:
    $a=preg_match("/^[A-Za-z][0-9]{4}$/",$_POST['var']);
    $b=preg_match("/^.+@.+\..+$/",$_POST['email']);
    $c=preg_match("/^[0-9]{7}$/",$_POST['numbers']);
    if ((!
    $a or !$b or !$c) or (empty ($_POST['var']) or empty ($_POST['email']) or empty ($_POST['numbers'])))
        {
        
    header ("Location: http://somesite/data.php");
        exit;
        }
        else 
        {
        echo 
    'Отлично! Данные введены правильно';
        }
     
    #17806 Ifrit, 28 Feb 2011
    Last edited: 28 Feb 2011
    1 person likes this.
  7. ZERO-Y

    ZERO-Y Elder - Старейшина

    Joined:
    28 Mar 2006
    Messages:
    85
    Likes Received:
    16
    Reputations:
    3
    Я сделал так (пока что главное что б работало хоть как нибуть =)) ) :
    PHP:
    <?php
    $a
    =preg_match("/^[A-Za-z][0-9]{4}$/",$_POST['var']); 
    $b=preg_match("/^.+@.+\..+$/",$_POST['email']); 
    $c=preg_match("/^[0-9]{7}$/",$_POST['numbers']);
    if ((!
    $a) or (empty ($_POST['var']))) 
        { 
        echo 
    "Введен некорректный var", exit; 
        } 
        
    if ((!
    $b) or (empty ($_POST['email']))) 
        { 
        echo 
    "Введен некорректный email", exit; 
        }     
        
    if ((!
    $c) or (empty ($_POST['numbers']))) 
        { 
        echo 
    "Введен некорректный намберс", exit; 
        }         
        
    echo 
    "Всё зашибись :))";
    ?>
    А как сделать что бы если
    вообще нету, то есть только 2 переменные, то она и не проверялась.
    Просто на разных страничках будут разные переменные (на одной var, email и numbers, на другой только email и numbers)?. Хочу сделать один скрипт по которому буду проганять все странички.
     
    #17807 ZERO-Y, 28 Feb 2011
    Last edited: 28 Feb 2011
  8. ZERO-Y

    ZERO-Y Elder - Старейшина

    Joined:
    28 Mar 2006
    Messages:
    85
    Likes Received:
    16
    Reputations:
    3
    Спасибо большое за помощь, сделал, все работает! На счет 2 и 3 поля для ввода, сделаю так: добавлю
    если $aa = 2, значит проверяет 2 значения, если 3 то 3.

    Еще раз всем спасибо!)
     
  9. Ifrit

    Ifrit New Member

    Joined:
    10 Feb 2011
    Messages:
    33
    Likes Received:
    3
    Reputations:
    5
    ZERO, ломал я голову ломал, но ничего умнее GET не придумал, честно говоря перестал понимать, что Вы хотите сделать, но добавил подсказки по тому, что неправильно набрано, по поводу дизайна - сами надрывайтесь =)


    PHP:
    <?php
    if (($_GET['var'])==and ($_GET['email'])==and ($_GET['numbers'])==1)
    $label='Вы неправильно указали логин';
    elseif ((
    $_GET['var'])==and ($_GET['email'])==and ($_GET['numbers'])==1)
    $label='Вы неправильно указали логин и е-мейл';
    elseif ((
    $_GET['var'])==and ($_GET['email'])==and ($_GET['numbers'])==1)
    $label='Вы неправильно указали е-мейл';
    elseif ((
    $_GET['var'])==and ($_GET['email'])==and ($_GET['numbers'])==0)
    $label='Вы неправильно указали логин, е-мейл и числовой набор';
    elseif ((
    $_GET['var'])==and ($_GET['email'])==and ($_GET['numbers'])==0)
    $label='Вы неправильно указали числовой набор';
    elseif ((
    $_GET['var'])==and ($_GET['email'])==and ($_GET['numbers'])==0)
    $label='Вы неправильно указали логин и числовой набор';
    else
    $label='';
    echo 
    '<HTML>
    </BODY>
    <TITLE>
    Страница для ввода какой то информации
    </TITLE>
    <BODY>
    <BR>
    <P><b><center><font size="50">Введите данные
    <P><b><center><h4>'
    .$label.'
     <FORM action="http://somesite/val_page.php" method="post">
        <TABLE align="center">
        <TR><TH align="left">Буквенно числовой набор:         <TH><INPUT type="text" name="var">
           <TR><TH align="left">e-mail:                         <TH><INPUT type="text" name="email"><BR>
        <TR><TH align="left">Набор цифр:                     <TH><INPUT type="text" name="numbers">
        <TR><TH colspan="2" align="center"> <INPUT type="submit" value="Продолжить">
        </TABLE>
    </FORM>
    </BODY>
    </HTML>'
    ;
    ?>

    PHP:
    <?php
    $a
    =preg_match("/^[A-Za-z][0-9]{4}$/",$_POST['var']);
    $b=preg_match("/^.+@.+\..+$/",$_POST['email']);
    $c=preg_match("/^[0-9]{7}$/",$_POST['numbers']);
    if (!
    $a or empty ($_POST['var']))
    {
    $x=0;}else {$x=1;}
    if (!
    $b or empty ($_POST['email']))
    {
    $y=0;}else {$y=1;}
    if (!
    $c or empty ($_POST['numbers']))
    {
    $z=0;}else {$z=1;}

    if ((!
    $a or !$b or !$c) or (empty ($_POST['var']) or empty ($_POST['email']) or empty ($_POST['numbers'])))
        {
        
    header ('Location: http://somesite/data.php?var='.$x.'&email='.$y.'&numbers='.$z.'');
        exit;
        }
        else 
        {
        echo 
    'Отлично! Данные введены правильно';
        }
    ?>
     
  10. Skofield

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

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    Добавь еще сюда "/^[A-Za-zА-Яа-я][0-9]{4}$/", если кириллица.
     
  11. killrok6

    killrok6 New Member

    Joined:
    30 Jul 2010
    Messages:
    33
    Likes Received:
    3
    Reputations:
    0
    В данном случае это функия удаления и я её подключаю как бы в админ панель по редактированию новостей
     
  12. Andres

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

    Joined:
    4 Apr 2008
    Messages:
    320
    Likes Received:
    119
    Reputations:
    0
    Ну это и так понятно, товарищ))
     
  13. Nelz.

    Nelz. Member

    Joined:
    2 Aug 2010
    Messages:
    151
    Likes Received:
    7
    Reputations:
    0
    это я знаю,а внутри аргумента без кавычки?
     
  14. .::f-duck::.

    .::f-duck::. Member

    Joined:
    30 May 2009
    Messages:
    343
    Likes Received:
    32
    Reputations:
    7
    Зачем в функцию передавать константу?
    PHP:
    <?php
        define
    ('TEST''success');
        function 
    testing_const() {
            echo 
    TEST;
        }
        
    testing_const();
    ?>
    Ifrit, почитай про switch-case :(
     
    #17814 .::f-duck::., 28 Feb 2011
    Last edited: 28 Feb 2011
  15. qaz

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

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    почему нету темы письма в письме?

    PHP:
    $title 'Тема письма';
    $header ="Content-type: text/plain; charset=\"utf-8\"" "\r\n";
    $header.="From:  [email protected]"\r\n";
    $letter 'Вы запросили восстановление пароля для аккаунта на сайте Site.ru Ваш новый пароль: '.$roo.' уважением админестрация сайта Site.ru';



    if (
    mail($err,$title  $letter ,$header))
    {
    echo 
    "Пароль отправлен";
    }
    else
    {
    echo 
    "Пароль не отправлен, такого емейла не существует или вы ошиблись при вводе";
    }
     
  16. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    qaz читайте рфц и хватит каждый возникающий вопрос спрашивать, попробуйте чуть чуть подумать

    killrok6 вы автомобили тоже так описываете? "Это машина". "Ах да, у нее 4 колеса".

    Ifrit Вам не лень было все это перепечатывать? Плюс так нельзя проверить переменные на пустоту. Плюс форма передает значения в массив POST, вы же проверяете GET. Плюс так вообще не делают. Если забить на союз "и", то лучше делать так:
    PHP:
    <?php
    $error 
    '';
    if (isset(
    $_POST['var'], $_POST['email'], $_POST['numbers']))
    {
    $label = array();

    if (empty(
    $_POST['var'])) $label[]='логин';
    if (empty(
    $_POST['email'])) $label[]='е-мейл';
    if (empty(
    $_POST['numbers'])) $label[]='числовой набор';

    if (!empty(
    $label)) $error 'Вы неправильно указали: 'implode(', '$label);
    }
    ?><HTML>
    </BODY>
    <TITLE>
    Страница для ввода какой то информации
    </TITLE>
    <BODY>
    <BR>
    <P><b><center><font size="50">Введите данные
    <P><b><center><h4><?PHP echo $error?>
     <FORM action="" method="post">
        <TABLE align="center">
        <TR><TH align="left">Буквенно числовой набор:         <TH><INPUT type="text" name="var">
           <TR><TH align="left">e-mail:                         <TH><INPUT type="text" name="email"><BR>
        <TR><TH align="left">Набор цифр:                     <TH><INPUT type="text" name="numbers">
        <TR><TH colspan="2" align="center"> <INPUT type="submit" value="Продолжить">
        </TABLE>
    </FORM>
    </BODY>
    </HTML>
     
    _________________________
    #17816 Gifts, 28 Feb 2011
    Last edited: 1 Mar 2011
  17. qaz

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

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
     
  18. wolmer

    wolmer Member

    Joined:
    12 May 2009
    Messages:
    438
    Likes Received:
    97
    Reputations:
    9
    http://ru.wikipedia.org/wiki/RFC
     
  19. qaz

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

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    класно, ну так ктонибуть подскажет где у меня в скрипте ошибка?
     
  20. .::f-duck::.

    .::f-duck::. Member

    Joined:
    30 May 2009
    Messages:
    343
    Likes Received:
    32
    Reputations:
    7
    Чем мы тебе обязаны?
    http://lv.php.net/manual/en/function.mail.php
    http://www.faqs.org/rfcs/rfc2047.html
     
Thread Status:
Not open for further replies.