Envoyer un sms en PHP, Java, Javascript ou depuis une url !

Salut à tous !! Je bricole en ce moment !! Et hier aprem j’étais sur un petit programme PHP/JAVA permettant de transformer son téléphone portable en webservice pour envoyer des SMS.

En effet il peux être pratique de pouvoir envoyer des sms depuis un script ou un programme, les applications sont multiples :

  • Pour avertir du down d’un serveur
  • Pour envoyer un code de confirmation a un internaute
  • Pour envoyer automatiquement un sms de joyeux anniversaire à un amis…
  • etc…etc…

Voila voila, avec mon petit programme vous pouvez donc envoyer des sms en tapant une url de ce type :

http://sms.idleman.fr/add/motDePasse/0687531254/Joyeuse fêtes mon poto !!

Explication de l’url :

sms.idleman.fr : Adresse vers votre script d’envois de sms

add: On indique qu’on souhaite ajouter un sms a la liste d’attente

motDePasse: On envois un mot de passe précédemment définis dans le script pour éviter que n’importe qui envois des sms avec votre portable :)

0687531254: On précise le numéro de portable du destinataire

Joyeuse fêtes mon poto !! : On précise le message à envoyer.

Bon à ce stade je pense que vous avez compris le principe, passons a la pratique !!

Avant tous les prérequis :

Prérequis :

  • Avoir un téléphone Android avec un forfait sms/internet illimité
  • Avoir un hébergement/serveur avec du PHP et une base Mysql et l’url rewriting activé.
  • Avoir deux sous de jugeote et savoir lire.

INSTALLATION

  • 1) Dans votre base de donnée mysql, créez la base a partir du fichier pws.sql disponible
  • 2) Configurez les accès a la base de données de la page index.php
  • 3) Envoyez le répertoire pws contenant au moins index.php et .htaccess (assurez vous que votre serveur a l’url
    rewriting activé).
  • 4) Le service partie serveur est installé !! Passons à la partie téléphone !
  • 5) Installez le fichiez PWS1.0.apk sur votre téléphone androïde
  • 6) Lancez l’application PWS sur votre téléphone et configurez les paramètres suivants:
    • ** hôte : Adresse url vers votre script php psw (ex: http://www.idleman.fr/pws)
      /!\ IMPORTANT : ne mettez pas de “/” à la fin de l’url !
    • ** Mot de passe : Il s’agit du mot de passe du webservice, il dois impérativement correspondre au mot
      de passe ‘USER_UID’ de la page index.php.
    • ** Rafraîchissement : Fréquence de la synchronisation entre votre téléphone et votre serveur, plus le
      temps sera court, plus vos sms seront envoyés vite, mais cela consommera plus de batterie sur votre téléphone.
  • 7) Redémarrez votre téléphone, le script est installé !

UTILISATION

Pour envoyer un sms, ouvrez un navigateur et tapez l’adresse :

http://votre.serveur.fr/pws/add/votre.mot.de.passe.webservice/numero.destinataire/votre.message

exemple : http://www.idleman.fr/pws/add/UV$–z56e/0687865123/Halu mec !

Votre message sera envoyé dans un certain laps de temps en fonction de votre fréquence de rafraîchissement définis.

Vous pouvez donc appeler ce web-service en PHP (via curl) en JavaScript (via Ajax) en JAVA (via les httprequest) etc… et envoyer gratuitement et en illimité des sms depuis n’importe quel script ou langage (oai le principe du webservice quoi :) )

TÉLÉCHARGEMENT

Application androïde et script php ici : pws.zip

CRÉDITS

Script PHP, Application Androïde et concept par votre serviteur Idleman : http://blog.idleman.fr

 

Article rédigé par Idleman

