ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #461  
Старый 11.09.2007, 20:50
Аватар для NOmeR1
NOmeR1
Познавший АНТИЧАТ
Регистрация: 02.06.2006
Сообщений: 1,188
Провел на форуме:
6023777

Репутация: 2642


Отправить сообщение для NOmeR1 с помощью ICQ
По умолчанию

Поправлюсь

Цитата:
Сообщение от GlOFF  
// Sorry я новичек в web-coding.
Какой это нафиг кодинг, это страданее хренью. В этой теме вопросы по темам - функции в PHP, синтаксис и другое, но никак не о "какой двиг лучше".
 
Ответить с цитированием

  #462  
Старый 11.09.2007, 21:11
Аватар для bul.666
bul.666
Banned
Регистрация: 06.06.2006
Сообщений: 944
Провел на форуме:
3986705

Репутация: 1403


Отправить сообщение для bul.666 с помощью ICQ
По умолчанию

Эта тема чисто о Php! че вы тут демагогию разводите...
 
Ответить с цитированием

  #463  
Старый 12.09.2007, 02:59
Аватар для life_is_shit
life_is_shit
Постоянный
Регистрация: 21.08.2007
Сообщений: 367
Провел на форуме:
3578960

Репутация: 468
Отправить сообщение для life_is_shit с помощью ICQ
По умолчанию

помогите плиз.

Задача такова.
Есть два скрипта на разных серваках.
С первого нужно передать некоторые параметры Post/get'ом (всеравно) во второй, второй должен получить их, отработать что-нибуть и вернуть результат в первый.

главное! работу второго я не должен видеть, я должен видеть только результат который он вернет в первый скрипт.
заранее спасиба.

з.ы. если несложно напишите элементарный пример.
 
Ответить с цитированием

  #464  
Старый 12.09.2007, 03:36
Аватар для Joker-jar
Joker-jar
Постоянный
Регистрация: 11.03.2007
Сообщений: 581
Провел на форуме:
4172659

Репутация: 646


Отправить сообщение для Joker-jar с помощью ICQ
По умолчанию

В скрипт_1 сделай include/require скрипт_2?пармаетры, а скрипт_2 пусть свой результат формирует обычным выводом (без <html>, <body> и т.д.)
 
Ответить с цитированием

  #465  
Старый 12.09.2007, 09:50
Аватар для life_is_shit
life_is_shit
Постоянный
Регистрация: 21.08.2007
Сообщений: 367
Провел на форуме:
3578960

Репутация: 468
Отправить сообщение для life_is_shit с помощью ICQ
По умолчанию

а без инклуда никак нельзя?
если сложно, то пусть второй просто выполнится, не возвращая никаких результатов.
 
Ответить с цитированием

  #466  
Старый 12.09.2007, 09:57
Аватар для n1†R0x
n1†R0x
Постоянный
Регистрация: 20.01.2007
Сообщений: 787
Провел на форуме:
2924346

Репутация: 1719


Отправить сообщение для n1†R0x с помощью ICQ
По умолчанию

PHP код:
<?php
//script#1
$data file_get_contents("http://localhost/script2.php?param1=yes&param2=999");
//обработка?
print $data;
?>
либо напрямую через сокеты
 
Ответить с цитированием

  #467  
Старый 12.09.2007, 10:11
Аватар для life_is_shit
life_is_shit
Постоянный
Регистрация: 21.08.2007
Сообщений: 367
Провел на форуме:
3578960

Репутация: 468
Отправить сообщение для life_is_shit с помощью ICQ
По умолчанию

через file_get_contents тоже не годицца, так как параматры приходица передавать в таком виде:
?to=bill%40melkosoft.com&from=hax0r%40evil.com&sub j=bI+bI+bI

Напиши плз пример для сокетов.
 
Ответить с цитированием

  #468  
Старый 12.09.2007, 12:04
Аватар для ant0ha
ant0ha
Участник форума
Регистрация: 22.05.2007
Сообщений: 144
Провел на форуме:
306311

Репутация: 119
По умолчанию

Если curl поддерживается тогда в твоем случае лучше делать через него
PHP код:
<?php
  $ch 
curl_init("http://www.site.ru/script.php");
  
  
$result=curl_exec($ch);
  
  
curl_close($ch);
  
  echo 
$result;
?>
в переменной $result будет ответ сервера.
 
Ответить с цитированием

  #469  
Старый 12.09.2007, 13:31
Аватар для groundhog
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


Отправить сообщение для groundhog с помощью ICQ
По умолчанию

ant0ha, вот фигли он будет в переменной? Про параметр CURLOPT_RETURNTRANSFER слышали? Вот только после его инициализации будет возвращён результат в переменную...

Жись_Гавно, а ты можешь воспользоваться функцией, которая реализует транспорт через либу CURL (писал для себя, поддерживается множество методов). Вот исходник (форматирование поехало, но всё равно разберёшься):

PHP код:
define("HTTP_GET",     0x0001);
define("HTTP_POST",     0x0002);
define("HTTP_HEAD",     0x0003);
define("HTTP_PUT",      0x0004);
define("HTTP_DELETE",   0x0006);
define("HTTP_TRACE",    0x0007);
define("HTTP_OPTIONS",  0x0008);
define("HTTP_PROPFIND"0x0009);

define("HTTP_10",       0x0001);
define("HTTP_11",       0x0002);


function 
httpRequest (
$requestMethod,   // HTTP метода - одна из определённых выше констант
$requestVersion,   // HTTP версия - одна из определённых выше констант
$requestUrl,   // Урла запроса
$requestHeaders,   // Хидеры запроса
$requestBody,   // Тело запроса
$requestTimeout,   // Таймаут-запроса
$requestProxy,   // Прокси для соединения
&$responseCode null,   // Переменная, куда будет возвращён HTTP код ответа
&$responseHeaders null,   // Переменная куда будет возвращены хидеры ответа
&$responseBody null,   // Переменная куда будет возвращено тело запроса
&$errCode null,   // Номер ошибки CURL
&$errString null)   // Описание ошибки CURL
{
        if (!
is_integer($requestTimeout))
            return (
$responseCode $responseHeaders $responseContent false);

        
$urlData parse_url($requestUrl);

        if (!isset(
$urlData["host"]))
            return (
$responseCode $responseHeaders $responseContent false);

        if (!isset(
$urlData["scheme"])) $urlData["scheme"] = "http";
        if (!isset(
$urlData["path"])) $urlData["path"] = "/";
        if (!isset(
$urlData["port"]) && $urlData["scheme"] == "http"$urlData["port"] = 80;
        if (!isset(
$urlData["port"]) && $urlData["scheme"] == "https"$urlData["port"] = 443;

        switch (
$requestMethod) {
            case 
HTTP_GET :
                
$httpMethod "GET";
            break;

            case 
HTTP_POST :
                
$httpMethod "POST";
            break;

            case 
HTTP_HEAD :
                
$httpMethod "HEAD";
            break;

            case 
HTTP_PUT :
                
$httpMethod "PUT";
            break;

            case 
HTTP_DELETE :
                
$httpMethod "DELETE";
            break;

            case 
HTTP_TRACE :
                
$httpMethod "TRACE";
            break;

            case 
HTTP_OPTIONS :
                
$httpMethod "OPTIONS";
            break;

            case 
HTTP_PROPFIND :
                
$httpMethod "PROPFIND";
            break;

            default :
                return (
$responseCode $responseHeaders $responseContent false);
            break;
        }

        switch (
$requestVersion) {
            case 
HTTP_10 :
                
$httpVersion "1.0";
            break;

            case 
HTTP_11 :
                
$httpVersion "1.1";
            break;

            default :
                return (
$responseCode $responseHeaders $responseContent false);
            break;
        }

        if (isset(
$urlData["query"]))
            
$customRequest  sprintf("%s %s?%s HTTP/%s\r\n"$httpMethod$urlData["path"], $urlData["query"], $httpVersion);
        else
            
$customRequest  sprintf("%s %s HTTP/%s\r\n"$httpMethod$urlData["path"], $httpVersion);

        
$customRequest .= sprintf("Host: %s\r\n"$urlData["host"]);

        foreach (
$requestHeaders as $header)
            
$customRequest .= sprintf("%s\r\n"$header);

        if (
$requestMethod == HTTP_POST || $requestMethod == HTTP_PUT)
            if (
strlen($requestBody) > 0$customRequest .= sprintf("Content-Length: %s\r\n"strlen($requestBody));
            else return (
$responseCode $responseHeaders $responseContent false);

        if (isset(
$urlData["user"]) && isset($urlData["pass"])) {
            
$authValue sprintf("%s:%s"$urlData["user"], $urlData["pass"]);
            
$customRequest .= sprintf("Authorization: Basic %s\r\n"base64_encode($authValue));
        }

        
$customRequest .= sprintf("Connection: close\r\n"$urlData["host"]);
        
$customRequest .= "\r\n";

        if (
$requestMethod == HTTP_POST || $requestMethod == HTTP_PUT)
            if (
strlen($requestBody) > 0$customRequest .= sprintf("%s"$requestBody);
            else return (
$responseCode $responseHeaders $responseContent false);

        
$curlHandler curl_init();

        
$curlOptions = array (
            
CURLOPT_URL                    =>    sprintf("%s://%s"$urlData["scheme"], $urlData["host"]),
            
CURLOPT_PORT                =>    $urlData["port"],
            
CURLOPT_TIMEOUT            =>    $requestTimeout,
            
CURLOPT_CUSTOMREQUEST    => $customRequest,
            
CURLOPT_FOLLOWLOCATION    => true,
            
CURLOPT_HEADER                => true,
            
CURLOPT_RETURNTRANSFER    => true,
            
CURLOPT_FAILONERROR        => false,
            
CURLOPT_VERBOSE            => false,
            
CURLOPT_NOPROGRESS        => true
        
);

        if (
$urlData["scheme"] == "https") {
            
$curlOptions[CURLOPT_SSL_VERIFYPEER] = false;
            
$curlOptions[CURLOPT_SSL_VERIFYHOST] = false;
        }

        if (
$requestMethod == HTTP_HEAD || $requestMethod == HTTP_OPTIONS || $requestMethod == HTTP_DELETE)
            
$curlOptions[CURLOPT_NOBODY] = true;
        else
            
$curlOptions[CURLOPT_NOBODY] = false;

        if (!
is_null($requestProxy)) {
            
$proxyData parse_url("http://" $requestProxy);

            if (isset(
$proxyData["user"]) && isset($proxyData["pass"]))
                
$curlOptions[CURLOPT_PROXYUSERPWD]    = sprintf("%s:%s"$proxyData["user"], $proxyData["pass"]);

            if (!isset(
$proxyData["host"]) && !isset($proxyData["port"]))
                return (
$responseCode $responseHeaders $responseContent false);

            
$curlOptions[CURLOPT_PROXY]                = sprintf("%s:%d"$proxyData["host"], $proxyData["port"]);
            
$curlOptions[CURLOPT_HTTPPROXYTUNNEL]    = sprintf("%s:%d"$proxyData["host"], $proxyData["port"]);
        }

        
$result curl_setopt_array($curlHandler$curlOptions);
        if (!
$result) return ($responseCode $responseHeaders $responseContent false);

        
$response curl_exec($curlHandler);

        
$errCode        curl_errno($curlHandler);
        
$errString    sprintf("Error: %s"curl_error($curlHandler));

        if (
curl_errno($curlHandler) != CURLE_OK) {
            
$responseCode        false;
            
$responseHeaders    false;
            
$responseContent    false;

            
curl_close($curlHandler);

            return 
false;
        }

        
curl_close($curlHandler);

        list(
$headers$responseBody) = preg_split("/\r\n\r\n/"$response2);

        
$headers                        preg_split("/\r\n/"$headers);
        list(,
$responseCode,)    = sscanf(array_shift($headers), "%s %d %s");

        
$responseHeaders    $headers;

        return 
true;
    } 
Ну или если ты любитель сокет, то вот пример, только для метода GET, но если ты знаешь принципы и спецификацию протокола HTTP, то реализовать другой метод тебе труда не составит:

PHP код:
        function httpGetRequest ($remoteUrl, &$respCode, &$respBody) {
            
$urlData parse_url($remoteUrl);

            if (!isset(
$urlData["host"])) return false;
            if (!isset(
$urlData["port"])) $urlData["port"] = 80;
            if (!isset(
$urlData["path"])) $urlData["path"] = "/";

            
$socket fsockopen($urlData["host"], $urlData["port"], $errno$errstr60);
            if (!
$socket) return false;

            
$resource $urlData["path"];
            if (isset(
$urlData["query"])) $resource .= "?{$urlData["query"]}";

            
$sendData  "GET {$resource} HTTP/1.1\r\n";
            
$sendData .= "Host: {$urlData["host"]}\r\n";
            
$sendData .= "User-Agent: DaMaGeLaB Crawler\r\n";
            
$sendData .= "Accept: */*\r\n";
            
$sendData .= "Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0\r\n";
            
$sendData .= "Pragma: no-cache";
            
$sendData .= "Connection: Close\r\n\r\n";

            
$ret fwrite($socket$sendData);
            if (!
$ret) return false;

            
$buffer "";
            while (!
feof($socket)) {
                
$buffer .= fgets($socket8192);
            }

            
fclose($socket);

            list(
$headers$content) = preg_split("/\r\n\r\n/"$buffer2);

            if (
strlen($content) <= || strlen($headers) <= 0) return false;

            
$respCode intval(substr($headers93));
            
$respBody $content;

            return 
true;
        } 
 
Ответить с цитированием

  #470  
Старый 12.09.2007, 13:43
Аватар для ant0ha
ant0ha
Участник форума
Регистрация: 22.05.2007
Сообщений: 144
Провел на форуме:
306311

Репутация: 119
По умолчанию

Цитата:
Сообщение от groundhog  
ant0ha, вот фигли он будет в переменной? Про параметр CURLOPT_RETURNTRANSFER слышали? Вот только после его инициализации будет возвращён результат в переменную...
Да, поторопился с ответом, вот как нужно было:

PHP код:
<?php
  $ch 
curl_init("http://www.site.ru/script.php");
  
  
curl_setopt($chCURLOPT_RETURNTRANSFER,1);

  
$result=curl_exec($ch);
  
  
curl_close($ch);
  
  echo 
$result;
?>
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[c/c++] Новичкам: задаем вопросы _Great_ С/С++, C#, Delphi, .NET, Asm 5420 17.06.2010 13:33
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Форумы 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