Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Reperire http body e headers

    Ciao a tutti, sono nuovo nuovo di php e sto incontrando i primi problemi tra cui questo non indifferente: Ho un file a.php che invia una richiesta http tramite la classe HTTP_Request al file b.php.
    Fino qui ci sono riuscito, ma dal file b.php non riesco a reperire nč body nč headers della richiesta.

    Dove sbaglio? E' l'approccio giusto?

    Grazie a tutti!

  2. #2
    La maggior parte degli header sono accessibili tramite $_SERVER.
    Il body lo puoi ottenere tramite questo codice:

    Codice PHP:
    <?php $body file_get_contents('php://input'); ?>
    Oppure, se abilitato, tramite $HTTP_RAW_POST_DATA (vedi http://www.php.net/manual/en/ini.cor...-raw-post-data).

    Sotto Apache potresti usare anche anche http://www.php.net/apache_request_headers

  3. #3
    Originariamente inviato da filippo.toso
    La maggior parte degli header sono accessibili tramite $_SERVER.
    Il body lo puoi ottenere tramite questo codice:

    Codice PHP:
    <?php $body file_get_contents('php://input'); ?>
    Avevo giā provato questa funzione ma quando vado a stampare $body mi accoda "=!" cioč se mando "ciao", viene stampato "ciao=1"... perchč c'č questo "=1" finale? come lo elimino? č normale? cosa significa?

    Grazie!

  4. #4
    Posta il codice che utilizzi per eseguire la richiesta HTTP e quello per stampare $body.

  5. #5
    Questo spedisce la stringa "ciao"
    Codice PHP:
     <?php 
    require_once 'HTTP/Request.php'
    $url "recv.php5"
    $data "ciao"
    $req =& new HTTP_Request($url);  
    //$req->addHeader("Content-Type", "text"); 
    //$req->addHeader("Content-Length", strlen($data)); 
    $req->setMethod(HTTP_REQUEST_METHOD_POST); 
    $req->addPostData($data,true);   
    if (!
    PEAR::isError($req->sendRequest())) 

         
    $response1 $req->getResponseBody(); 

    else 
    {
          
    $response1 "pippo"

    echo 
    $response1;  
    ?>
    Questo riceve e stampa "ciao=1"
    Codice PHP:
    <?php
    require_once 'HTTP/Request.php';

    $body file_get_contents("php://input");

    print 
    "$body"// o echo danno lo stesso output
    ?>

  6. #6
    Guarda la documentazione del metodo HTTP_Request::addPostData().

  7. #7
    Ho risolto usando la setBody($data) al posto della addPostData($data, true) che, da quel che mi sembra di aver capito associa al campo $data il valore 1...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.