Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di AvOJaromil
    Registrato dal
    Feb 2006
    residenza
    laddove si stagiona formaggio dentro a dei grossi buchi di tufo
    Messaggi
    549

    un po di confusione sull'invio di dati con metodo post senza form

    premetto che ho letto l'articolo presente su freephp.html.
    dunque la procedura descritta dalla guida funziona solo che non capisco se è possibile adattarla ad una mia esigenza particolare.

    grazie alla guida sono riuscito ad ottenere questo:
    dalla pagina A.php apro un socket verso il server al quale farò una richiesta di tipo POST per la risorsa B.php. la pagina B.php contiene un echo $_POST["user"] e quindi restituisce un valore spedito dalla pagina A.php. la pagina A.php riceve e stampa la risposta dal server con l'intestazione e la pagina B.php. il mio problema è che il browser continua a stare sulla pagina A.php quando invece dovrebbe passare alla pagina B.php e poi da qui ad una pagina C.php tramite header("Location: $URLReindirizzamento");

    questi sono i codici,
    A.php
    Codice PHP:
    <?php


    $post_vars
    =array('user'=>'Alì Baba e i 40 ladroni','pass'=>'apriti sesamo') ;

    $req_body="" ;

    foreach(
    $post_vars as $key=>$val)
    {

        
    $req_body.="&".$key."=".rawurlencode(htmlentities($val)) ;



    $host="127.0.0.1:8080" ;
    $target="/B.php";
    $port=80 ;
    $timeout=60;
    $protocol="HTTP/1.0" ;

    $br="\r\n" ;

    $sk=fsockopen($host,$port,$errnum,$errstr,$timeout) ;

    if(!
    is_resource($sk)){

    exit(
    "Connessione fallita: ".$errnum." ".$errstr) ;

    }

    else{
        
        
    $headers="POST ".$target." ".$protocol.$br 
        
    $headers.="Accept: image/gif, image/x-xbitmap, image/jpeg".$br ;
        
    $headers.="Accept-Language: dialetto veneto".$br ;
        
    $headers.="Host: ".$host.$br ;
        
    $headers.="Connection: Keep-Alive".$br ;
        
    $headers.="User-Agent: Socket-PHP-browser 1.0".$br;
        
    $headers.="Referer: bwbwabwa.it".$br ;
        
    $headers.="X-INVENTATO: Ciao a tutti".$br;
        
    $headers.="Content-Type: application/x-www-form-urlencoded".$br ;
        
    $headers.="Content-Length: ".strlen($req_body).$br.$br ;  
        
        
    fputs($sk,$headers.$req_body) ; 
            
        
    $dati="" ;
        
        while (!
    feof($sk)) 
        {
            
    $dati.= fgets ($sk,2048);
        }
        
        echo 
    $dati;

    }

    fclose($sk) ;



    ?>
    questa B.php
    Codice PHP:
    <?php

    echo $_POST["user"];

    ?>
    provo a ripetere quello di cui ho bisogno più schematicamente:

    -dal browser carico A.php,
    -questa pagina automaticamente spedisce tramite POST dei dati a B.php
    -il browser viene automaticamente reindirizzato a B.php
    -la pagina B.php preleva i dati presenti nel POST spedito da A.php tramite $_POST[""] e
    costruisce una $URL alla quale il browser verra reindirizzato tramite header("Location:$URL")

    spero di essermi spiegato.

    grazie
    "homer sei tonto come un mulo e due volte più brutto. se uno sconosciuto ti offre un passaggio tu devi accettarlo..."

    www.flickr.com/photos/asciella/
    www.lastfm.it/user/qvaioe/

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    tieni presente che se apri una socket e interroghi una pagina dal server, l'echo e gli eventuali header non verranno rispediti al browser, ma alla pagina che ha fatto la richiesta.


    Ciao

  3. #3
    Utente di HTML.it L'avatar di AvOJaromil
    Registrato dal
    Feb 2006
    residenza
    laddove si stagiona formaggio dentro a dei grossi buchi di tufo
    Messaggi
    549
    mmmm.....non ti ho capito.
    nel mio caso, aperto il socket e rischiesta la pagina B.php, il serverweb elabora il codice php di B.php e restituisce il risultato. quindi quando la comunicazione tra A.php e server è conclusa A.php stampa tutto ciò che il server restituisce, compreso il risultato dell' echo.
    infatti concluso il caricamento il browser visualizza gli header e come body (seguendo l'esempio che ho postato) "Alì Baba e i 40 ladroni" cioè il risultato del echo $_POST["user"]

    io vorrei lo stesso effetto del <form action="B.php"> e cioè che oltre spedire i dati presenti nel form, il browser carica la pagina B.php

    gianiaz, magari mi hai risposto già, ma non sono riuscito a seguirti.
    "homer sei tonto come un mulo e due volte più brutto. se uno sconosciuto ti offre un passaggio tu devi accettarlo..."

    www.flickr.com/photos/asciella/
    www.lastfm.it/user/qvaioe/

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.