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

    [Post Method] come inviare in modo post ad un server remoto delle variabili

    Sono un ingnorantone di php.
    Come posso inviare ad un server diverso da quello in cui risiede la pagina in esecuzione delle variabili, ad esempio una user_name e una pass_word, senza usare un form?

    Altro problema: come posso recuperare quello che il server risponde?

    Nella fattispecie devo fare il log in in una casella di posta elettronica e recuperare la stringa di testo che mi indica la session perchè mi servirà per le operazioni con le singole email visualizzate.

    Thx

  2. #2
    In pratica ti serve un webservice.

    Prova a cercare sul forum, eventualmente vai nel forum di che parle di .NET.

    Capisci come funziona e poi rielabora in PHP...
    [ DarCas The Architect ]
    [ The DarCas Of Blog ]
    Chuck Norris riesce a trovare un pagliaio dentro a un ago
    :maLOL:

  3. #3
    prova a cercare su php.net esempi sulle funzioni socket

  4. #4
    per favore NIENTE PVT TECNICI da sconosciuti

  5. #5
    In realtà non sapevo nemmeno cosa cercare: ho cercato su php.net "post method" ma non avrei mai pensatato di interpellare "funzioni socket" o "webservice".

    Ora grazie a voi so cosa sto cercando!

    tnx

  6. #6
    Sono stato indirizzato sulla retta via... però sono fermo ad un errore che mi viene generato quando tento di creare uno Socket Stream con la funzione:
    socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

    Mi dice che la funzione non è definita: da cosa dipende?


    codice:
    <?php
      // Il file da scaricare
      $file = "?username=postmaster&domain=skyvolley.net&password=******";
      
      // Impostiamo dove si deve connettere
      $host = "http://mailrr.aruba.it/cgi-bin/qmailadmin/";
      
      // La porta a cui connettersi
      $port = 80;
      
      // Creiamo la socket (Una socket basata su IPv4, Socket Stream [ovvero un sistema di comunicazione con il controllo dell'errore] ed infine SOL_TCP gli specifica di usare il layer di comunicazione TCP
      $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
      
      // Dice a php di connettersi a HOST:PORT usando la socket creata in precedenza
      socket_connect($socket, $host, $port);
      
      // Prepariamo il contenuto da inviare
      $header_send = '';
      $header_send .= "POST /{$file} HTTP/1.0\n";
      $header_send .= "HOST: {$host}:{$port}\n";
      $header_send .= "\n";
      
      // Inviamo i dati
      socket_write($socket, $header_send);
      
      // Inzializziamo la variabile che conterra' i dati del buffer
      $buffer = '';
      
      // Legge i dati dalla sockeet a blocchi di 512 byte mettendoli dentro la variabile $tmpdata. Se socket_read restituisce FALSE, vuol dire che la comunciazione si è chiusa
      while (($tmpdata = socket_read($socket, 512)) != FALSE) {
        
        // Aggiungo i dati al buffer
        $buffer .= $tmpdata;
      }
      
      // Il protocollo HTTP 1.0 è composto da due sezioni separate da un duplice invio. La prima sezione sono le informazioni sul file ricevuto, la seconda è il contenuto
      $tmp = explode("\r\n\r\n", $buffer);
      
      // Estraggo gli headers
      $headers = array_shift($tmp);
      
      // Il contenuto poteva contenere a sua volta dei duplici invii, quindi per evitare di perdere dati o di averli malformati reimplodiamo l'array da cui abbiamo tolto gli headers
      $content = implode("\r\n\r\n", $tmp);
      
    echo($content);
      
    ?>

  7. #7
    Ti manca l'estensione per i socket, per quel che devi fare tu non serve, basta fsockopen: segui gli esempi dell'articolo su freephp
    per favore NIENTE PVT TECNICI da sconosciuti

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.