IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Envoi de requête HTTP POST sans formulaire


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 86
    Points : 66
    Points
    66
    Par défaut Envoi de requête HTTP POST sans formulaire
    Bonjour,

    J'ai un petit soucis dû à mon manque de connaissances en PHP. Le but de mon script est d'envoyer des SMS (via un moteur accessible sur une URL X) à partir de mon programme .PHP. L'URL n'accepte que le POST. A priori, vu que ça a l'air important dans ce cas, je suis en PHP5.

    1. Un premier formulaire choix.php affiche la liste des numéros de téléphone de la flotte (multi-choix possible naturellement) et renvoie sur le formulaire 2 au moment du submit.

    2. Un deuxième formulaire (contenant une zone de type hidden avec les numéros de téléphone dedans (séparateur contient une zone de texte avec le SMS à envoyer. Le submit de ce formulaire 2 amène au script 3

    ----> à partir de là commence mon flou artistique.......... <-----------

    3. Ce script splite la liste des numéros et pour chaque numéro, il faut appeler une URL xxx.jsp et transmettre, sous forme de POST 4 variables : NumTel, Login, Pwd, Flag (toujours à 1).

    J'ai regardé du côté de culr et / ou fsockopen mais je galère un peu. Est-ce que quelqu'un aurait le courage de mettre ce qui est en commentaire sous forme d'un truc fonctionnel dans le code suivant ? :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    <?PHP
     
    //'--------------------------------------------------------------'
    //' ON Y VA
    //'--------------------------------------------------------------'
    $sNUM = $_POST["ztNUM"].";";
    $tNUM = split(";", $sNUM);
    for ($i=0;$i<=sizeof($tNUM)-1;$i++) {
     
        // ENVOYER LE SMS
        $URL = "http://monadressecomplete/lapage.jsp";
        $NUM = $tNUM[$i];
        $LOGIN = "tagada";
        $PASSW = "tsointsoin";
     
        //
        // BOUT DE CODE ICI....
        //
     
     
    }
     
    // SI TOUT EST OK, C'EST QUE TOUT EST OK
    echo "OK";
    ?>
    Merci d'avance

    Vincent

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Mets nous ton code avec cURL ca ne doit pas bien etre long a corriger.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 86
    Points : 66
    Points
    66
    Par défaut
    Bonjour,

    Pour l'instant, je n'ai pas de curl qui traine, je suis en train de réfléchir à la solution (la plus simple) que je dois apporter.

    J'ai trouvé ce bout de code qui me paraît intéressant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
        $phoneNumber = '0645551111';
        $message = 'This message was generated by curl and php';
        $curlPost = 'pNUMBER='  . urlencode($phoneNumber); 
        $curlPost .='&MESSAGE=' . urlencode($message);
        $curlPost .='&SUBMIT=Send';
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, 'http://www.example.com/sendSMS.php');
        curl_setopt($ch, CURLOPT_HEADER, 1);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
        $data = curl_exec($ch);
        curl_close($ch);

    Il suffirait donc que je l'appelle autant de fois que j'ai de SMS à envoyer.

    Par contre, je me rends compte aussi que curl est un module à installer sur le serveur et je ne suis pas encore sur un serveur dédié et donc, je ne peux pas faire de test.

    Il faut donc que je me tourne vers.... fsockopen non ???

    D'autre part, sur cette instruction fsockopen, est-ce que l'URL peut être locale (par exemple "cettepage.php" et non "lesitecomplet.com/cettepage.php" ?

    Merci,

    Vincent

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 86
    Points : 66
    Points
    66
    Par défaut
    Bon,

    J'ai dû trouver l'exemple le plus simple du monde et pourtant.... Ca coince un petit peu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
     
        // Les données envoyées en POST sous forme d'url
        $data = 'V1='.urlencode("AA").'&V2='.urlencode("BBB");
     
        // monfichier.php3 est l'URL du fichier devant recevoir la requete POST 
        $message  = "POST /monfichier.php3 HTTP/1.1\r\n";
        $message .= "Content-type: application/x-www-form-urlencoded\r\n";
        $message .= "Content-length: ".strlen( $data )."\r\n";
        $message .= "\r\n";
        $message .= $data."\r\n";
     
        // monserveur correspond au serveur qui doit recevoir la requete
        $fd = fsockopen( "www.serveur.com", 80 );
        fputs($fd,$message);
        fclose($fd);
    Comment donc, à partir des données précédentes, faire pour que ça s'adapte à mon cas en sachant que :

    // pour les variables à transmettre, je modifie dans $data

    // le plus compliqué c'est la différence entre URL et SERVEUR....

    L'URL pour envoyer mon SMS est : http://www.url.com/sms.jsp

    Le serveur, je mets juste www.url.com ???

    Merci d'avance,

    Vincent

Discussions similaires

  1. Requête HTTP POST sans réponse
    Par mike76 dans le forum Services Web
    Réponses: 12
    Dernier message: 28/11/2012, 12h23
  2. Envoi d'une requête HTTP POST
    Par Alexey dans le forum Langage
    Réponses: 4
    Dernier message: 10/05/2009, 20h35
  3. [PHP 5.0] Envois de données POST sans formulaire - Curl
    Par phoelis1 dans le forum Langage
    Réponses: 5
    Dernier message: 30/04/2009, 20h05
  4. Envoi de POST sans formulaire
    Par jpean.net dans le forum Langage
    Réponses: 2
    Dernier message: 19/04/2007, 18h00
  5. Requête GET ou POST sans formulaire.
    Par etiennegaloup dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 31/10/2005, 09h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo