Передача параметров другому скрипту при загрузке страницы

Тема в разделе "PHP", создана пользователем root230101, 4 янв 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. root230101

    root230101

    Регистр.:
    19 сен 2007
    Сообщения:
    304
    Симпатии:
    21
    Как сделать передачу данных (referer, user agent и т.п.) второму скрипту из первого при загрузке страницы (при выполнении первого скрипта), при условии что скрипты находятся на разных серверах?
    Возможно ли это сделать на PHP?
     
  2. $Ealex

    $Ealex Создатель

    Регистр.:
    29 июн 2008
    Сообщения:
    37
    Симпатии:
    2
    что мешает передать все это с POST запросом ?
    а лучше зашифруй и передай
     
  3. elcaste

    elcaste

    Регистр.:
    30 ноя 2007
    Сообщения:
    322
    Симпатии:
    175
    Все, что нужно передать, ложишь в массив, сериализуешь(serialize()) и передаешь POST запросом, или тем же POST запросом, но отдельными переменными типа var1=value&var2=value2... и т.д.

    PHP:
    $ch curl_init($url);
    curl_setopt($chCURLOPT_POST1);
    curl_setopt($chCURLOPT_POSTFIELDS$postdata);
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
    $response curl_exec($ch);
     
    root230101 нравится это.
  4. root230101

    root230101

    Регистр.:
    19 сен 2007
    Сообщения:
    304
    Симпатии:
    21
    Без курла надо бы... Видимо тогда только через GET запрос, только как лучше передать значения, содержащие пробел и другие спец символы?
     
  5. elcaste

    elcaste

    Регистр.:
    30 ноя 2007
    Сообщения:
    322
    Симпатии:
    175
    Такие значения можно передать предварительно закодировав используя urlencode();
    А вообще, можно POST прямо сокетами отправить:
    PHP:
    $PostUrl="http://somedomain.com/blabla.asp";
    $PostData="var1=value";
    $OkString=""

    $Url=substr($PostUrl,strpos($PostUrl,"//")+2); 
    $Url=substr($Url,strpos($Url,"/")); 

    $HostName=substr($PostUrl,strpos($PostUrl,"//")+2); 
    $HostName=substr($HostName,0,strpos($HostName,"/"));

    if(
    strpos($HostName,":")){ 
        
    $HostPort=substr($HostName,strpos($HostName,":")+1); 
        if(!
    is_numeric($HostPort)){ 
            
    $HostPort=80
            } 
        } 
    else{ 
        
    $HostPort=80
        } 

    $fp=fsockopen($HostName$HostPort$errno$errstr30); 
    if (!
    $fp){ 
        echo 
    "$errstr ($errno)<br />\n"
        } 
    else { 
        
    $out  "POST $Url HTTP/1.1\r\n"
        
    $out .= "Host: $HostName\r\n"
        
    $out .= "Content-type: application/x-www-form-urlencoded\r\n"
        
    $out .= "Accept-Language: ru\r\n"
        
    $out .= "Connection: Keep-Alive\r\n"
        
    $out .= "Cache-Control: no-cache\r\n";
        
    $out .= "Content-length: ".strlen($PostData)."\r\n\r\n".$PostData

        
    stream_set_timeout($fp30); 
        
    fputs($fp$out);
        
    $ech fgets($fp);
        
    fclose($fp);
        }
     
    root230101 нравится это.
Статус темы:
Закрыта.