Tutoriel PHP - MySQL | Vérification par SMS

Boosterz'

Premium
Inscription
26 Mai 2015
Messages
455
Réactions
500
Points
4 393
1443630723-header.png


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


1443635653-intro.png


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.

1443636173-ressources.png


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.


Ensuite il vous faudra un fournisseur de SMS, donc comme j'ai dis moi j'utilise que je vous conseil.

1443638096-script.png


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.

9S5gk6.png


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é.

cb790e486d4c56d1bb0675e6cce51b12.png


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

eQn9gg.png


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.

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.
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
 

xRwizz

Ancien staff
Inscription
12 Juin 2013
Messages
18 462
Réactions
5 761
Points
21 368
1443630723-header.png


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


1443635653-intro.png


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.

1443636173-ressources.png


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.


Ensuite il vous faudra un fournisseur de SMS, donc comme j'ai dis moi j'utilise que je vous conseil.

1443638096-script.png


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.

9S5gk6.png


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é.

cb790e486d4c56d1bb0675e6cce51b12.png


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

eQn9gg.png


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.

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.
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
Le tutoriel est très bien expliquer, très propre :ok:
Merci à toi :ok:
 

JustForGamingCom

Développeur WEB / Fondateur : JustForModding.com
Premium
Inscription
25 Février 2013
Messages
1 854
Réactions
988
Points
10 106
1443630723-header.png


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


1443635653-intro.png


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.

1443636173-ressources.png


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.


Ensuite il vous faudra un fournisseur de SMS, donc comme j'ai dis moi j'utilise que je vous conseil.

1443638096-script.png


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.

9S5gk6.png


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é.

cb790e486d4c56d1bb0675e6cce51b12.png


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

eQn9gg.png


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.

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.
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

Merci du tuto, je vais essayer sa dans la journée ! ;)
 
Haut