Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    Dati post da php ad asp

    Salve a tutti, ho visto che l'argomento è già stato trattato ma non riesco comunque a risolvere.
    Ho una pagina in php che deve mandare tramite un socket dei dati in metodo post ad una pagina asp.

    codice:
    $cont="";
    foreach ($_POST as $k=>$a) {$cont.=$k."=".$a."&";};
    $fp = fsockopen("www.studiolegalemuzzini.it", 80);
     
     
      $header_send = "POST http://www.studiolegalemuzzini.it/data.asp HTTP/1.1\r\n";
      $header_send .= "Host: studiolegalemuzzini.it:80\r\n";
      $header_send .= "Content-Type: application/x-www-form-urlencoded\r\n"; 
      $header_send .= "Content-Length: " . strlen($cont) . "\r\n\r\n";
      echo $header_send . $cont;
      fputs($fp, $header_send . $cont);
      echo fgets($fp);

    solo che il server mi restituisce

    codice:
    HTTP/1.1 500 Internal Server Error
    avrò fatto qualche errore banale, solo che è la prima volta che tento una cosa del genere. dove ho sbagliato?

  2. #2
    Prova così:

    Codice PHP:
    $cont="";
    foreach (
    $_POST as $k=>$a) {$cont.=$k."=".$a."&";};

    $fp fsockopen(gethostbyname("www.studiolegalemuzzini.it"), 80);

    $header_send "POST /data.asp HTTP/1.1\r\n";
    $header_send .= "Host: [url]www.studiolegalemuzzini.it\r\n[/url]";
    $header_send .= "Content-Type: application/x-www-form-urlencoded\r\n"
    $header_send .= "Content-Length: " strlen($cont) . "\r\n\r\n";
    $header_send .= "Connection: close\r\n\r\n";
    echo 
    $header_send $cont;
    fputs($fp$header_send $cont "\r\n");
    echo 
    fgets($fp); 
    eventualmente controlla che la querystring sia corretta.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    ho fatto come hai detto ma così mi da
    codice:
    HTTP/1.1 400 Bad Request

  4. #4
    Utente di HTML.it L'avatar di Laxus
    Registrato dal
    Oct 2010
    Messaggi
    251
    aggiungi agli header:
    codice:
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0\r\n

  5. #5
    Riprova così:

    codice:
    $cont="";
    foreach ($_POST as $k=>$a) {$cont.=$k."=".$a."&";};
    
    $fp = fsockopen(gethostbyname("www.studiolegalemuzzini.it"), 80);
    
    $header_send = "POST /data.asp HTTP/1.1\r\n";
    $header_send .= "Host: www.studiolegalemuzzini.it\r\n" 
    $header_send .= "Content-Type: application/x-www-form-urlencoded\r\n"; 
    $header_send .= "Content-Length: " . strlen($cont) . "\r\n\r\n";
    $header_send .= "Connection: close\r\n\r\n";
    echo $header_send . $cont;
    fputs($fp, $header_send . $cont . "\r\n");
    echo fgets($fp);
    Non so perchè nel codice è finito quel tag html href www.studiolegalemuzzini.it\r\n che non centra nulla.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    Ho fatto tutte le prove che mi avete detto. i risultati sono:
    se metto viene errore 400 bad request

    se metto
    codice:
    $header_send .= "Host: www.studiolegalemuzzini.it\r\n"
    viene errore 500 internal server error

    ho provato in tutti e due i modi ad aggiungere i vari user agent e connection:close ma non ha funzionato in nessun modo.

  7. #7
    Hai controllato la querystring che generi? Perchè in ogni caso, indipendentemente dai nomi delle variabili e dei valori così è errata:

    codice:
    ...
    foreach ($_POST as $k=>$a) {$cont.=$k."=".$a."&";};
    ...
    dato che alla fine avrai un carattere "&" senza variabile.
    Es: var1=value1&var2=value2&...&varN=valueN&

    Magari è questo che causa il problema.
    Inoltre vedo che stampi con un echo header e querystring, avresti dovuto accorgertene:

    codice:
    ...
    echo $header_send . $cont;
    ...
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  8. #8
    me ne ero accorto ma non credevo che dasse dei problemi...

  9. #9
    Magari non è quella la causa dell'errore, ma fai una prova. In modalità GET (con la querystring passata sull'URL) la & finale non sembra dare problemi, ma magari utilizzando un socket per simulare una chiamata in POST la cosa potrebbe creare dei problemi.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  10. #10
    ho tolto l'ultimo "&" ma il problema rimane

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.