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

    inviare un POST con header()

    Ciao raga,
    come faccio a inviare un form POST, ma usando header.
    Mi spiego, ho questi valori:
    id = 903
    nome =marco
    devo inviarli POST a store.php ma senza usare un form HTML.
    Come faccio ?
    I'm the solution
    http://www.mishacattaneo.ch/
    I'm fifteen. Scusate le domande ripetitive.

  2. #2
    up
    I'm the solution
    http://www.mishacattaneo.ch/
    I'm fifteen. Scusate le domande ripetitive.

  3. #3
    up
    I'm the solution
    http://www.mishacattaneo.ch/
    I'm fifteen. Scusate le domande ripetitive.

  4. #4
    O ti studi come è fatto un post http e lo esegui via socket (cerca bene sul forum) oppure puoi utilizzare una delle classi su www.phpclasses.org, tipo
    http://www.phpclasses.org/browse/file/1933.html

    oppure

    http://www.phpclasses.org/browse/package/1119.html

    ma ne trovi a decine...

  5. #5

    Re: inviare un POST con header()

    Originariamente inviato da mcthepirate
    ...
    come faccio a inviare un form POST, ma usando header.
    ...
    cioè? :master:
    vuoi inviare questi dati sull'header di una POST HTTP?

  6. #6
    Ci sto lavorando anch'io, ma ancora non ottengo l'invio della richiesta HTTP.

    Codice PHP:
    <?php
    // Preparazione header HTTP con i dati POST:
    $host $_SERVER['SERVER_NAME'];
    $path "/dir/page.php";
    $data "product_id=5&img_display=yes";
    $data urlencode($data);

    // Invio header HTTP:
    header("POST $path HTTP/1.0\r\n");
    header("Host: $host\r\n");
    header("Content-Type: application/x-www-form-urlencoded\r\n");
    header("Content-Length: ".strlen($data)."\r\n");
    header("Connection: close\r\n\r\n");
    header($data);
    ?>
    Originariamente inviato da V1RuZ
    cioè?
    vuoi inviare questi dati sull'header di una POST HTTP?
    Ogni form con metodo POST accoda normalmente variabili e loro contenuto all'header HTTP, costruendolo esattamente (o quasi) come da esempio.
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    :master: e se invece di reinventare la ruota usaste le sessioni... se poi dall'altro lato proprio vi serve $_POST nulla vi vieta di fare

    $_POST['nomevariabile'] = $_SESSION['nomevariabile'];
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  8. #8
    Ho trovato una soluzione parziale.
    Il problema è che nel caso di un redirect HTTP 301, i dati passati via vettore $_POST vengono accodati con metodo GET; per evitare questo ci vuole un redirect HTTP 307, ovvero temporaneo anziché permanente:

    Codice PHP:
    <?php // Pagina slave di un form;
    header("HTTP/1.0 307 Temporary redirect");
    header("Location: www . sitedomain . ext/dir/file.php");
    ?>
    In questo caso la pagina file.php si troverà a disposizione il vettore $_POST bell'e pronto, uguale a quello che vede la pagina slave che effettua il redirect.

    La fregatura è che il browser vede questo reindirizzamento, e qui entrano in funzione le misure di sicurezza: Firefox ad esempio apre un confirm box in cui informa l'utente che la pagina a cui puntava il form sta indirizzando ad un'altra pagina, chiedendo conferma per inviare i dati del form anche alla nuova pagina.

    Le specifiche W3C sui protocolli infatti parlano chiaro:
    Originariamente scritto da w3c.org
    If the 307 status code is received in response to a request other than GET or HEAD, the user agent MUST NOT automatically redirect the request unless it can be confirmed by the user, since this might change the conditions under which the request was issued.
    Inoltre siccome basta poco per leggere gli header HTTP (e quindi per scoprire le pagine a cui le richieste HTTP vengono reindirizzate) gli accorgimenti per la sicurezza che mi interessavano sarebbero inutili (== far risiedere su un'altra locazione lo script che elabora le info postate senza usare un include() o require()).
    Questo comunque avverrebbe anche con la composizione "manuale" dell'header HTTP contenente dei postdata, quindi non ci sarebbe alcun vantaggio...
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

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.