32 réflexions au sujet de « Envoyer un sms en PHP, Java, Javascript ou depuis une url ! »

  1. Clem4541

    Superbe idée, moi je dis bravo
    Moyen le mot de passe dans l url mais l idée est géniale. Je vais garder ça dans le coin de ma tête. ( vu que j ai de la place ça devrait pas poser de problème)

    Répondre
    1. Idleman Auteur de l’article

      Haa ben ça fait plaisir de te revoir parmi nous mon ptit clem !!

      Oui effectivement le mot de passe c’est gênant, surtout dans le cas d’une attaque type man in the middle, a la base j’avais mis un htacess (facilement utilisable avec php curl par exemple) mais ce système bloquais les appels via javascript/html/direct url etc… or j’aimerais conserver cet accessibilité, donc si tu a une suggestion pour régler le problème, je sous tout ouïe :)

      Répondre
  2. Tozman

    Pourquoi ne pas envoyer un paramètre de vérification qui serait un hash salé du numéro de téléphone (ou déjà du mot de passe), ça limiterait déjà les possibilités d’interception de l’url…

    Coté téléphone, il faudrait vérifier que le hash alors stocké dans la base de données corresponde au hash du numéro de tel… un truc comme ça quoi ;)

    Répondre
  3. Idleman Auteur de l’article

    Pour le numéro de téléphone, ça serait craignos… ça voudrait dire que la personne qui connais ton numéro et le hash du script (qui est en téléchargement libre) pourrais générer le mot de passe en 5 sec.

    Après il est clair qu’on pourrais crypter le mot de passe actuel dans l’url :)

    Répondre
  4. Fab31400

    Bonjour à tous,
    Merci pour cet article très interessant…
    Cher idleman, te serait-il possible de faire de faire une version 1.1 de ton appli Android PWS afin de pouvoir acheminer des SMS faisant plus de 140 octets ?
    Ou sinon, peux-tu nous mettre à disposition le code source de ton appli ?
    En effet, j’ai constaté qu’un message dépassant la limite de 160 caractères encodés en 7bits n’est pas envoyé.
    Sinon, pour les autres, je vous conseille d’utiliser l’encodage utf-8 plutôt que le latin.

    Merci,
    F.

    Répondre
    1. Idleman Auteur de l’article

      Salut !! :) Je n’ai plus le temps de faire évoluer ce genre d’appli, en revanche je dois pouvoir te retrouver les sources :), je les publies sur mon gestionnaire de projet DiZplay dès que c’est le cas :)

      Répondre
  5. Fab31400

    Super Idleman, tu me dis quand le projet sera sur le repo DiZplay ?
    Merci beaucoup.
    F.

    Répondre
  6. jacques yildiz

    Super! mais y a un hic je pense non ?
    Ma page web me met :
    Fatal error: Call to undefined function: json_encode() in /mnt/105/sda/2/5/jacquesyildiz/pws/index.php on line 97

    Or on ne touche pas a l’index.php (le body) pourtant j’ai configurer le DDB, PASS, HOTE, …

    Merci pour ce super script

    Répondre
    1. Idleman Auteur de l’article

      C’et que ta version de PHP doit être trop vielle, la fonction json_encode est disponible en natif sur PHP depuis la version 5.2.0, essaye de mettre a jour ta version de PHP ça devrais mieux aller. :)

      Répondre
        1. Idleman Auteur de l’article

          Tu peux verifier la version du php utilisée sur ton site en executant un fichier php qui contient :

          < ?php phpinfo(); ?>

          Pour que php5 soit utilisé par défaut sur les pages perso de free.fr, il faut placer à la racine du site un fichier “.htaccess” qui contienne :

          php 5

          En revanche j’ignore si c’est la 5.2 et supérieure…

          Répondre
  7. Stéphane

    Un grand bravo pour cette application. Je dois dire que pour c’est c’est un peu magique d’envoyer un SMS par PHP et qui soient traité par mon smarphone puis distribué!

    Pour ajouter un couche de sécurité, j’encode mon mot de passe en base64.
    Voici la ligne que j’ai ajouter à la ligne 54:

    Encore une autre modification

    J’ai changé le champs date de la BD pour employer les perfs du server SQL:

    Et la requête INSERT:

    Répondre
    1. Idleman Auteur de l’article

      Merci pour ces petites modifs :), j’essaierais de les intégrer dans la prochaine version ^^

      Répondre
  8. logorn

    il serait possible d’avoir le source de l’apk ? merci d’avance.

    Répondre
    1. Idleman Auteur de l’article

      Non, désolé j’ai déjà cherché et suis arrivé a la conclusion que je les avait perdues (shame on me) cela dis les apk sont décompilables a l’aide de quelques programmes il y a des tutos sur le net pour ça, normalement c’est pas très “légale” mais j’autorise officiellement la décompilation de mon apk étant donné que je ne parviens plus a mettre la main sur ces fichues sources.

      Répondre
  9. logorn

    merci .. continue sur la section raspberry et domotique … je suis tres interressé par le sujet.

    Répondre
  10. logorn

    Salut,

    J’ai testé ta solution sur un server nginx.

    très bien tout ça.

    a++

    Répondre
  11. Ping : Nono’s Vrac 24 « m0le'o'blog

  12. jean-louis

    bonjour,

    j’ai essayé, de mon coté ca fonctionne bien mais pas plus de 10-12 heures, après les sms ne sont plus envoyés, si j’arrete et redemarre le service coté android ca re fonctionne …
    testé avec un galaxy note2

    j’aime bien le coté envoi a la base mysql puis recuperation sur le mobile… comme j’ai besoin d’envoyer des messages d’alerte sms , y a t il quelqu’un qui a une idée ? qq un a t il déjà rencontré le meme souci ??

    merci,
    jl

    Répondre
  13. Debutant

    Slt en premier lieu merci pour ce travail :C’est un truc que je veux faire depuis plusieurs mois …
    Il doit me manquer quelques connaissances :
    Je suis en local , j’utilise xampp-control
    dans htdocs j’ai mis :
    -Fichier .htaccess
    -Index.php
    ——————————————————————
    Le fichier index.php a été modifié :
    define(‘DB_HOST’,’localhost’); //nom du host
    define(‘DB_LOGIN’,’root’); //Login d’acces au mysql
    define(‘DB_MDP’,”); //mdp d’acces au mysql
    define(‘DB_BDD’,’pws’); //nom de la base de donnée
    define(‘USER_UID’,’1234′); //Mot de passe du web service
    ———————————————————————————–
    Dans la base de donnée :
    Import du fichier,pws.sql dans mysql
    -nom de la base de donnée : pws
    -Pas de mot de passe
    -identifiant :Root
    //————————————————–
    serveur téléphone
    -identifiant :www.idleman.fr/pws
    -mdp :1234
    -1(rafraîchissement …)
    —–
    //Après execution

    Not Found

    The requested URL /pws/add/4516/0641687087/Hello mec, bon anniv!! was not found on this server.’

    Pourrai je avoir une aide ?

    Répondre
    1. Idleman Auteur de l’article

      Tout m’a l’air bon sauf ça

      //————————————————–
      serveur téléphone
      -identifiant :www.idleman.fr/pws

      pourquoi met tu l’adresse de mon site web comme identifiant ? oO

      Répondre
  14. Guillaume

    Bonjour je trouve ça top!

    Cependant j’ai une question, j’ai un site internet marchand, je souhaite informer mes clients de l’expedition de leur commande par sms, et j’ai acheté un modeme GSM wavecom (avec 16 cartes Sim).
    L’appareil est relié via USB et je me demande comment interfacer cette box en utilisant le script PHP…
    Je sais que la question n’a rien à voir avec le sujet… mais je tente ma chance ;)
    Bonne soirée!
    Guillaume

    Répondre
  15. Francois

    Bonjour à tous,

    Je trouve cette application super !! Cependant, est-il possible de modifier l’expediteur du SMS afin de ne pas divulguer le numéro de téléphone ??

    Répondre
    1. Idleman Auteur de l’article

      Non, le sms est envoyé depuis le téléphone, pas moyen de spoofer et c’est pas plus mal :)

      Répondre
  16. Is

    Bonjour,

    Je ne sais pas si cette application marche toujours ou pas. Je viens d’en tester, et ça n’a pas l’air de marcher. Je suis connecté dans un réseau local, et j’ai fais en sorte que l’application se connecte à mon serveur à mon serveur appache (sur lequel le rewriting est activé).

    Merci de me tenir au courant.

    Répondre
    1. Idleman Auteur de l’article

      Normalement oui ça fonctionne toujours, le problème viens peut être de ton réseau…as tu regardé les logs d’apache quand tu tente de te connecter via le téléphone?

      Répondre
      1. Francois

        Je confirme, l’application fonctionne correctement chez moi, une pure merveille !! ;) <3

        Répondre
  17. Francois

    Bonjour à tous,

    A tout hasard, je recherche comment envoyer des MMS mais aussi j’aimerai que lorsque je reçois un SMS sur ce portable, celui-ci soit transférer soit par mail soit par sur un autre numéro de téléphone, est ce que l’un d’entre vous aurez cette connaissance ?

    En vous remerciant par avance !

    Répondre
    1. Idleman Auteur de l’article

      Il te faut une application adaptées, as tu essayé aairdroid ? Ou, si tu souhaite ne pas intervenir, il y a une application qui est spécialisées dans les actions réactions sur android qui pourrais te convenir mais je ne me rappelle plus du nom dsl.

      Répondre
      1. Francois

        Salut Idleman,
        Comment vas tu ? Je te suis beaucoup et je tenez à te féliciter pour toutes tes interventions !

        Entre nous, j’ai utilisé MAILSMS pour récuperer les sms par mail.

        Je cherche toujours le moyen de modifier le destinataire à l’envoi du SMS si quelqu’un passe par ici ..

        Merci à tous & bon week-end ! :D

        Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Xo ^_^ :siffle: :p :-( :evil: oO :) T_T <3 :D more »