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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 ?

+ 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