Envoyer des sms avec l'api free mobile

jules87 12 Messages postés mardi 14 mai 2013Date d'inscription 16 septembre 2017 Dernière intervention - 16 sept. 2017 à 20:40 - Dernière réponse : jordane45 20600 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 23 avril 2018 Dernière intervention
- 16 sept. 2017 à 22:47
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

http://codes-sources.commentcamarche.net/source/102161-envoyer-des-sms-avec-l-api-free-mobile

Afficher la suite 
jordane45 20600 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 23 avril 2018 Dernière intervention - 16 sept. 2017 à 22:47
Bonjour,
Je n'ai pas testé si ça fonctionnait... mais je peux déjà faire quelques remarques concernant l'écriture du code.
1 - Stocker les variables POST dans des variables POST .. ça n'a aucun sens
2 - Faire des fonctions au lieu de répéter inutilement le même code à plusieurs reprises
3 - Attention à l'utilisation des apostrophes/guillemets. Je pense que tu as une erreur sur ta ligne 100

Bref...
ton code légèrement corrigé ressemblerai à ça :
<?php

error_reporting(0);


// API FREE USER : 
$api_user = "XXXXXXXXXX";

// API FREE PASS :
$api_pass = "XXXXXXXXXX";

// Fonction pour "nettoyer" les string
function cleanVar($var,$mbstar=0,$mbend=22){
 return trim(strip_tags(mb_strimwidth(stripslashes($var))));
}


function error_msg($msgerrortext){
 
$error_message = '<!DOCTYPE html>
                  <html><head><meta name="viewport" content="width=device-width, initial-scale=1"><title>Message SMS</title><meta http-equiv="content-type" content="text/html; charset=utf-8"><style type="text/css">
                  body {
                  background-color: #FFFFFF;
                  margin: 8px 8px 8px 8px;
                  text-align: left;
                  color: #000000;
                  font-family: Arial;
                  font-size: 14px;
                  }
                  a:link {
                  color: #FF0000;
                  font-size: 14px;
                  text-decoration: underline;
                  }
                  a:visited {
                  color: #FF0000;
                  font-size: 14px;
                  text-decoration: underline;
                  }
                  a:active {
                  color: #FF0000;
                  font-size: 14px;
                  text-decoration: underline;
                  }
                  a:hover {
                  color: #000000;
                  font-size: 14px;
                  text-decoration: underline;
                  }
                  </style>
                  </head>
                  <body>'.$msgerrortext.'<br><a href="javascript:history.go(-1)" rel="nofollow noopener noreferrer" target="_blank">Retour</a><br><br></body>
                  </html>';
  echo $error_message;
  exit();
}


//récupération PROPRE des variables AVANT de les utiliser
// pour cela je vais utiliser !empty + l'écriture ternaire :
$nom = !empty($_POST['nom']) ? cleanVar($_POST['nom'],0,22) : NULL;
$message = !empty($_POST['message']) ? cleanVar($_POST['message'],0,144) : NULL;

$ip = "[".$_SERVER['REMOTE_ADDR']."]";


if(!$nom){
  error_msg("Il n'y a pas de nom !");
}

if(!$message){
  error_msg("Il n'y a pas de message !");
}


$sms = ''.$nom.' '.$ip.' '.$message.'';
$sms_aff = rawurlencode($sms);
$sms_url  = 'https://smsapi.free-mobile.fr/sendmsg?user='.$api_user.'&pass='.$api_pass.'&msg=$sms_aff';
file_get_contents($sms_url);
header("Location: recu_sms.html");
exit;

?>




Quoi qu'il en soit... tu ne respectes pas la charte du site concernant la dépose de sources....
1 - Le code doit être commenté et/ou au moins expliqué
2 - Il ne doit pas utiliser juste quelques fonctions de "base" du langage
3 - Tu dois t'assurer qu'il fonctionne
4 - Si il ne fonctionne pas.. tu dois expliquer pourquoi et ce que tu comptes faire.

Pour toutes ces raisons.... je supprime ton code.
Commenter la réponse de jules87

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.