
I - Introduction
II - Ressources nécessaire
III - Le script PHP
VI - La création de la table MySQL
V - L'adaptation du script PHP

Ce système est pratique étant donner qu'il permet d'effectué une vérification du numéro de téléphone de la personne qui s'inscrit sur votre site.
Attention, l'envoie de SMS est payant par des sites spécialisé plus ou moins cher, certains propose des offres gratuite mais souvent de mauvaise qualité.
Pour ce tutoriel j'utiliserais Spot-Hit qui propose 10 SMS premium et 10 SMS low-cost gratuit.

Donc avant de commencer à écrire ce tutoriel j'ai codé un template à l'aide de bootswatch pour le HTML , donc je vous le met à disposition pour ceux qui ne veulent pas lire mon tutoriel.
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
•
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
•
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
•
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
Ensuite il vous faudra un fournisseur de SMS, donc comme j'ai dis moi j'utilise
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
que je vous conseil.
Voila le script fournit par Spot-Hit.
PHP:
<?php
// Données du message
$data = Array(
'key' => 'fe01ce2a7fbac8fafaed7c982a04e229',
'destinataires' => '+33600000000',
'type' => 'premium',
'message' => 'Hello World !',
'expediteur' => 'Spot-Hit',
'date' => ''
);
// Conversion des données en paramètre pour une URL (http://fr2.php.net/manual/fr/function.urlencode.php)
foreach($data as $parametre => $valeur)
{
$requete .= $parametre.'='.urlencode($valeur).'&';
}
// Appel de l'API Spot-Hit et récupération de la réponse dans la variable $reponse_json
$reponse_json = file_get_contents('http://www.spot-hit.fr/api/envoyer/sms?'.$requete);
// Conversion JSON en tableau avec json_decode (http://fr2.php.net/manual/fr/function.json-decode.php)
$reponse_array = json_decode($reponse_json, true);
// Si 'resultat' == 1, le message a été envoyé correctement
if($reponse_array['resultat'])
{
echo 'Message envoyé avec succès ! Identifiant unique : '.$reponse_array['id'].'';
}
else
{
echo 'Erreur(s) : '.$reponse_array['erreurs'].'';
}
?>
Donc, vous allez devoir modifier deux trois truc sinon cela serait trop simple.
Alors la key vous la trouverez dans la rubrique
Ensuite le numéro si vous voulez un numéro qui soit toujours le même il vous suffit de mettre dans " destinataires ", sinon avec une variable, chose que on verra à la partie suivante.
Le type vous mettez, premium ou lowcost.
Ensuite le message simplement c'est le message qui sera envoyée au destinataire.
L'expéditeur peut être modifié seulement pour les messages premium.
Donc on va allez créer la table, pour ma part comme il s'agit d'un tutoriel je vais réduire au maximum.
Donc il faudra obligatoirement un pseudo que j’appellerais " name " dans la table.
Ensuite logiquement le numéro " number ".
Puis le code qui sera envoyer en SMS sera aussi stocké dans la BDD pour vérifié " c_valid ".
Pour terminé " valid " 0 = non vérifié et 1 = vérifié.
Après à vous d'adaptez suivant vos besoins la table et le code PHP.
Donc je vais vous montrez comment adapter ce script pour en faire une vérification de code SMS pour une inscription.
Donc on commence par l'inscription moi l’utilisateur a seulement à renseigné le numéro de téléphone et un pseudo.
Pour ma part cette page s'appel " valid.php " c'est la redirection de " inscription.php " quand le membre clique sur le bouton.
Alors la key vous la trouverez dans la rubrique
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
.Ensuite le numéro si vous voulez un numéro qui soit toujours le même il vous suffit de mettre dans " destinataires ", sinon avec une variable, chose que on verra à la partie suivante.
Le type vous mettez, premium ou lowcost.
Ensuite le message simplement c'est le message qui sera envoyée au destinataire.
L'expéditeur peut être modifié seulement pour les messages premium.

Donc on va allez créer la table, pour ma part comme il s'agit d'un tutoriel je vais réduire au maximum.
Donc il faudra obligatoirement un pseudo que j’appellerais " name " dans la table.
Ensuite logiquement le numéro " number ".
Puis le code qui sera envoyer en SMS sera aussi stocké dans la BDD pour vérifié " c_valid ".
Pour terminé " valid " 0 = non vérifié et 1 = vérifié.

Après à vous d'adaptez suivant vos besoins la table et le code PHP.

Donc je vais vous montrez comment adapter ce script pour en faire une vérification de code SMS pour une inscription.
Donc on commence par l'inscription moi l’utilisateur a seulement à renseigné le numéro de téléphone et un pseudo.
Pour ma part cette page s'appel " valid.php " c'est la redirection de " inscription.php " quand le membre clique sur le bouton.
PHP:
<?php
$bdd = new PDO('mysql:host=HOTEMYSQL;dbname=VOTREBDD','VOTREUTILISATEUR','VOTREPASS');
function chaine_aleatoire($nb_car, $chaine = 'azertyuiopqsdfghjklmwxcvbn123456789')
{
$nb_lettres = strlen($chaine) - 1;
$generation = '';
for($i=0; $i < $nb_car; $i++)
{
$pos = mt_rand(0, $nb_lettres);
$car = $chaine[$pos];
$generation .= $car;
}
return $generation;
}
$name;$number;$code;
if(isset($_POST['name'])){
$name=$_POST['name'];
}if(isset($_POST['number'])){
$number=$_POST['number'];
$code = chaine_aleatoire(6);
echo '<h2>Inscription validée.</h2>';
if($i = $bdd->prepare('
INSERT INTO users(name,number,c_valid,valid)
VALUES(:name,:number,:c_valid,0)')
){
$i->bindParam(':name', $name);
$i->bindParam(':number', $number);
$i->bindParam(':c_valid', $code);
@$i->execute();
$message = '';
}else{
$message = "";
}
}
// Données du message
$data = Array(
'key' => 'fe01ce2a7fbac8fafaed7c982a04e229',
'destinataires' => $number,
'type' => 'premium',
'message' => 'Merci de votre inscription, votre code de vérification est : ' . $code,
'expediteur' => 'Paradise',
'date' => ''
);
foreach($data as $parametre => $valeur)
{
$requete .= $parametre.'='.urlencode($valeur).'&';
}
$reponse_json = file_get_contents('http://www.spot-hit.fr/api/envoyer/sms?'.$requete);
$reponse_array = json_decode($reponse_json, true);
if($reponse_array['resultat'])
{
echo 'Message de vérification envoyé avec succès !';
}
else
{
echo 'Erreur(s) : '.$reponse_array['erreurs'].'';
}
?>
Donc c'est bien beau oui mais je vais quand même expliqué le code pour ceux qui ne comprennent pas.
PHP:
$bdd = new PDO('mysql:host=HOTEMYSQL;dbname=VOTREBDD','VOTREUTILISATEUR','VOTREPASS');
Donc c'est simple cela définit que la variable que j'appelle bdd sera la connexion à votre base de donnée
PHP:
function chaine_aleatoire($nb_car, $chaine = 'azertyuiopqsdfghjklmwxcvbn123456789')
{
$nb_lettres = strlen($chaine) - 1;
$generation = '';
for($i=0; $i < $nb_car; $i++)
{
$pos = mt_rand(0, $nb_lettres);
$car = $chaine[$pos];
$generation .= $car;
}
return $generation;
}
La on créer notre fonction que on appel " chaine_aleatoire " qui vous l'avez comprit servira à générer le code SMS.
PHP:
$name;$number;$code;
if(isset($_POST['name'])){
$name=$_POST['name'];
}if(isset($_POST['number'])){
$number=$_POST['number'];
$code = chaine_aleatoire(6);
Maintenant on créer nos variables name, number et code. Code étant un génération de notre fonction avec 6 caractères.
PHP:
echo '<h2>Inscription validée.</h2>';
if($i = $bdd->prepare('
INSERT INTO users(name,number,c_valid,valid)
VALUES(:name,:number,:c_valid,0)')
){
$i->bindParam(':name', $name);
$i->bindParam(':number', $number);
$i->bindParam(':c_valid', $code);
@$i->execute();
$message = '';
}else{
$message = "";
}
}
La on inscrit simplement l'utilisateur dans notre table.
La suite vous la connaissez déjà, c'est le script que je vous ai fournit qui envoie le SMS.
Puis simplement la page que j'appel " done.php " qui est la redirection de " verif.php " lorsque l'utilisateur a mit son pseudo et code.
La suite vous la connaissez déjà, c'est le script que je vous ai fournit qui envoie le SMS.
Puis simplement la page que j'appel " done.php " qui est la redirection de " verif.php " lorsque l'utilisateur a mit son pseudo et code.
PHP:
<?php
$name = $_POST['name'];
$bdd = new PDO('mysql:host=mysql.hostinger.fr;dbname=u271727568_data','u271727568_user','zalare40');
$req = $bdd->query('SELECT * FROM users WHERE name = "' . $name .'"');
while($donnees = $req->fetch())
{
$getcode = $donnees['c_valid'];
$code = $_POST["code"];
if($getcode == $code)
{
echo 'Compte validé';
$req = $bdd->prepare('UPDATE users SET valid = :valid WHERE name = "' . $name .'"');
$req->execute(array(
'valid' => 1));
}
else
{
echo 'Code incorect';
}
}
?>
Donc maintenant je vous explique le code.
PHP:
$req = $bdd->query('SELECT * FROM users WHERE name = "' . $name .'"');
La on créer une requête qui demande de sélectionné tout pour l'utilisateur est égale à notre pseudo fournit avant.
PHP:
if($getcode == $code)
{
echo 'Compte validé';
$req = $bdd->prepare('UPDATE users SET valid = :valid WHERE name = "' . $name .'"');
$req->execute(array(
'valid' => 1));
}
La on regarde si notre variable créer juste avant qui consistait à aller chercher le code dans notre base est le même que l'utilisateur a fournit. Si c'est le cas, on met " valid " à 1.
Sinon on met un message d'erreur.
Sinon on met un message d'erreur.
PHP:
else
{
echo 'Code incorect';
}
}
?>
Sans mettre sa validation à 1.
Donc ce tutoriel ce termine ici, si vous ne comprenez pas avant de me contacter je vous invite à télécharger la source fournit.
Si vous ne comprenez toujours pas n'hésiter pas à me MP.
Merci à @Posi ; @DEVR0 ; @Snizah GTP
Donc ce tutoriel ce termine ici, si vous ne comprenez pas avant de me contacter je vous invite à télécharger la source fournit.
Si vous ne comprenez toujours pas n'hésiter pas à me MP.
Merci à @Posi ; @DEVR0 ; @Snizah GTP