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

PHP & Base de données Discussion :

Question curl


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 36
    Par défaut Question curl
    Bonjour à tous,

    J'aimerais avoir une précision sur le curl,

    Je débute dans cette spécification et j'aimerais savoir comment faire pour passer d'un formulaire à l'envoi de celui ci en curl.

    Voici le code complet :

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    <?php
    $postfields = array();
    $postfields["action"] = "submit";
    $postfields["EsendexUsername"] = "nom";
    $postfields["EsendexPassword"] = "nom1";
    $postfields["EsendexAccount"] = "nom2";
    $postfields["EsendexFailurePage"] = "url1";
    $postfields["EsendexSuccessPage"] = "url2";
    $postfields["EsendexOriginator"] = $_POST['EsendexOriginator'];
    $postfields["EsendexRecipient"] = $_POST['EsendexRecipient'];
    $postfields["EsendexRecipient"] = $_POST['EsendexRecipient'];
     
    $url = "https://www.esendex.com/secure/messenger/formpost/SendSMS.aspx";
    $useragent = "Mozilla/5.0";
    $referer = $url; 
     
    //Initialise une session CURL
    $ch = curl_init($url);
    //CURL options
    curl_setopt($ch, CURLOPT_POST, 1);
    //On poste les données du tableau $postfields
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
    //On définit un useragent ici Mozilla/5.0
    //souvent les bots se font passés pour googlebot ce qui finalement est stupide
    //On passe donc un useragent banal
    curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
    //On passe un referrer ici on passe la même page $url
    curl_setopt($ch, CURLOPT_REFERER, $referer);
    //on récupère le contenu de la page de résultat de la soumission dans une chaine
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    // en cas de redirection (facultatif ici)
    //curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    //Page de résultats et fermeture de session
    $result = curl_exec($ch);
    curl_close($ch);
     
    //on peut faire un echo du résultat obtenu
    echo $result;
    ?>
     
    <form method="post" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>">
     
    			<P><b>Nom</b><br/>
    				<INPUT name="EsendexOriginator" id="EsendexOriginator" type="text"><br/>
    			<P><b>Numero</b><br/>
    				<INPUT name="EsendexRecipient" id="EsendexRecipient" type="text"><br/></P>
     
    		        <P><b>Texte</b><br/>
    				<TEXTAREA name="EsendexBody" id="EsendexBody" rows="6" cols="60" maxlength="320"></TEXTAREA><br/>
     
    			<input type="submit" value="Envoyer" onclick="this.form.submit();this.disabled=true;this.value='Envoyer'">
    </form>
    J'ai testé cela avec mes propres variables mais le probleme c'est que ce script en a rien à faire de mon formulaire, il envoi deja les requêtes deja pres rempli du style $postfields["EsendexUsername"] = "nom"; alors que je veux qu'il attende que le bouton "envoyer" soit cliqué pour envoyer !

    Merci de votre aide

  2. #2
    Membre Expert Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Par défaut
    C'est normal, il faut que ton bout de code dans lequel tu génères ta requête et envoie celle-ci ne soit éxécuté que si les données dont tu attends qu'elles soient postées le soient vraiment.

    Remplace la partie php par :
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    if ((filter_input(INPUT_POST, $_POST['EsendexOriginator'])) && (filter_input(INPUT_POST, $_POST['EsendexRecipient'])))
    {
       $postfields = array();
       $postfields["action"] = "submit";
       $postfields["Username"] = "nom";
       $postfields["Password"] = "nom1";
       $postfields["Account"] = "nom2";
       $postfields["FailurePage"] = "url1";
       $postfields["SuccessPage"] = "url2";
       $postfields["Originator"] = $_POST['EsendexOriginator'];
       $postfields["Recipient"] = $_POST['EsendexRecipient'];
     
       $url = "https://www.esendex.com/secure/messenger/formpost/SendSMS.aspx";
       $useragent = "Mozilla/5.0";
       $referer = $url; 
     
       //Initialise une session CURL
       $ch = curl_init($url);
       //CURL options
       curl_setopt($ch, CURLOPT_POST, 1);
       //On poste les données du tableau $postfields
       curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
       //On définit un useragent ici Mozilla/5.0
       //souvent les bots se font passés pour googlebot ce qui finalement est stupide
       //On passe donc un useragent banal
       curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
       //On passe un referrer ici on passe la même page $url
       curl_setopt($ch, CURLOPT_REFERER, $referer);
       //on récupère le contenu de la page de résultat de la soumission dans une chaine
       curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
       // en cas de redirection (facultatif ici)
       //curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
       //Page de résultats et fermeture de session
       $result = curl_exec($ch);
       curl_close($ch);
    }
    J'ai aussi enlevé le prefixe Essendex dans tes variables postées car d'après Essendex elles ne devraient pas l'avoir.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 36
    Par défaut
    A ok, merci pour la précision

    Par-contre je viens de mettre le code et sa me dit sa :

    Fatal error: Call to undefined function: filter_input() in /homez.356/frenchal/www/sms/sms.php on line 110

    :/

  4. #4
    Membre Expert Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Par défaut
    Ah mince, t'es en quelle version de php?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 36
    Par défaut
    4.4.9

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    chez quel hébergeur ?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 36
    Par défaut
    OVH

  8. #8
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par Epliknot Voir le message
    OVH
    ils ont PHP 5.3
    http://guide.ovh.com/Php5ChezOvh

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 36
    Par défaut
    J'ai modifier mon htaccess pour passer en 5.3 mais l'envoi ne marche pas !

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    <?php
    if ((filter_input(INPUT_POST, $_POST['EsendexOriginator'])) && (filter_input(INPUT_POST, $_POST['EsendexRecipient'])) && (filter_input(INPUT_POST, $_POST['EsendexBody'])))
    {
       $postfields = array();
       $postfields["action"] = "submit";
       $postfields["Username"] = "user";
       $postfields["Password"] = "pass";
       $postfields["Account"] = "account";
       $postfields["FailurePage"] = "http://.../wrong.php";
       $postfields["SuccessPage"] = "http://.../ok.php";
       $postfields["Originator"] = $_POST['EsendexOriginator'];
       $postfields["Recipient"] = $_POST['EsendexRecipient'];
       $postfields["Body"] = $_POST['EsendexBody'];
     
       $url = "https://www.esendex.com/secure/messenger/formpost/SendSMS.aspx";
       $useragent = "Mozilla/5.0";
       $referer = $url; 
     
       //Initialise une session CURL
       $ch = curl_init($url);
       //CURL options
       curl_setopt($ch, CURLOPT_POST, 1);
       //On poste les données du tableau $postfields
       curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
       //On définit un useragent ici Mozilla/5.0
       //souvent les bots se font passés pour googlebot ce qui finalement est stupide
       //On passe donc un useragent banal
       curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
       //On passe un referrer ici on passe la même page $url
       curl_setopt($ch, CURLOPT_REFERER, $referer);
       //on récupère le contenu de la page de résultat de la soumission dans une chaine
       curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
       // en cas de redirection (facultatif ici)
       //curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
       //Page de résultats et fermeture de session
       $result = curl_exec($ch);
       curl_close($ch);
    }
    ?>
    <center>
    <h4><strong>ENVOI DE SMS</strong></h4>
    <br/>
    <form method="post" action="https://www.esendex.com/secure/messenger/formpost/SendSMS.aspx">
    			<P><b>Num&eacute;ro ou nom de l'&eacute;metteur du sms:</b><br/>
    				<INPUT name="EsendexOriginator" id="EsendexOriginator" type="text"><br/>
     
    			<P><b>Numero du destinataire:</b><br/>(Vous pouvez ajouter plusieurs destinataires, exemple : 0694757364, 0684635264, ...)<br/>
    				<INPUT name="EsendexRecipient" id="EsendexRecipient" type="text"><br/></P>
     
    			<P><b>Votre message:</b><br/><FONT COLOR="#FE0101"><b>ATTENTION :</b> Certains characteres ne sont pas support&eacute;s !</font><br/>
    				<TEXTAREA name="EsendexBody" id="EsendexBody" rows="6" cols="60" maxlength="320"></TEXTAREA><br/>
     
    			<input type="submit" value="Envoyer" onclick="this.form.submit();this.disabled=true;this.value='Envoyer'">
    </form>
    </center>
    Réponse de esendex :

    You can link to this page to send an SMS message using the HTML Form Post protocol. The table below shows the fields you can include in your form. The fields marked with an asterisk (*) are mandatory.

  10. #10
    Membre Expert Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Par défaut
    T'as pas moyen via ton compte esendex de voir passer les requêtes?

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 36
    Par défaut
    non aucunement... :s

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 36
    Par défaut
    Je ne suis pas sur que ce que je vais dire est juste, mais je pense, en examinant le formulaire que la requête php n'arrive pas... car normalement en ayant uniquement les identifiants et un numéro même avec un texte vide sa valide...

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 36
    Par défaut
    C'est bon probleme résolu

    Apres m’être creusé la tête pendant 3h, j'ai finit par trouver une solution (toute conne en plus)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
    if (isset($_POST['Envoyer']))
    {
    * Script curl *
    }
    ?>
     
    <form method="post" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>">
    Merci pour ton aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Question cURL
    Par baadman dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 09/07/2012, 10h59
  2. [curl] question si temps max
    Par Merfolk dans le forum Langage
    Réponses: 2
    Dernier message: 02/12/2009, 09h39
  3. Question sur une fonction CURL
    Par renaud26 dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2009, 10h05
  4. [cURL] La question qui tue : C'est quoi une librairie ?
    Par psychoBob dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 27/05/2006, 00h09
  5. [HyperFile] 2 questions de débutant
    Par khan dans le forum HyperFileSQL
    Réponses: 2
    Dernier message: 29/04/2002, 23h18

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