Code PHP pour vérifier code RIO
Afin de vérifier le code de contrôle d'un RIO, il est possible d'utiliser le code PHP suivant (envoi depuis un formulaire du code RIO et du numéro de téléphone mobile en méthode POST) :
<?php
$rio = $_POST["coderio"];
$mobile = $_POST["mobile"];
if ($rio == "" or $mobile == "") echo "Un des champs est vide";
else if (strlen($rio) != 12) echo "Le code RIO doit contenir 12 caractères exactement";
else {
$rio = strtoupper($rio);
$operateur = substr($rio, 0, 2);
$typecontrat = substr($rio, 2, 1);
$refclient = substr($rio, 3, 6);
if ($typecontrat != "P" && $typecontrat != "E") echo "Le code RIO est erroné, l'identification du contrat est faux";
$ordre = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+";
$res = array(0, 0, 0);
$tmp = $operateur . $typecontrat . $refclient . $mobile;
for ($n = 0;$n < 19;$n++) {
$pos = strpos($ordre, substr($tmp, $n, 1));
$res[0] = ($res[0] + $pos) % 37;
$res[1] = ((2 * $res[1]) + $pos) % 37;
$res[2] = ((4 * $res[2]) + $pos) % 37;
}
$clecalculee = substr($ordre, $res[0], 1) . substr($ordre, $res[1], 1) . substr($ordre, $res[2], 1);
if (substr($rio, 9) != $clecalculee) echo "Le code RIO est erroné";
else echo "<em>!!! Le code RIO est BON !!!</em>";
}
?>
Commentaires
Merci beaucoup pour ce bout de code !
Je me suis permis de m'en inspirer pour comprendre pourquoi je n'arrivais pas à faire suivre ma ligne ailleurs, et je pense que c'est à cause de ces calculs de RIO qui sont faussé si on a déjà porté le numéro une fois !
Pour le voir en fonctionnement c'est par là http://www.grid-france.fr/rio.php
je n'arrive pas avoir mon code rio de chez free pour retourner chez orange
Pouvez vous m'aider
0618409860
Pour répondre à la personne ci dessus :
C'est le 3179 pour obtenir son code rio sauf pour prixtel qui a un numéro différent de mémoire)
En espérant t'avoir aidé.
Mon rio semble bon et pourtant toutes mes demande de portabilité sont annulées, aujourd'hui mon numéro a été résilié (merci a l'offre open qui est un vrai piège) mais le rio semble toujours bon.
Pensez-vous que je puisse récupérer mon numéro ? Il s'agit d'un numéro pro très important.