Šta je novo?

POST iz PHP

jddipqd

Čuven
Učlanjen(a)
17.10.2000
Poruke
2,605
Poena
725
Klijent popunjava formu, postuje na moju php stranicu, skripta uradi nešto sa time, postuje na neku sasvim treću stranicu (nad kojom ja nemam nikakvu kontrolu). Za klijenta je potrebno da izgleda kao da je on sam postovao na tu treću stranicu, odnosno da se korak preko moje stranice bude potpuno transparentan.

Prvo sam se igrao sa fsockopen, a posle sam pronašao Snoopy-ja koji već ima gotove metode za postovanje, ali mi je ostao deo sa transparentnim vraćanjem rezultata klijentu.
 
A gde je ovde pitanje?
 
Za GET varijable je lako. Učitaš ih, obradiš ih i proslediš preko komande koja liči na ovu:

PHP:
header("Location: ta_i_ta_stranica.php?varijabla1=$varijabla1&varijabla2=$varijabla2");

Za SESIJU i COOKIJE je isto lako - učitaš varijable, obradiš ih, snimiš i samo pređeš na tu drugu stranicu sa sličnom komandom:

PHP:
header("Location: ta_i_ta_stranica.php");

Za POST varijable je već malo veće zezanje. Sad sam našao link za POST - http://www.faqts.com/knowledge_base/view.phtml/aid/12039/fid/51 Pogledaj tu.

PHP:
Here's a slightly modified version of sendtohost():

/* sendToHost
 * ~~~~~~~~~~
 * Params:
 *   $host      - Just the hostname.  No http:// or 
                  /path/to/file.html portions
 *   $method    - get or post, case-insensitive
 *   $path      - The /path/to/file.html part
 *   $data      - The query string, without initial question mark
 *   $useragent - If true, 'MSIE' will be sent as 
                  the User-Agent (optional)
 *
 * Examples:
 *   sendToHost('www.google.com','get','/search','q=php_imlib');
 *   sendToHost('www.example.com','post','/some_script.cgi',
 *              'param=First+Param&second=Second+param');
 */

function sendToHost($host,$method,$path,$data,$useragent=0)
{
    // Supply a default method of GET if the one passed was empty
    if (empty($method)) {
        $method = 'GET';
    }
    $method = strtoupper($method);
    $fp = fsockopen($host, 80);
    if ($method == 'GET') {
        $path .= '?' . $data;
    }
    fputs($fp, "$method $path HTTP/1.1\r\n");
    fputs($fp, "Host: $host\r\n");
    fputs($fp,"Content-type: application/x-www-form- urlencoded\r\n");
    fputs($fp, "Content-length: " . strlen($data) . "\r\n");
    if ($useragent) {
        fputs($fp, "User-Agent: MSIE\r\n");
    }
    fputs($fp, "Connection: close\r\n\r\n");
    if ($method == 'POST') {
        fputs($fp, $data);
    }

    while (!feof($fp)) {
        $buf .= fgets($fp,128);
    }
    fclose($fp);
    return $buf;
}
 
Poslednja izmena:
Sta se desava prilikom vracanja rezultata sa sesijom/kukijem? I sta je konkretno bitno u tom rezultatu? Neke varijable i/ili generisana stranica?
Ajde to malo detaljnije i sto rece Crach ne bi bilo lose da se vidi kod 😉
 
Nazad
Vrh Dno