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

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

Thread Status:
Not open for further replies.
  1. Sum.cogitans

    Sum.cogitans Elder - Старейшина

    Joined:
    7 Sep 2013
    Messages:
    173
    Likes Received:
    32
    Reputations:
    19
    Если я правильно понял проблему, то тут одно из двух или нет доступа к файлу или сам fopen на площадке не работает, включи display_errors и выполни:

    PHP:
    <?php
    $fp 
    fopen ("http://mysite.ru/some.html""r");
    if (!
    $fp) {
        echo 
    "<p>Access false\n";
        exit;
    } else {
        echo 
    "<p>Done\n";
        exit;
    }
    fclose($fp);
    ?>
    Он или напишет статус, если fopen работает или выдаст ошибку, если с площадкой косяк.
     
    #21901 Sum.cogitans, 22 Nov 2013
    Last edited: 22 Nov 2013
  2. GAiN

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

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    пишет done

    получается выглядит это так http://mysitename.ru/myproxy.php
    - это расположение пути на сайте к файлу скрипта

    если зайдя на youtube или в другой сайт где есть внутренние ссылки - то после нажатия он эти ссылки не проксирует а открывает на моём сайте - http://mysitename.ru/results?search_query=google&sm=3
    нужно что бы он при клике проксировал их так же
     
  3. fl47590

    fl47590 Member

    Joined:
    15 Nov 2013
    Messages:
    54
    Likes Received:
    8
    Reputations:
    0
    Если я правильно понял проблему (не уверен), то суть в том, что при скачивании страницы через "прокси" и отображении ее в браузер ссылки, которые заданы на странице относительными путями, ведут (что весьма логично, т.к. пути относительные) на сайт, где стоит "прокси". Для этого один из способов решения проблемы будет такой: перед отображением страницы пользователю "прокси" проверяет наличие ссылок и, если они есть, заменят их на что-то вида "http://mysite.com/proxy.php?url=link". Можно даже urlencode($link). Для этого можно использовать функцию preg_replace_callback примерно следующим образом:
    PHP:
        $content "..."// здесь получаем страницу
        
    $content preg_replace_callback(
            
    '/href=\"(.+)\"/U',
            
    create_function(
                
    '$matches',
                
    'return \'href=http://mysite.com/proxy.php?url=\' . urlencode($matches[1]);'
            
    ),
            
    $content
        
    );    
        echo 
    $content;
    Т.е. мы матчим все ссылки (точнее, содержимое атрибута 'href' тега 'a'. И заменяем его на ссылку на "прокси", передав ей настоящую ссылку в параметре.
    Скрипт ДИКО далек от совершенства, он указывает лишь основную идею. Чтобы сделать его мало-мальски юазабельным нужно рассмотреть больше кейсов (как минимум: поправить регулярку, учитывая синтаксис URL-схемы и т.д и т.п.).
     
  4. I_I

    I_I Member

    Joined:
    22 Nov 2013
    Messages:
    67
    Likes Received:
    6
    Reputations:
    1
    какой код отсылает текст в базу данных,
    хотел бы увидеть самый маленький и рабочий код.
     
  5. fl47590

    fl47590 Member

    Joined:
    15 Nov 2013
    Messages:
    54
    Likes Received:
    8
    Reputations:
    0
    С использованием PDO (можно еще mysqli_, не рекомендуется использовать устаревшее mysql_):
    PHP:
    <?php
        $dbh 
    = new PDO('mysql:host=localhost;dbname=test''root''');
        
    $dbh->query("INSERT INTO `test_table` (`name`) VALUES ('Mr. Green');");
        
    $dbh null;
    ?>
     
  6. I_I

    I_I Member

    Joined:
    22 Nov 2013
    Messages:
    67
    Likes Received:
    6
    Reputations:
    1
    Еще есть один вопрос, я видел рабочий код, сделанный из символов ?!@%#^&*( ну и так далее, как такой код создать?
    Видел на habr если что.
     
  7. fl47590

    fl47590 Member

    Joined:
    15 Nov 2013
    Messages:
    54
    Likes Received:
    8
    Reputations:
    0
    Ссылку дай.
    Скорее всего, зашифрованный/обфусцированный каким-либо образом код.
     
  8. I_I

    I_I Member

    Joined:
    22 Nov 2013
    Messages:
    67
    Likes Received:
    6
    Reputations:
    1
    ссылку не найти, видимо удалили код, но не удивительно он стоил 20к
     
  9. winstrool

    winstrool ~~*MasterBlind*~~

    Joined:
    6 Mar 2007
    Messages:
    1,413
    Likes Received:
    910
    Reputations:
    863
    На хабре врятли бы удалили, если разместили, значит разместили основательно, а то что код был в подобных симвалах, так это не проблема так замутить! массив значений и подмена.
     
    _________________________
  10. Timon132009

    Timon132009 Member

    Joined:
    7 Jun 2009
    Messages:
    137
    Likes Received:
    19
    Reputations:
    0
    Оно?http://habrahabr.ru/post/193986/
     
  11. extjs

    extjs Member

    Joined:
    23 Jun 2013
    Messages:
    31
    Likes Received:
    6
    Reputations:
    0
    тобой не рекомендуется? устаревшее mysql_ будет поддерживаться еще лет
    5-6
     
  12. GAiN

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

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    к сожалению совсем что то безрезультатно :(

    может как то перехватить запрос - ведь url и всё что после моего домена - это нужная как раз часть - но уже подставлять её к прописанному url в форме ?

    вот код:

    PHP:
    <?php
    if($_POST['open']) {
    $_POST['url'] = htmlspecialchars(stripslashes($_POST['url']));
    $urls_form $_POST['url'];
    header('Content-Type: text/html; charset=utf-8');
    ini_set('user_agent'"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.13+ (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2\r\nX-MyCustomHeader: Browser");
    $opts = array(
      
    'http'=>array(
        
    'method'=>"GET",
        
    'header'=>"Accept-language: en\r\n" .
                  
    "Cookie: login=xxx; pass=xxx\r\n"
      
    )
    );

    $context stream_context_create($opts);
    $fp fopen($urls_form'r'false$context);
    fpassthru($fp);
    fclose($fp);
    $form =  '
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    </head>
    <form method="post">
    <label for="url">URL:</label>
    <input type="text" name="url" value="'
    .$urls_form.'" id="url">
    <input type="submit" name="open" value="открыть">
    </form>'
    ;
    echo 
    '<p>'.$form.'</p><hr><br><br></html>'; exit();
    }
    ?>
     
    #21912 GAiN, 24 Nov 2013
    Last edited: 24 Nov 2013
  13. fl47590

    fl47590 Member

    Joined:
    15 Nov 2013
    Messages:
    54
    Likes Received:
    8
    Reputations:
    0
    Отвечаю на ехидный вопрос: не рекомендуется сообществом. Зайдя на php.net в описание к любой функции префикса mysql_ можно лицезреть примерно следующее сообщение:
    Далее, открывая на php.net статью Overview of the MySQL PHP drivers -> Choosing an API по адресу http://www.php.net/manual/en/mysqlinfo.api.choosing.php можно увидеть следующее:
    Если google translate не справится - обращайся.
     
    #21913 fl47590, 24 Nov 2013
    Last edited: 24 Nov 2013
  14. I_I

    I_I Member

    Joined:
    22 Nov 2013
    Messages:
    67
    Likes Received:
    6
    Reputations:
    1
    нет, тот был качественно сделан и там были разного рода символы.
     
  15. I_I

    I_I Member

    Joined:
    22 Nov 2013
    Messages:
    67
    Likes Received:
    6
    Reputations:
    1
    Карочи я пытался найти топик но код был удален, чел у которого они купили код, запрещает выкладывать их в открытый доступ, они его выложили лишь потому что он не отвечал на сообщения, и не кто не мог понять как он работает, но он работал)
    если мне не изменяет фотографическая память, код был сжат и в нем не было пробелов, сделан он был из символов.
     
  16. fl47590

    fl47590 Member

    Joined:
    15 Nov 2013
    Messages:
    54
    Likes Received:
    8
    Reputations:
    0
    В твоем коде используется fpassthru(). Она делает
    Соотвественно, в этом варианте у тебя нету возможности поправить получаемый контент. Тебе надо заменить строку с fpassthru(), вставив туда получение ответа от сервера без немедленного помещения его в буфер вывода. А потом поправить ссылки на странице (например, тем методом, который я описал ранее). Способов получить от сервера ответ без использования fpassthru() масса: например fgets в цикле (http://us2.php.net/fgets - тут пример есть).
     
  17. ukrpunk

    ukrpunk Member

    Joined:
    31 Oct 2011
    Messages:
    47
    Likes Received:
    14
    Reputations:
    5
    Доброго времени суток, подскажите, как реализовать следующее

    проверяю домены на занятость. сервис отдает страничку, где домены вот в таком виде выводятся ( style="background-color:#ccffcc;" можно взять как признак того, что домен свободен)
    Code:
    <tr class="tr_even">
      <td class="td_left td_all">
        <em>01</em>
        MUSIC.RU
      </td>
      <td class="td_right td_all" style="background-color:#ccffcc;" onmouseover="showHint('hint', '<p>Поставьте галочку, чтобы выбрать домен для дальнейшей регистрации.</p>')" onmouseout="hideHint('hint')">
        <input type="checkbox" name="01MUSICru" checked="">
      </td>
    </tr>
    С регулярками я не особо дружу, не пойму как отсюда вытянуть свободен домен или нет. На странице информация о 500+ доменах

    Я предпологаю, что логично спарсить в массив все строки <td class="td_left td_all">(.*)</tr> и потом их уже обрабатывать?

    У кого есть варианты как сделать это наиболее правильно и выгодно, подскажите куда копать. Надеюсь на вашу помощь, спасибо!
     
  18. fl47590

    fl47590 Member

    Joined:
    15 Nov 2013
    Messages:
    54
    Likes Received:
    8
    Reputations:
    0
    Один из вариантов:
    PHP:
    <?php
        $content 
    '...'// здесь идет получение содержимого страницы в переменную $content
        
    echo substr_count($content'style="background-color:#ccffcc;"');
    ?> 
     
  19. Jazz

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

    Joined:
    27 Sep 2008
    Messages:
    80
    Likes Received:
    2
    Reputations:
    -1
    Не был здесь около трех лет. Пока качаю ксамп спрошу все таки.
    Как написать простейшую спамилку?
    Есть два поля (логин,пароль) и кнопка.
    После заполнения заносишь в базу.
    Как сделать это автоматически?(например зарегать список ников и соответствующие пароли).
    Раньше было приложение к фаерфоксу которое показывало запросы в них вставляешь переменые и на сервер.
    Заранее спасибо господа хакеры.
    Звеняюсь за тупость.
     
    #21919 Jazz, 27 Nov 2013
    Last edited: 27 Nov 2013
  20. ukrpunk

    ukrpunk Member

    Joined:
    31 Oct 2011
    Messages:
    47
    Likes Received:
    14
    Reputations:
    5
    ну это понятно, просто выведет кол-во результатов, а мне нужно выпарсить все домены, которые свободны )
    Code:
    <tr class="tr_even">
      <td class="td_left td_all">
        <em>01</em>
        MUSIC.RU
      </td>
      <td class="td_right td_all" style="background-color:#ccffcc;" onmouseover="showHint('hint', '<p>Поставьте галочку, чтобы выбрать домен для дальнейшей регистрации.</p>')" onmouseout="hideHint('hint')">
        <input type="checkbox" name="01MUSICru" checked="">
      </td>
    </tr>
    т.е. получить имя домена (сдесь 01MUSIC.RU) только в том случае, если в строке таблицы (<tr...</tr>) есть признак того, что домен свободен (style="background-color:#ccffcc;")
    повторюсь, что доменов более 500 на 1ой странице
     
    #21920 ukrpunk, 27 Nov 2013
    Last edited: 27 Nov 2013
Thread Status:
Not open for further replies.