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

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

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

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

    Joined:
    11 Nov 2006
    Messages:
    552
    Likes Received:
    298
    Reputations:
    207
    Снаружи - при register_globals on иногда можно, но не все. Изнутри можно, по моему тоже не все
     
  2. inlanger

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

    Joined:
    7 Jan 2007
    Messages:
    985
    Likes Received:
    283
    Reputations:
    27
    А подробнее можно? Мне надо "перейтипо ссылке" именно с определённого браузера и определённого диапозона Ip. Но Ip, допустим, у меня есть. Как хотя-бы браузер подделать?
     
  3. Macro

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

    Joined:
    11 Nov 2006
    Messages:
    552
    Likes Received:
    298
    Reputations:
    207
    Браузер подделать очень просто - подменить User Agent
     
  4. inlanger

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

    Joined:
    7 Jan 2007
    Messages:
    985
    Likes Received:
    283
    Reputations:
    27
    Ладно, его подменим... А Ip рельно?
     
  5. inlanger

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

    Joined:
    7 Jan 2007
    Messages:
    985
    Likes Received:
    283
    Reputations:
    27
    Хм... Подстановка браузера тож не хочет работать:
    пишу
    PHP:
    <?php 
    $site
    ="admex.org";
    $request "GET /login.php?login=inlanger&pass=MYPASS HTTP/1.0\r\n";
    $request .= "Host: $site\r\n";
    $request .= "Expires: Thu, 01 Jan 1970 00:00:01 GMT\r\n";
    $request .= "Cache-Control: no-store, no-cache, must-revalidate\r\n";
    $request .= "Pragma: no-cache\r\n";
    $request .= "Cookie: income=1\r\n";
    $request .= "User-Agent: Opera/8.01 (J2ME/MIDP; Opera Mini/1.2.3214/1684; ru; U; ssr)\r\n";
    $request .= "Client-ip: 195.189.142.77\r\n";
    $request .= "FORWARDED_FOR: 195.189.142.77\r\n";
    $fp2 fsockopen("$site"80);
                    
    fputs($fp2$request);
                    
    fputs($fp2"Connection: close\r\n");
                    
    fputs($fp2"\r\n");

                    while (!
    feof($fp2)) {
                    echo 
    fgets($fp2128);
                    }

                    
    fclose($fp2);
                    
    sleep($time);
    ?>
    А оно мне пишет:
    и так постоянно! То есть подмена не происходит?
     
  6. NNNS

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

    Joined:
    26 May 2007
    Messages:
    44
    Likes Received:
    28
    Reputations:
    -5
    Вопрос по сокетам. Нужно получить инфу лежащую на страничке, которая закрыта авторизацией.
    PHP:
     $fp=fsockopen("xxxyyy.ru",80,$errno,$errstr,10);
    $out "GET /[email protected]&pass=12345 HTTP/1.0\r\n";
    $out .= "Host: xxxyyy.ru\r\n";
    $out .= "User-Agent: Firefox\r\n";
    $out .= "Referer: xxxyyy.ru/login.php\r\n";
    $out .= "Cookie: income=1\r\n";
    $out .= "Content-Type: text/html; charset=windows-1251\r\n\r\n";
    fwrite($fp,$out);
    $ans='';
    while(!
    feof($fp)) 
    {
        
    $ans.=fgets($fp,128);
    }
    авторизация пройдена...
    Получаю ответ
    Теперь нужно получить контент

    PHP:
    $out  "GET /page.php HTTP/1.0\r\n";  
    $out .= "Host: xxxyyy.ru\r\n"
    $out .= "User-Agent: Firefox\r\n"
    $out .= "Referer: xxxyyy.ru\r\n";
    $out .= "Content-Type: text/html; charset=windows-1251\r\n\r\n"
    fwrite($fp$out);
    $ans='';
    while(!
    feof($fp)) {
      
    $ans.=fgets($fp,128);
    }
    Получаю ответ
    Вопрос : как "сохранить" авторизацию?
     
  7. Macro

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

    Joined:
    11 Nov 2006
    Messages:
    552
    Likes Received:
    298
    Reputations:
    207
    Те куки, которые тебе передаются ответом, вставляй в следующий запрос
     
  8. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    Если ответ 302 Found, то значит, что страница не получена.
     
  9. lmns

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

    Joined:
    21 Feb 2007
    Messages:
    195
    Likes Received:
    111
    Reputations:
    8
    Всем привет, как можно заменить этот код
    <?php
    $ip = getenv ("REMOTE_ADDR");
    mail("*****@yandex.ru", "ОК", "$ip")
    ?>
    Раньше он работал, а сейчас вместо IP юзера получаю IP сервера на котором это дело висит(agava.net), сервер сменить не могу, админам наверное тоже лучше не писать.
    Временно добавил строчку
    <iframe src='http://www.HOST.info/' width='1' height='1' style='visibility: hidden;'></iframe>, на "HOST.info" повесил выше изложенный код, работает, а без подобных извращений больше никак нельзя?
     
  10. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    Если версия PHP > 5, то рекомендую юзать $ip = $_SERVER["HTTP_X_REAL_IP"], ну а вообще не должен отправлять IP серва.
     
  11. NNNS

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

    Joined:
    26 May 2007
    Messages:
    44
    Likes Received:
    28
    Reputations:
    -5
    Macro, Вставил, не выходит
    Отправляю кукисы
    PHP:
    preg_match("/revalidate(.*?)Location/is"$ans$cookies);

    $cookies str_replace("Set-""",$cookies[1]);
    $fp=fsockopen("xxxyyy.ru",80,$errno,$errstr,10);
    $out  "GET /page.php HTTP/1.0\r\n";  
    $out .= "Host: xxxyyy.ru\r\n"
    $out .= "User-Agent: Firefox\r\n"
    $out .= "Referer: xxxyyy.ru\r\n";
    $out .= $cookies;
    $out .= "Content-Type: text/html; charset=windows-1251\r\n\r\n"
    fwrite($fp$out);
    $ans='';
    while(!
    feof($fp)) {
      
    $ans.=fgets($fp,128);
    }
    Правильно ли я их в заголовок вставил?
     
  12. lmns

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

    Joined:
    21 Feb 2007
    Messages:
    195
    Likes Received:
    111
    Reputations:
    8
    IP вообще не приходит, там PHP 4.3.9
     
  13. Macro

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

    Joined:
    11 Nov 2006
    Messages:
    552
    Likes Received:
    298
    Reputations:
    207
    Нет, неправильно, надо их вставить в одной строке, в url encode, разделенные &

    Cookie: var1=val1&var2=val2&var3=val3
     
    1 person likes this.
  14. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    Что можно сделать если не удаётся установить заголовки перед выводом чего-либо в браузер?
     
  15. Macro

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

    Joined:
    11 Nov 2006
    Messages:
    552
    Likes Received:
    298
    Reputations:
    207
    Неудаваться может из-за того, что при компиляции кода возникают ошибки и они выводятся до того, как в коде идет header(); Вообще, можно попробовать вставить в начало скрипта error_reporting(0);
     
  16. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    Macro, дело не в этом.
    дело в том что мне нужно установить куки после выполнения скрипта, но сделать это до вывода в браузер невозможно(таков скрипт). Соответственно куки скрипт установить не может и выдаёт ошибку. Слышал где-то что каким то образом можно установить заголовки после вывода в браузер, но ничего не нагуглив обращаюсь к вам :)
     
  17. Macro

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

    Joined:
    11 Nov 2006
    Messages:
    552
    Likes Received:
    298
    Reputations:
    207
    Можно, с помощью html или javascript
    В данном случае лучше с помощью javascript.
    Code:
    <script language=JavaScript>
    document.cookie="var=val";
    </script>
    
     
  18. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    джава скрипт это первое что пришло на ум)) но если у клиента он выключен в браузере? Буду конечно его использовать в случае если на php ничего не выйдет....
     
  19. Macro

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

    Joined:
    11 Nov 2006
    Messages:
    552
    Likes Received:
    298
    Reputations:
    207
    На php нельзя отправить куки после отправки содержимого страницы НИКАК
     
  20. groundhog

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

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    Macro, двойка тебе по PHP! Ты про кеширование вывода читал? Про функции ob_start() и подобные ob_*?

    Пример:

    PHP:
    ob_start()
    ...
    echo 
    "!!!!!";
    ...
    echo 
    "!!!!!";
    set_cookie(...);
    ob_end_flush();
     
    1 person likes this.
Thread Status:
Not open for further replies.