Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1536 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  Envoyer des données à une url en post dans un cgi

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Envoyer des données à une url en post dans un cgi

n°1392610
Philip J F​ry
Posté le 22-06-2006 à 09:33:54  profilanswer
 

Bonjour à tous,
 
Voilà, je débute dans l'écriture d'un cgi et j'ai besoin de quelquechose de bien précis.
J'aimerais pouvoir soumettre des infos en post à une url, chose que je sais faire en php.
Je vous donne le code php pour que ce soir plus clair
 
 $sock = fsockopen( "www.blabla.com", 80, &$errno, &$errstr);
 if (!$sock)
 {
  fwrite($handle, "erreur!!" );
 }
 else
 {
  fwrite($handle, "ok !!!!!" );
 }
 
      $data = "mes_infos_a_transmettre";
 
       fputs($sock, "POST /send_infos.php HTTP/1.1\r\n" );
       fputs($sock, "Host:www.blabla.com \r\n" );
       fputs($sock, "Content-type: application/x-www-form-urlencoded\r\n" );
 
 // On définit la taille des données envoyés par l'intermediaire
 // de la fonction strlen()
 fputs($sock, "Content-length: " . strlen($data) . "\r\n" ); // taille
 
 // On définit les différents langages acceptés
 fputs($sock, "Accept: */*\r\n" ); // données acceptés par le navigateur
 
 // On envoi les données
 fputs($sock, "\r\n" ); // Ligne de séparation
 fputs($sock, "$data\r\n" ); // Envoi des données
 fputs($sock, "\r\n" ); // Ligne de séparation
 
 // Fermeture du socket
 fclose($sock);
 
 
Ce code permet donc d'envoyer le contenu de $data à l'url www.blabla.com/date/send_infos.php
 
 
J'aimerais réaliser le même code dans mon script cgi.  
Mais je ne sais pas comment ouvrir une connexion et appeler un url.
Pouvez-vous m'éclairer ?

mood
Publicité
Posté le 22-06-2006 à 09:33:54  profilanswer
 

n°1392616
pospos
Posté le 22-06-2006 à 09:44:55  profilanswer
 

regarde du coté de LWP
il y a un cookbook tres bien fait dans la distribution
il y a aussi un module LWP-Simple-POST mais je ne sais pas ce qu'il vaut

n°1392663
Philip J F​ry
Posté le 22-06-2006 à 11:00:03  profilanswer
 

J'ai essayé avec ce code :
 
# ouvre une connexion sur le serveur
    my $sock = IO::Socket::INET->new(
        PeerAddr => 'www.blabla.com',
        PeerPort => 'http(80)',
        Proto    => 'tcp'
    ) or die "Impossible de se connecter";
 
 my $infos = "info1=1&info2=2";
 
 # envoie la requête
     
 print $sock "GET /page_test.php HTTP/1.0\015\012Host: www.blabla.comrn";
 print $sock "Content-type: application/x-www-form-urlencoded\r\n";
 print $sock "Content-length: ".length($infos)."\r\n";
 print $sock "Accept: */*\r\n";
 print $sock "\r\n";
 print $sock "$infos\r\n";
 print $sock "\r\n";
      close $sock or die "close: $!";
 
 
je sais que ma page est bien appelée grace à un fichier de log, cepedant, je n'arrive pas à récupérer mes infos en querystring.
Mes variables passée en Get sont vides. il ne doit pas me manquer grand chose mais je ne saisis pas quoi !
 
 

n°1392743
pospos
Posté le 22-06-2006 à 12:42:15  profilanswer
 

La tu fais un GET
remplace GET par POST et ca devrait marcher
 
Mais bon franchement tu devrais utiliser LWP, pasque la avec ton systeme "à la main" tu risque le bug au moindre cas suspect

n°1392819
Philip J F​ry
Posté le 22-06-2006 à 14:27:08  profilanswer
 

Effectivement, le problème venait de là, ça fonctionne à présent !!
 
Merci !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  Envoyer des données à une url en post dans un cgi

 

Sujets relatifs
[Oracle] Rédémarrer une base de données oracleredirection après envoi de données
récuperer les données de la fonction data arrivalVBA /SQL => BASE ACCESS Comment supprimer des données ?
Pb recuperation de donnéesGarder les variables POST après une redirection header
DatagramPacket & DatagramSocket recupération des donnéesBase de données lycos
envoyer un lien avec un id de base de donées[PHP] Comment envoyer des données en POST à un script ? [Résolu]
Plus de sujets relatifs à : Envoyer des données à une url en post dans un cgi


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR