Partage
  • Partager sur Facebook
  • Partager sur Twitter

pour chaque numero de telephone executer une url

    22 mai 2018 à 16:42:07

    Bonjour tts le monde,

    j'essaye de créer une application qui envoie un sms à chaque numero de telephone qui existe dans ma base base de donnée mais je n'arrive pas a extraire le numero de telephone l'injecter dans mon url et recommencer cela pour chaque itération de ligne de numero telephone extrait de la base??

    en plus j'ai une boocle infinie j'ai du mal m'y prendre je sais mais je suis perdu et debutant surtout..lol

    merci de votre aide, j'ai pas mal parcourru google avant de venir mais la il y a une logique que je ne pige pas..

    je m'explique , dans mon lien,ici

    $data = "username="."$username"."&password="."$password"."&from="."$from"."&to="."$tel"."&text="."$message";
    j'ai une vairable $tel je voudrais donc que quand j'extraie le tableau

    voici le code en entier

    <?php
    error_reporting( E_ALL );
    ini_set( 'display_errors', 1 );
    
    
        $server = "localhost";
        $login = "root";
        $pass = "";
    
        try {
          $connexion = new PDO("mysql:host=$server;dbname=sms;charset=utf8", $login , $pass);
          $connexion -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
          echo 'connexion établie à la base de donnée <br>';
    
          $requete1 = $connexion->prepare(
    
    
            "SELECT numero FROM numeros "
    
    
          );
          $requete1->execute();
          $resultat = $requete1->fetchall();
    
    
    
          while($row = $resultat)
    {
     
    // connexion à l'API
      
     $username = "user";
     $password = "password";
     $tel = $resultat['numero']; 
     $from ="0000000000"; // assigned Sender_ID
     $message = urlencode( $_POST["message"]); // Message text required to deliver on mobile number
    
      $data = "username="."$username"."&password="."$password"."&from="."$from"."&to="."$tel"."&text="."$message";
      $url = "https://www.smssmsm.com/myaccount/sendsms.php?".$data;
       
    $arrContextOptions=array(
        "ssl"=>array(
            "verify_peer"=>false,
            "verify_peer_name"=>false,
        ),
    );
     $result = file_get_contents($url);
    echo $result;
    
    }
    
    
          }
        catch (PDOException $e) {
            echo 'Echec de la connexion:' .$e->getMessage();
        }
         
    
     
    
    
    
    
     
    
      
    
    
    ?>
    • Partager sur Facebook
    • Partager sur Twitter
      22 mai 2018 à 17:09:07

      Bonjour,

      Pour ta boucle tu pourrais simplement faire  :

            $requete1 = $connexion->query("SELECT numero FROM numeros ");
            while($resultat = $requete1->fetch())
      	  {


      Pour le reste, peux-tu préciser ? Que donne ton code, qu'est-ce qui ne marche pas ?

      -
      Edité par philodick 22 mai 2018 à 17:10:05

      • Partager sur Facebook
      • Partager sur Twitter
        23 mai 2018 à 7:40:16

        Bonjour Philodick 

        Merci pour ta réponse je t'explique ce qui marche pas .

        c'est trés difficile pour moi d'expliquer c'est pour çà que je n'arrive pas a le chercher sur google parce que j'ai pas assez de logique en développement php pour trouver les mots exact de ce que je cherche..

        ma requete fonctionne et j'ai pas de problème de ce coté puisse que tout les numéros s'affiche dans un print_r sans soucie.

        la requete me renvoie un tableau avec tout les numeros de telephone voici le print_r:
        
        Array
        
        (
        
            [0] => Array
        
                (
        
                    [numero] => 1234567888
        [0] => 1234567888
        ) [1] => Array ( [numero] => 1234997888
        [0] => 1234997888
        ) [2] => Array ( [numero] => 1234567888
        [0] => 1234567888
        ) [3] => Array ( [numero] => 1234567891 [0] => 1234567891
        )



        voici ma boucle:

        while($row = $resultat)
        {
           
         $username = "user";
         $password = "password";
         $tel = $resultat['numero']; 
         $from ="0000000000"; // assigned Sender_ID
         $message = urlencode( $_POST["message"]); // Message text required to deliver on mobile number
        
          $data = "username="."$username"."&password="."$password"."&from="."$from"."&to="."$tel"."&text="."$message";
          $url = "https://www.smsms.com/myaccount/sendsms.php?".$data;
           
        $arrContextOptions=array(
            "ssl"=>array(
                "verify_peer"=>false,
                "verify_peer_name"=>false,
            ),
        );
         $result = file_get_contents($url);
        echo $result;
        
        }

        ce que je veux faire c'est extraire chaque numero de telephone exemple:

         [numero] => 1234997888

        pour   l'insserrer dans mon lien ci-dessous dans la variable : $tel

        $data = "username="."$username"."&password="."$password"."&from="."$from"."&to="."$tel"."&text="."$message";

        et à chaque fois que la boucle while est excuter , un nouveau telephone est inserrer dans $tel

        Et à chaque boucle on execution la fonction

        $result = file_get_contents($url);

        a un nouveau numero de tel dans son lien api et envoie un nouveau message à un nouveau numero

        je sais pas si ta compris?

        du moin j'espére que tu ma compris 

        je veux une moulinette qui extrait numero par numero et l'inserre dans ce lien par la variable $tel et à chaque itération de la boucle un nouveau numero est importer de la table numeros/champ numero puis excuter pour envoyer un message a un correspondant different

        voici tout mon script

        <?php
        error_reporting( E_ALL );
        ini_set( 'display_errors', 1 );
        
        
            $server = "localhost";
            $login = "root";
            $pass = "";
        
            try {
              $connexion = new PDO("mysql:host=$server;dbname=sms;charset=utf8", $login , $pass);
              $connexion -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
              echo 'connexion établie à la base de donnée <br>';
        
              $requete1 = $connexion->prepare(
        
        
                "SELECT numero FROM numeros "
        
        
              );
              $requete1->execute();
              $resultat = $requete1->fetchall();
        
        
              while($row = $resultat)
        {
           
         $username = "user";
         $password = "password";
         $tel = $resultat['numero']; 
         $from ="0000000000"; // assigned Sender_ID
         $message = urlencode( $_POST["message"]); // Message text required to deliver on mobile number
        
          $data = "username="."$username"."&password="."$password"."&from="."$from"."&to="."$tel"."&text="."$message";
          $url = "https://www.smsms.com/myaccount/sendsms.php?".$data;
           
        $arrContextOptions=array(
            "ssl"=>array(
                "verify_peer"=>false,
                "verify_peer_name"=>false,
            ),
        );
         $result = file_get_contents($url);
        echo $result;
        
        }
        
        
              }
            catch (PDOException $e) {
                echo 'Echec de la connexion:' .$e->getMessage();
            }
             
        
         
        
        
        
        
         
        
          
        
        
        ?>
        

        -
        Edité par michael10fr 23 mai 2018 à 8:48:22

        • Partager sur Facebook
        • Partager sur Twitter
          23 mai 2018 à 9:01:53

          Ok, mais si tu remplaces par un simple fetch() comme je suggérais, ça ne fonctionne pas ?
          • Partager sur Facebook
          • Partager sur Twitter
            23 mai 2018 à 10:45:20

            oui çà marche bravo mais pourquoi çà marche , c'est quoi la difference entre fetch et fetchall ?? 

            merci pour tes lumiéres ..bravo en tout cas

            Par contre je trouve qu'une boucle ne va pas assez vite car une seul boucle fait un seul envoie a la fois, mais le problem est que le traitement est trop long .

            comment je peut modifier ce script pour que je puisse executer plusieurs $result = file_get_contents($url);

            en meme temps pour envoyer plus vite tout les contacts de la db et ainsi expedier 10fois plus vitre exemple envoyer 10par 10 contact ou 20par par 20 contact simultanement et aussi faire en sorte que je renvoie pas au meme contact le meme message ?exemple j'envoie au 20premier et en meme temps au 20 d'apres etc...

            -
            Edité par michael10fr 23 mai 2018 à 11:41:19

            • Partager sur Facebook
            • Partager sur Twitter
              23 mai 2018 à 14:08:16

              FetchAll te crée un tableau qu'il faut ensuite parcourir, alors qu'avec fetch() tu parcours directement le résultat de la requête.

              Pour le reste, je ne connais pas l'API, il faudrait voir si elle autorise les envois multiples.

              • Partager sur Facebook
              • Partager sur Twitter
                23 mai 2018 à 15:39:46

                ah ok j'ai compris 

                mais si je pouvez faire plusieurs envoie avec le meme lien api tu aurez fait comment pour executé plusieurs thread simultanné ?

                • Partager sur Facebook
                • Partager sur Twitter

                pour chaque numero de telephone executer une url

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown