Visualizzazione risultati 1 fino 10 di 10

Discussione: Inviare dati POST senza form

  1. #1
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,752

    Predefinito Inviare dati POST senza form

    Salve.

    E' possibile inviare dati di tipo POST senza usare un form? (oppure utilizzando un form, ma inviarlo in modo "automatico").

    Per il GET si può fare così:

    Codice:
    <a href='pagina.php?var=valore&var1=valore1...
    Ma con POST come si fa?? {se si può }

    Grazie,
    Ciao!

  2. #2
    Guest

    Predefinito

    io di solito metto un input invisibile (style="display:none")
    ma non so se è tanto giusto come metodo

  3. #3
    Guest

    Predefinito

    Ajax?

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,752

    Unhappy

    Io solitamente metto un input=hidden, ma poi bisogna cliccare sopra il pulsante.
    Ajax non lo conosco (mai messo le mani: non so nemmeno se lavora in locale o sul server ).

    Sarebbe perfetto PHP, perché mi serve in una di quelle pagine di solo php (e che l'utente non vede nemmeno ). Se metto ad esempio del javascript, l'utente vedrebbe la pagina "bianca", io invece vorrei fare una pagina di "transizione".

    Non c'é un modo in PHP ???

    Grazie,

    Ciao!

  5. #5
    Guest

    Predefinito

    Php lavora lato server, l'utente ovviamente sta dall'altro lato.
    Il codice php, dopo la sua esecuzione produce un output che viene inviata al client.

    Prova a utilizzare Ajax... dai uno sguardo a http://antirez.com/articoli/spaghettiajax.html

    In ogni caso, penso sia obbligatorio utilizzare javascript.
    Ciao

  6. #6
    Guest

    Predefinito

    Puoi fare qualcosa come:
    Codice HTML:
    <html>
    	<head>
    		<title>Prova</title>
    	</head>
    	<body onload="document.forms[0].submit();">
    		<form action="" method="post">
    			<input type="hidden" name="dato1" value="valore1">
    		</form>
    	</body>
    </html>
    E appena la pagina si carica dovrebbe inviare la richiesta

  7. #7
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,752

    Predefinito

    @giuseppeiemma: bella quella pagina; le prime cose le sapevo già (quelle del document.getElementById()). Non sapevo fosse AJAX.

    Mentre la seconda cosa non riesco a capirla
    Però quella cosa dele funzioni da passare ad altre funzioni è utile...

    Comunque adesso proverò quello di gabryacker

    p.s. comunque l'AJAX lo voglio imparare perché è utilissimo

    Grazie a tutti.

    Ciao!

    EDIT:

    Citazione Originalmente inviato da giuseppeiemma
    Php lavora lato server, l'utente ovviamente sta dall'altro lato.
    Lo so, ma io devo (dovrei) inviare dati da PHP a PHP e quindi da lato server a lato server, senza intervenire lato client. Ecco perché volevo (se esisteva) una soluzione PHP

    Ciao!
    Ultima modifica di alemoppo : 29-06-2009 alle ore 15.28.52

  8. #8
    Guest

    Predefinito

    Puoi farlo inviando direttamente gli header http all'altra pagina

    pagina.php
    Codice PHP:
    <?php
    $uri
    = '/altra_pagina.php';
    $sito = '127.0.0.1';
    $query = 'var1=asd&var2=lol'; //valori post

    if (!($sock = fsockopen($sito,80))) die ("Errore connessione\n");

    fputs ($sock,
    "POST $uri HTTP/1.1\r\n".
    "Host: $sito\r\n".
    "Content-Type: application/x-www-form-urlencoded\r\n".
    "Content-Length: ".strlen($query)."\r\n".
    "Connection: close\r\n\r\n".
    $query."\r\n");

    $out = "";
    while (!
    feof($sock))
    $out.=fgets($sock);

    fclose($sock);


    $o = explode("\r\n\r\n", $out);
    echo
    $o[1];
    ?>
    altra_pagina.php
    Codice PHP:
    <?php

    echo $_POST['var1']. " - ".$_POST['var2'];

    ?>

  9. #9
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,752

    Predefinito

    Grazie, stoner!

    Volevo farti qualche domanda:

    $sito contiene l'IP del sito, no?? Ma su AV non erano dinamici ??

    l'ultimo echo(), perché scrivi solo il secondo elemento??

    Perché lo scrivi?? Non dovrebbe essere ad esempio:

    Codice PHP:
    header("location: ".$o[1]);
    ??.

    Anzi: mi potresti spiegare brevemente cosa fa questo script?? (passo - passo ) perché ho cercato, ma

    {non so nemmeno cosa sia un sock}

    Grazie,

    Ciao!

  10. #10
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Grazie, stoner!

    Volevo farti qualche domanda:

    $sito contiene l'IP del sito, no?? Ma su AV non erano dinamici ??
    No. Puoi mettere anche l'url, http://sito.altervista.org
    l'ultimo echo(), perché scrivi solo il secondo elemento??

    Perché lo scrivi?? Non dovrebbe essere ad esempio:

    Codice PHP:
    header("location: ".$o[1]);
    ??.

    Anzi: mi potresti spiegare brevemente cosa fa questo script?? (passo - passo ) perché ho cercato, ma

    {non so nemmeno cosa sia un sock}

    Grazie,

    Ciao!
    No. Stampo il secondo elemento perchè prima ci sono gli header http. Gli header http finiscono con un doppio \r\n, quindi splitto secondo quel pattern e stampo solo quello che mi interessa. (per farti un'idea stampa $out invece di $o[1] e vedi cosa ti da).
    Per quando riguarda l'header, no, non è così, quello è l'output generato dalla pagina altra_pagina.php che viene letto direttamente dalla prima pagina, non è un url.

    Lo script praticamente genera header http e lo manda al sito, il sito da una risposta in base all'header inviato e viene letto dalla pagina che ne stampa quindi il contenuto.

    Se usi firefox scaricati Live HTTP Headers, ti fa vedere come avviene la comunicazione tramite il protocollo http. Leggi anche qui.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •