За последние 24 часа нас посетили 16968 программистов и 1652 робота. Сейчас ищут 982 программиста ...

Работа Javascript через прокси..

Тема в разделе "PHP для новичков", создана пользователем Invision, 14 мар 2011.

  1. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Стоит у меня прокси анонимайзер на движке Glype http://www.glype.com/

    Единственная проблема которая не дает спокойно спать - это не работает javascript.
    Используется curl, понять ничего не могу почему так =(

    Есть пример вроде там что то фиксят на некоторых страницах, но как это вообще может помогать не знаю и что они делают?)

    Вот примеры:

    MySpace.com

    PHP:
    1. function preParse($input, $type) {
    2.  
    3.    switch ( $type ) {
    4.    
    5.       // Apply changes to HTML documents
    6.       case 'html':
    7.      
    8.          // Javascript fix - break up the string into 2 pieces so we don't
    9.          // confuse the main proxy parser with a ".innerHTML = " string.
    10.          $input = str_replace('"invalidLogin.innerHTML = \""', '"invalidLogin.in"+"nerHTML = \""', $input);
    11.          
    12.          // Reroute AJAX requests
    13.          $insert = <<<OUT
    14.             <script type="text/javascript">
    15.             XMLHttpRequest.prototype.open = function(method,uri,async) {
    16.                return this.base_open(method, parseURL(uri.replace('localhost', 'www.myspace.com'), 'ajax'), async);
    17.             };
    18.             </script>
    19. OUT;
    20.          $input = str_replace('</head>', $insert . '</head>', $input);
    21.          
    22.          break;
    23.      
    24.    }
    25.    
    26.    // Return changed
    27.    return $input;
    28.  
    29. }
    или myspacecdn.com.php

    PHP:
    1. function preParse($input, $type) {
    2.  
    3.    switch ( $type ) {
    4.          
    5.       // Apply changes to Javascript documents
    6.       case 'javascript':
    7.  
    8.          global $URL;
    9.          if ( $URL['href'] == 'http://x.myspacecdn.com/modules/common/static/js/myspacejs065.js' ) {
    10.             $input = str_replace('var urls = document.URL', "var urls=ginf.target.h+ginf.target.p", $input);
    11.             $input = str_replace('else a=document.URL}', "else a=ginf.target.h+ginf.target.p}", $input);
    12.          }
    13.      
    14.          break;
    15.      
    16.    }
    17.    
    18.    // Return changed
    19.    return $input;
    20.  
    21. }
    Где вообще логика фикса JS? Заменяют var urls = document.URL на var urls=ginf.target.h+ginf.target.p ? и к чему)

    мб кто ответит)
     
  2. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    з.ы встречный вопрос. в каких случаях используется return false; в функциях?:)
     
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Invision
    КО: если надо вернуть фалс
     
  4. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    а зачем тогда составлять функцию если нужно из нее вернуть false а не значение определенное)
    p.s я опять в протуп вхожу =)
     
  5. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    А зачем, например, функция mysql_query может вернуть false? или strpos..?
    Может быть ты будешь составлять функцию, которая должна вернуть определённое значение, но при определённых условиях (например, некорректные входящие данные) должна вернуть false.
     
  6. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    а что если в функции какое то условие к примеру $a > $b и в конце может быть return false? т.е если $a не > $b то вернет false, если истина то true? =)
     
  7. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Ну да. Например как-то так
    [js]function (a, b) {
    var ret = (a > b) ? true : false;
    return(ret);
    }[/js]
     
  8. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    неее
    [js] function Some(a, b) {
    return(a > b);
    }[/js]