Envoyer des sms avec l'api free mobile

jules87 Messages postés 12 Date d'inscription mardi 14 mai 2013 Statut Membre Dernière intervention 16 septembre 2017 - 16 sept. 2017 à 20:40
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 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.

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

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
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.