Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2466 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Cherche algorithme de Luhn en PHP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Cherche algorithme de Luhn en PHP

n°186532
Dost67
Posté le 30-07-2002 à 20:32:31  profilanswer
 

Après de vaines recherches je ne le trouve toujours pas. Je l'ai en ASP mais je n'arrive pas à le traduire en PHP... Je le donne en ASP au cas où il y ait des personnes sachant me faire la traduction :

Code :
  1. FUNCTION validCCNumber( ccnumber )
  2.   IF ccnumber = "" THEN
  3.     validCCNumber = FALSE
  4.   ELSE
  5.   isEven = False
  6.   digits = ""       
  7.   for i = Len( ccnumber ) To 1 Step -1
  8.   if isEven Then
  9.     digits = digits & CINT( MID( ccnumber, i, 1) ) * 2
  10.   Else               
  11.     digits = digits & CINT( MID( ccnumber, i, 1) )
  12.   End If           
  13.   isEven = (Not isEven)
  14.   Next
  15.   checkSum = 0
  16.   For i = 1 To Len( digits) Step 1
  17.     checkSum = checkSum + CINT( MID( digits, i, 1 ) )       
  18.   Next
  19.   validCCNumber = ( ( checkSum Mod 10) = 0 )
  20.   END IF
  21. End Function

mood
Publicité
Posté le 30-07-2002 à 20:32:31  profilanswer
 

n°186557
stef_dober​mann
Personne n'est parfait ...
Posté le 30-07-2002 à 21:28:17  profilanswer
 

simple question pour ne pas mourir idiot
 
ca sert a koi un algorithme de Luhn ?


---------------
Tout à commencé par un rêve...
n°186694
bozocarzu
Posté le 31-07-2002 à 01:15:50  profilanswer
 

en java :
 

function Teste_numero()
{
  var numero = document.forms[0].elements[0].value;
  var totalcarte=0;
  var dnum=0;
  var test=0;
  if (numero.length < 13) {
 alert ('Nombre de chiffres entrés incorrect');
 document.forms[0].elements[0].focus();
 }
 else
 {
  for ( i = numero.length; i >= 1 ;  i--)
  {
    test=test+1;
 num = numero.charAt(i-1);
    if ((test % 2) != 0)
       totalcarte=totalcarte+parseInt(num)
    else {
       dnum=parseInt(num)*2;
       if (dnum >= 10)
          totalcarte=totalcarte+1+dnum-10
       else
          totalcarte=totalcarte+dnum;
    }
   
  }
  if ((totalcarte % 10) != 0){
       alert('Numéro de carte non valide: somme='+ totalcarte);
       document.forms[0].elements[0].focus();
       return (false);
  }else{
       alert ('Carte acceptée : somme='+ totalcarte);
       return(true);
  }
}
}
 
</script>

n°186696
zion
Plop
Posté le 31-07-2002 à 01:35:26  profilanswer
 

stef_dobermann a écrit a écrit :

simple question pour ne pas mourir idiot
 
ca sert a koi un algorithme de Luhn ?




 

Citation :

Voici un algorithme utile quand l'on souhaite, tester sans connexion à un système bancaire, la validité d'un numéro de carte, ou tout du moins limiter les erreurs possibles.


http://www.asp-magazine.com/fr/jav [...] cs/tr3.asp


---------------
Informaticien.be - Lancez des défis à vos amis
n°186788
gaya
Posté le 31-07-2002 à 09:49:00  profilanswer
 
n°187306
Dost67
Posté le 31-07-2002 à 15:52:36  profilanswer
 

Bozocarzu : c'est du JavaScript que tu m'as donné, pas du Java. Mais merci quand même. Je pense pouvoir traduire ça en PHP. C cool ! Thanks.
 
Gaya : je suis allé sur Nexen avant de venir sur ce forum. En fait j'ai pas compris le script !

n°187562
bozocarzu
Posté le 31-07-2002 à 19:38:58  profilanswer
 

Dost67 a écrit a écrit :

Bozocarzu : c'est du JavaScript que tu m'as donné, pas du Java. Mais merci quand même. Je pense pouvoir traduire ça en PHP. C cool ! Thanks.
 
Gaya : je suis allé sur Nexen avant de venir sur ce forum. En fait j'ai pas compris le script !




 
Quand je disait java, je pensait au js, c'est l'habitude que j'ai pris de dire java pour le js !
Avant je ne faisait la difference entre les deux

n°188229
Dost67
Posté le 01-08-2002 à 19:57:45  profilanswer
 

Le voilà, je l'ai enfin traduit et c'est OK :

Code :
  1. function validCCNumber($ccnumber) {
  2.   $totalcarte = 0;
  3.   $dnum = 0;
  4.   $test = 0;
  5.   $number_len = strlen($ccnumber);
  6.   if ($number_len < 13) {
  7.     // Nombre de chiffres entrés incorrect
  8.     return false;
  9.   }
  10.   else {
  11.     for ($i=$number_len; $i>=1; $i--) {
  12.       $test += 1;
  13.       $num = substr($ccnumber, ($i-1), 1);
  14.       if (($test % 2) != 0) {
  15.         $totalcarte += (int)$num;
  16.       }
  17.       else {
  18.         $dnum = (int)$num * 2;
  19.         if ($dnum > 10) {
  20.           $totalcarte += 1 + $dnum - 10;
  21.         }
  22.         else {
  23.           $totalcarte += $dnum;
  24.         }
  25.       }
  26.     }
  27.     if (($totalcarte % 10) != 0) {
  28.       // Numéro de carte non valide
  29.       return false;
  30.     }
  31.     else {
  32.       // Carte acceptée
  33.       return true;
  34.     }
  35.   }
  36. }

n°1701534
prometeea
Posté le 13-03-2008 à 10:13:47  profilanswer
 

Je déterre ce topic pour la bonne cause :)  
Y a plein de traitements inutile dans ton code je pense, m'enfin depuis le temps ça a dut évoluer...
 
Je poste ici ma solution car pour ceux qui recherche une fonction de luhn en PHP c'est une des premières pages que l'on trouve.
Je me suis tout bêtement appuyé sur les explications de wikipédia.
La fonction de luhn sert à vérifier le code de carte bleue, le numéro de SIRENE/SIRET et bien d'autre...
 
http://www.prometee-creation.com/t [...] n-php.html


Message édité par prometeea le 13-03-2008 à 10:14:10

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Cherche algorithme de Luhn en PHP

 

Sujets relatifs
[PHP] Site multilangue : les methodes.[PHP] Peut être une question con ;) mettre les liens en variable ???
Je cherche un script php pour générer des images ![PHP / MYSQL ] Comment qu on fait avec ce type de requetes ? [RESOLU]
PHP : problème pour upload de fichier[PHP] Athentification sur un site
[PHP] array null[PHP] ... les meilleurs guides sur le net
Votre avis sur mon appli de galerie d'image en PHP[PHP] Installation de php....
Plus de sujets relatifs à : Cherche algorithme de Luhn en PHP


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR