Vous êtes sur la page 1sur 4

Titre : V�rifie la validit� de Cartes Bancaires et Num�ros de Siret

URL : https://phpsources.net/code_s.php?id=407
Auteur : netphotos

Date �dition : 13 Juin 2008

Date mise � jour : 23 Aout 2019

Rapport de la maj:

- fonctionnement du code v�rifi�

*/
/*---------------------------------------------------------------*/

// Fontion de pr�v�rification de la carte bancaire


function Luhn($numero,$longueur){
// On passe � la fonction la variable contenant le num�ro � v�rifier
// et la longueur qu'il doit imp�rativement avoir

if ((strlen($numero)==$longueur) && preg_match("#[0-9]{".$longueur."}#i",


$numero)){
// si la longueur est bonne et que l'on n'a que des chiffres

/* on d�compose le num�ro dans un tableau */


for ($i=0;$i<$longueur;$i++){
$tableauChiffresNumero[$i]=substr($numero,$i,1);
}

/* on parcours le tableau pour additionner les chiffres */


$luhn=0; // clef de luhn � tester
for ($i=0;$i<$longueur;$i++){
if ($i%2==0){ // si le rang est pair (0,2,4 etc.)
if(($tableauChiffresNumero[$i]*2) > 9){
// On regarde si son double est > � 9
$tableauChiffresNumero[$i]=($tableauChiffresNumero[$i]*2)-9;
//si oui on lui retire 9
// et on remplace la valeur
// par ce double corrig�
}
else{

$tableauChiffresNumero[$i]=$tableauChiffresNumero[$i]*2;
// si non on remplace la valeur
// par le double
}
}
$luhn=$luhn+$tableauChiffresNumero[$i];
// on additionne le chiffre � la clef de luhn
}

/* test de la divition par 10 */


if($luhn%10==0){
return true;
}
else{
return false;
}
}
else{
return false;
// la valeur fournie n'est pas conforme (caract�re non num�rique ou mauvaise
// longueur)
}
}
?>

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

<?php
$cb = '';
if ( Luhn($cb,16) )
echo 'N� de carte valide';
else echo 'N� de carte invalide';
// Meme principe avec le N� de siret
?>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
nombre = '8763'
n = len(nombre)
i = 0

while n > 0:
n -= 1
i += int(nombre[n])
if n - 1 < 0:
continue
else:
n -= 1
if int(nombre[n])*2 > 9:
i += int(nombre[n])*2-9
else:
i += int(nombre[n])*2

if i%10 == 0:
print('Code bon.')
else:
print('Code errone.')
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

<!DOCTYPE html>
<html lang="fr">
<body>

<p>Bonjour!</p>
<p>Bienvenue sur phpsources</p>

<p>Translate this page in your preferred language:</p>

<div id="google_translate_element"></div>

<script type="text/javascript">
function googleTranslateElementInit() {
new google.translate.TranslateElement({pageLanguage: 'en'},
'google_translate_element');
}
</script>

<script type="text/javascript"
src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementIni
t"></script>

<p>Vous pouvez traduire le contenu de cette page en s�lectionnant une


langue dans le menu d�roulant.</p>

</body>
</html>
neocodjo@gmail.com

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XX

<?php

if(preg_match("#^[a-z0-9_-]{4,16}$#i","prenom"))
{
echo"valide<br>";
}
else{
echo"invalide<br>";
}
if(preg_match("#^[a-z0-9_-]{3,16}$#i","nom"))
{
echo"valide<br>";
}
else{
echo"invalide<br>";

if(isset($_POST['mail']))
{
$_POST['mail']= htmlspecialchars($_POST['mail']);
if(preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#",
$_POST['mail']))

{
echo'l\'adresse'.$_POST['mail'].'est un num�ro valide<br>';
}
else{
echo'l\'adresse'.$_POST['mail'].'n\'est pas valide<br>';
}
}
if(isset($_POST['telephone']))
{
$_POST['telephone']= htmlspecialchars($_POST['telephone']);
if(preg_match("#^7[0678]([-. ]?[0-9]{2,3}){3}$#",$_POST['telephone']))
{
echo'le'.$_POST['telephone'].'est un num�ro valide<br>';
}
else{
echo'le'.$_POST['telephone'].'n\'est pas valide<br>';
}
}
?>

Vous aimerez peut-être aussi