begin process at 2012 02 15 08:28:29
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Sécurité & Cryptage

 > CAPTCHA NON VISUELLE

CAPTCHA NON VISUELLE


 Information sur la source

Note :
9,5 / 10 - par 4 personnes
9,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Sécurité & Cryptage Classé sous :captcha, protection, antiflood, antispam, antirobot Niveau :Débutant Date de création :30/04/2007 Date de mise à jour :07/05/2007 13:20:20 Vu / téléchargé :8 922 / 402

Auteur : kankrelune

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (18)
Ajouter un commentaire et/ou une note


 Description

En réponse à...

http://www.phpcs.com/code.aspx?ID=42504

et parce que c'est chiant de proposer une correction du codes des autres dans les commentaires (indentation, coloration)... si ça gène les admin qu'il n'hésitent pas à me le dire pour que je ne réitère pas... ... .. .

Donc comme son nom l'indique c'est une captcha non visuelle... un coup il faut faire une opération simple (addition, soustraction ou multiplication) l'opération étant affichée soit avec des chiffres et l'opérateur de calcul soit en toutes lettres, un autre coup il faut trouver le caractère se trouvant à la position donnée ou alors il faut trouver la lettre se trouvant entre les deux lettres énoncées... .. .

Avantage : est compatible avec les navigateur en mode texte pour les malvoyants
Désavantage : plus facile à casser qu'une bonne captcha visuelle, encore faut il que le bot soit fait spécifiquement pour ce code, cela reste donc largement suffisant pour la plupart des sites (système semblable utilisé par php.net)

Source

  • <?php
  • /*
  • * Created on 7 mai 07
  • *
  • * @autor : The Kankrelune
  • * @copyright : The WebFaktory © 2006/2007
  • *
  • */
  • function _captchaLettres()
  • {
  • $str = 'abcdefghijklmnopqrstuvwxyz';// on crée la chaine
  • $str .= strtoupper($str);
  • $length = mt_rand(5,12);
  • $str = substr(str_shuffle($str),0,$length);
  • $pos = mt_rand(2,$length-1); // on choisi la position
  • if(!isset($_SESSION))// on met le résultat en session puis on renvois la question
  • session_start();
  • $_SESSION['captchaResult'] = $str[$pos-1];
  • return 'Dans <b>'.$str.'</b> quelle lettre se trouve entre <b>'.$str[$pos-2].'</b> et <b>'.$str[$pos].'</b>';
  • }
  • function _captchaCalculChiffres()
  • {
  • $operators = array('-','+','*');
  • $operator = $operators[array_rand($operators)];// on récup&egrave;re l'opérateur de calcul
  • $nb1 = rand(1, 10);
  • $nb2 = ($operator === '-') ? mt_rand(1, $nb1) : mt_rand(1, 10); // on évite les résultats négatif en cas de soustraction
  • $calcul = $nb1.' '.$operator.' '.$nb2;
  • if(!isset($_SESSION))// on met le résultat en session puis on renvois la question
  • session_start();
  • eval('$_SESSION[\'captchaResult\'] = strval('.$nb1.$operator.$nb2.');');
  • return 'Combien font <b>'.$nb1.' '.($operator === '*' ? 'x' : $operator).' '.$nb2.'</b>';
  • }
  • function _captchaCalculLettres()
  • {
  • $operators = array('-' => 'moins', '+' => 'plus', '*' => 'fois');
  • $operator = array_rand($operators);
  • $op = $operators[$operator]; // on récup&egrave;re l'opérateur de calcul
  • $num = array(
  • 'zero', 'un', 'deux', 'trois',
  • 'quatre', 'cinq', 'six', 'sept',
  • 'huit', 'neuf', 'dix'
  • );
  • $nb1 = array_rand($num);
  • $nb2 = array_rand($num);
  • if($operator === '-' && $nb1 < $nb2)
  • while($nb1 < ($nb2 = array_rand($num))); // on évite les résultats négatif en cas de soustraction
  • if(!isset($_SESSION)) // on met le résultat en session puis on renvois la question
  • session_start();
  • eval('$_SESSION[\'captchaResult\'] = strval('.$nb1.$operator.$nb2.');');
  • return 'Combien font <b>'.$num[$nb1].' '.$op.' '.$num[$nb2].'</b>';
  • }
  • function _captchaAlphaNum()
  • {
  • $str = md5(time()); // création de la chaine
  • $length = mt_rand(5,12);
  • $str = substr($str,0,$length);
  • $pos = mt_rand(1,$length); // on choisi la position
  • if(!isset($_SESSION))// on met le résultat en session puis on renvois la question
  • session_start();
  • $_SESSION['captchaResult'] = $str[$pos-1];
  • if($pos === 1)
  • $pos = 'le premier';
  • elseif($pos === 2)
  • $pos = 'le second';
  • elseif($pos === $length)
  • $pos = 'le dernier';
  • elseif($pos === ($length-1))
  • $pos = 'l\'avant dernier';
  • else
  • $pos = 'le '.$pos.'&egrave;me';
  • return 'Quel est '.$pos.' caract&egrave;re dans <b>'.$str.'</b>';
  • }
  • function getCaptcha()
  • {
  • $functions = array(
  • '_captchaLettres', '_captchaCalculChiffres',
  • '_captchaCalculLettres', '_captchaAlphaNum'
  • );
  • $captcha = $functions[array_rand($functions)];
  • return $captcha();
  • }
  • function checkCaptcha( $postVarName = 'captchaResult', $caseInsensitive = false)
  • {
  • if(!isset($_SESSION))
  • session_start();
  • if(!isset($_POST[$postVarName],$_SESSION['captchaResult']))
  • return false;
  • if($caseInsensitive === true && !is_numeric($_SESSION['captchaResult']))
  • {
  • $_POST[$postVarName] = strtolower($_POST[$postVarName]);
  • $_SESSION['captchaResult'] = strtolower($_SESSION['captchaResult']);
  • }
  • return ($_POST[$postVarName] === $_SESSION['captchaResult']);
  • }
  • ?>
<?php

 
 /*
  * Created on 7 mai 07
  *
  * @autor : The Kankrelune
  * @copyright : The WebFaktory © 2006/2007
  * 
  */

function _captchaLettres()
{
    $str = 'abcdefghijklmnopqrstuvwxyz';// on crée la chaine
    $str .= strtoupper($str);
    $length = mt_rand(5,12);
    $str = substr(str_shuffle($str),0,$length);
    $pos = mt_rand(2,$length-1); // on choisi la position
    
    if(!isset($_SESSION))// on met le résultat en session puis on renvois la question
        session_start();
    
    $_SESSION['captchaResult'] = $str[$pos-1];
    
    return 'Dans <b>'.$str.'</b> quelle lettre se trouve entre <b>'.$str[$pos-2].'</b> et <b>'.$str[$pos].'</b>'; 
}

function _captchaCalculChiffres()
{
    $operators = array('-','+','*');
    $operator = $operators[array_rand($operators)];// on récup&egrave;re l'opérateur de calcul
    
    $nb1 = rand(1, 10);
    $nb2 = ($operator === '-') ? mt_rand(1, $nb1) : mt_rand(1, 10); // on évite les résultats négatif en cas de soustraction
    
    $calcul = $nb1.' '.$operator.' '.$nb2;
    
    if(!isset($_SESSION))// on met le résultat en session puis on renvois la question
        session_start();
    
    eval('$_SESSION[\'captchaResult\'] = strval('.$nb1.$operator.$nb2.');');

    return 'Combien font <b>'.$nb1.' '.($operator === '*' ? 'x' : $operator).' '.$nb2.'</b>';
}

function _captchaCalculLettres()
{
    $operators = array('-' => 'moins', '+' => 'plus', '*' => 'fois');
    $operator = array_rand($operators);
    $op = $operators[$operator]; // on récup&egrave;re l'opérateur de calcul
    
    $num = array(
                'zero', 'un', 'deux', 'trois',
                'quatre', 'cinq', 'six', 'sept',
                'huit', 'neuf', 'dix'
                );

    $nb1 = array_rand($num);
    $nb2 = array_rand($num);
    
    if($operator === '-' && $nb1 < $nb2)
        while($nb1 < ($nb2 = array_rand($num))); // on évite les résultats négatif en cas de soustraction
    
    if(!isset($_SESSION)) // on met le résultat en session puis on renvois la question
        session_start();

    eval('$_SESSION[\'captchaResult\'] = strval('.$nb1.$operator.$nb2.');');

    return 'Combien font <b>'.$num[$nb1].' '.$op.' '.$num[$nb2].'</b>';
} 

function _captchaAlphaNum()
{
    $str = md5(time()); // création de la chaine
    $length = mt_rand(5,12);
    $str = substr($str,0,$length);
    $pos = mt_rand(1,$length); // on choisi la position
    
    if(!isset($_SESSION))// on met le résultat en session puis on renvois la question
        session_start();
    
    $_SESSION['captchaResult'] = $str[$pos-1];
    
    if($pos === 1)
        $pos = 'le premier';
            elseif($pos === 2)
                $pos = 'le second';
                    elseif($pos === $length)
                        $pos = 'le dernier';
                            elseif($pos === ($length-1))
                                $pos = 'l\'avant dernier';
                                    else
                                        $pos = 'le '.$pos.'&egrave;me';
    
    return 'Quel est '.$pos.' caract&egrave;re dans <b>'.$str.'</b>';
}


function getCaptcha()
{
    $functions = array(
                    '_captchaLettres',  '_captchaCalculChiffres',
                    '_captchaCalculLettres', '_captchaAlphaNum'
                    );
    
    $captcha = $functions[array_rand($functions)];
    return $captcha();
}


function checkCaptcha( $postVarName = 'captchaResult', $caseInsensitive = false)
{
    if(!isset($_SESSION))
        session_start();
	
	if(!isset($_POST[$postVarName],$_SESSION['captchaResult']))
		return false;
	
	if($caseInsensitive === true && !is_numeric($_SESSION['captchaResult']))
	{
		$_POST[$postVarName] = strtolower($_POST[$postVarName]);
		$_SESSION['captchaResult'] = strtolower($_SESSION['captchaResult']);
	}
	
	return ($_POST[$postVarName] === $_SESSION['captchaResult']);
}

?>

 Conclusion

Voila c'est très simple mais au moins c'est propre... après il suffit de faire... .. .

<?php echo getCaptcha(); ?>

Inutile de vous expliquer comment faire la vérification (enfin j'espère) le résultat étant stocké dans $_SESSION['captchaResult']

^_^

@ tchaOo°

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

30 avril 2007 14:57:15 :
correction d'une faute de frappe... .. .
30 avril 2007 16:17:29 :
Petite modif au niveau de _captchaCalcul() $max était bloqué à 32 (c'est ça le copié collé) je l'ais mis à 100 ce qui est déjà trop à mon gout... par défaut c'est 10 ce qui est suffisant je pense... pas besoin d'obliger l'internaute à sortir sa calculatrice... lol... .. .
02 mai 2007 15:21:59 :
Ajout d'une captcha calcul en toute lettre et modification de la captcha lettres de façon à ce que le ce soit le caractère situé entre le caractère X et le caractère Y qui soit demandé... j'ai également viré les paramètres $min et $max des fonctions ces derniers étant peu utiles... .. .
02 mai 2007 15:35:45 :
Petite modif pour l'énoncé de la position du caractère dans _captchaAlphaNum()... .. .
04 mai 2007 00:50:04 :
suppression d'une ligne inutile qu'on se demande ce qu'elle foutait là... .. .
07 mai 2007 13:20:20 :
Modification des captcha calcul... le résultat était stocké sous forme d'int mais les données post (ou get) étant toujours des string ça pouvais poser problème lors de la vérification si on utilisait l'opérateur de comparaison typé... ajout d'une fonction (bool) checkCaptcha( [(str) postVarName, [(bool) caseInsensitiv]]) et d'un zip avec exemple d'utilisation... .. .

 Sources du même auteur

HTTP_BUILD_QUERY() POUR PHP 4
Source avec Zip Source avec une capture CAPTCHA VISUELLE
FONCTION DE SÉCURITÉ CONTRE LA POLLUTION DES VARIABLES ET LE...

 Sources de la même categorie

Source avec Zip Source avec une capture ACCÈS, ESPACE MEMBRE AVEC INSCRIPTION ET DÉSINSCRIPTION PAR ... par stephelle
Source avec Zip CRYPTAGE REVERSIBLE par Mokost
Source avec Zip Source avec une capture CREATION DE COMPTE AVEC CRYPTAGE ET ESPACE DE CONNEXION SEC... par bm1982
Source avec Zip PROTÉGEZ VOS LIENS DE TÉLÉCHARGEMENT PAR MOT DE PASSE ET/OU ... par unlien
CRYPTAGE/DECRYPTAGE MCRYPT par sephirothgeek

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture FORMULAIRE VERS COURRIEL BASIQUE AVEC CONTRÔLE CAPTCHA ANTI ... par cod57
Source avec Zip Source avec une capture CAPTCHA VISUELLE par kankrelune
Source avec Zip Source avec une capture CAPTCHA CALCUL / CARACTÈRE À LA XIÈME POSITION D'UNE CHAÎNE. par WanaDien
Source avec Zip Source avec une capture CAPTCHA ( ANTI-SPAM, ANTI-ROBOT ) par WanaDien
ANTI SPAM ET ANTI ROBOT : SECURISATION DE FORMULAIRE SANS C... par tkof

Commentaires et avis

Commentaire de neigedhiver le 30/04/2007 15:59:22

Forcément... C'est propre...

Commentaire de kankrelune le 30/04/2007 16:18:39

Merci mais c'est pas pour ce que c'était à faire... .. . ;o)

@ tchaOo°

Commentaire de Teclis01 le 30/04/2007 17:06:04

Joli code dommage que cela soit si facilement ratatinable (si je peux m'exprimer ainsi ^^)
En tout cas une bonne idée/initiative qui mérite un petit coucou :)
(l'admin est pas là son pc est mort :p)

Commentaire de neigedhiver le 30/04/2007 17:15:09

Ratatinable ? J'aime bien ce mot.

Donc ce captcha est facilement ratatinable ? Ratatinable, peut-être, mais tu précises "facilement" ? Je veux bien voir la démo ;)

Commentaire de Teclis01 le 30/04/2007 17:49:15

tu recuperes la source html de la page ensuite
Pour les caractères:

tu recherches la chaine:
"Quel est le "
tu recupere l'entier qui suit
tu recherches la chaine:
caractère dans <b>
tu récupères la chaine de char jusqu'a </b>

Pour les nombres:

tu recherches la chaine:
"Combien font : <b>"
on recupere l'entier qui suit
on vire l espace
on recupere le signe
on vire l espace
on recupere l'entier
Enfin on "evalue" le $int1$operator$int2


A moins de m'être planté (c'est possible) c'est comme ceci que j'essayerais ^^

Commentaire de webdeb le 01/05/2007 00:27:38

Très bonne idée Kankrelune

Commentaire de coucou747 le 01/05/2007 01:39:51 administrateur CS

ce captcha evite simplement les bots cons et non cibles... t'autais pu ajouter un truc plus modulable genre tableau pointeur sur fonction et random sur ce tableau....
$a=array('captcha1', 'questions_bidons');
ect...
un peu comme ce que j'avais fait http://www.phpcs.com/codes/QUESTIONS-ANTI-FLOOD_41248.aspx

Commentaire de kankrelune le 01/05/2007 12:15:46

@ coucou... c'est ce que j'ai fais... un coup c'est le lettre X qui est demandée, un coup le charactère alphanumérique Y et un coup le résultat de l'opération... .. .

Biensur ce genre de captcha ne résistera pas à un bot ciblé mais il en va de même pour la plupart des captcha... cependant c'est amplement suffisant pour la plupart des sites... php.net utilise cette méthode et ça a pas l'air de poser problème... .. .

@ tchaOo°

Commentaire de neigedhiver le 01/05/2007 19:57:15

La meilleure façon de lutter contre le spam, c'est encore la modération a priori. C'est lourd et fastidieux, certes, mais quoi de mieux qu'un humain peut éliminer une inscription, un commentaire, un post d'un bot... ?
J'aurais pu être sarcastique et dérisoire :
- le meilleur moyen de ne pas avoir de spam sur son site, c'est encore de ne pas avoir de site
C'est un peu le même principe que :
- le meilleur moyen de ne pas avoir de virus ou de griller son pc par la foudre, c'est de ne pas le brancher
- le meilleur moyen de ne pas recevoir de spm dans sa boite mail, c'est de ne pas avoir d'adresse email
- et ainsi de suite...

Donc pour revenir dans le domaine de la raison, une combinaison de plusieurs captcha permet certainement d'éviter une invasion massive. Tout comme les adresses mails sur SF.net qui sont affichées de manières différentes alétoirement, pour lutter contre la collecte d'adresses... Mais il est certainement très facile de faire un robot qui va lire spécifiquement ces adresses mails... Bref, on en revient au même point...

Commentaire de coucou747 le 02/05/2007 01:28:25 administrateur CS

faut en parler a turing... un bon captcha qui resiste aux captchas non cibles c'est un captcha soit visuellement complexe, soit textuellement possedant quelques astuces de brouillages, et qui possederait de nombreuses questions, de facon a decourager la programmation (reverse) d'une fonction par question... de plus, plusieurs questions similaires pour des reponses differentes serait un bon piege pour les bots...

http://sam.zoy.org/pwntcha/

Commentaire de kankrelune le 02/05/2007 15:11:20

Ouep... en attendant ça n'a pas l'air de gêner php.net... donc peu de chance que ça gène un site perso... Je pense que tant qu'on ne cherche pas à protéger un site classé secret défense (et à ce moment là une captcha laisse moi rire) il faut trouver un juste milieu entre je-m'en-foutisme et paranoïa inutile... .. . ;o)

Dernière mise à jour... ajout d'une captcha calcul en toute lettre et modification de la captcha lettres de façon à ce que le ce soit le caractère situé entre le caractère X et le caractère Y qui soit demandé... .. .

@ tchaOo°

Commentaire de aze555666 le 08/05/2007 19:21:37

J'aime bien le principe. En plus d'être compatible avec les navigateurs en mode texte, c'est compatible avec les lecteurs automatiques pour mal/non voyants.
Et même si c'est facile de faire un bot spécifique, il n'y a aucun chance, étant donné la multiplicité des fonctions, qu'un bot général puisse le passer.
Petu-être peut-on encore améliorer en mettant un nombre aléatoire d'espaces entres les termes de la question, voire dans la chaine où l'utilisateur doit trouver telle lettre (pas plus de 5 à chaque fois, il faut quand meêm que ça reste lisible).
Du coup, le bot ne peut plus prendre le numéro d'un caratère à rechercher (par exemple) juste derriere la chaine 'quel est le' ou juste avant 'eme caractère?'. Ni rechercher facilement, une fois ce numéro trouvé.
Je met 9 (parce que ce ne sera jamais parfait. Je ne pense pas qu'u Captha puisse l'être d'ailleurs).

ps: j'ai fait quelques clics sur tes pubs, si on ne le fait pas, personne ne gagnera jamais rien à ce service.

Commentaire de Kmikaze le 08/11/2007 22:29:20 9/10

Je mets la note de 10/10 pour la simplicité, juste un code.

Bon et bien je suis assez novice en php, j'ai créer entierement mon site, mon livre d'or aussi, et je souhaiterais y mettre ce captcha pour éviter tout les spams des robots...
Le seul soucis c'est que j'y connais pas grand chose en PHP, j'ai réussis a faire mon livre d'or grace aux tutos, et ce captcha, je vois pas comment l'utiliser.

Tu dis :Inutile de vous expliquer comment faire la vérification (enfin j'espère) le résultat étant stocké dans $_SESSION['captchaResult']

Bah je suis désolé mais si tu pouvais m'expliquer comment l'installer, quel codes je dois mettre dans mon code php du livre d'or, si je dois rajouter des tables...

Tu serais d'une énorme aide
Merci d'avance

Commentaire de kankrelune le 11/11/2007 23:39:56

Pour la vérification utilise checkCaptcha()...

if(checkCaptcha('leNomDeMonChampDeFormulaire') === true)
{
    /*
    * Le code gérant l'insertion du message
    */
}
else // le code soumis est mauvais gestion de l'erreur

@ tchaOo°

Commentaire de babsbabs le 11/01/2008 10:07:15

j'ai essayer d'integrer le script mais sans resultat :

fonction:

function check(form) {

if (isNaN(document.getElementById('altnr').value))
    {
    alert("Numéro de téléphone erroné");
    return false;
    }else if (document.getElementById('altnr').value.length < 9)
    {
    alert("Numéro de téléphone erroné");
    return false;
    }else if (document.getElementById('altnr').value.substr(0,1)=="0" || document.getElementById('altnr').value.substr(0,1)=="1" ||document.getElementById('altnr').value.substr(0,1)=="2" || document.getElementById('altnr').value.substr(0,1)=="3"||document.getElementById('altnr').value.substr(0,1)=="4"||document.getElementById('altnr').value.substr(0,1)=="5"||document.getElementById('altnr').value.substr(0,1)=="7"||document.getElementById('altnr').value.substr(0,1)=="8"||document.getElementById('altnr').value.substr(0,1)=="9")
    {
    alert("Numéro de téléphone erroné");
    return false;
    }
if(checkCaptcha('captcha') === false)
{
   alert("Mauvaise réponse");
    return false;
}
else
submit;
}
}

ensuite:
<?php echo getCaptcha(); ?> : <input class="input" type="text" size="20" name="captcha" />

  <p style="text-align: center;"><font face="Arial"><input value="Envoyer SMS" type="submit" ><p style="text-align: center;"><br>


Mon numero est bien verifier mes mpas mon captcha

Commentaire de kankrelune le 11/01/2008 11:40:17

Normal... tu confond javascript et php... langage interprété coté client et langage interprété coté serveur... .. .

@ tchaOo°

Commentaire de armenak le 29/06/2008 22:00:57 10/10

Cher kankrelune, j'utilise ce code avec beaucoup de bonheur, je l'ai adapté à ma page sans problème et traduit en anglais. Merci pour tous les commentaires que tu as mis, ils sont très "pédagogiques et bienvenus.
Je n'ai pas eu autant de bonheur avec le captcha visuel que tu as proposé ailleurs, pas eu le courage de lutter pour le faire fonctionner.Merci encore.

Commentaire de kankrelune le 30/06/2008 10:01:47

Mais de rien... si ça plait et si c'est utile moi ça me va... .. .

Pour le captcha visuel hésite pas si tu as des questions... .. .

@ tchaOo°

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Protection page [ par SatanCorporation ] Salut a tous !!!!!sur mon site web je voudrais créé une fonction qui me permettrait de protecger une page de mon site.Je voudrias que le code de la pa Protection page web [ par SatanCorporation ] donc tu vois ce que je veux faire c une protection de page web.je vopudrais que ma page resemble a ca ://file.php&lt;?include('protect.php');echo "Apr protection download [ par bioff ] Comment empêcher un download direct avec l'URL et ainsi outrepasser le script "mot de passe"...D'avance,Merci.bioff Protection d'html URGENT! [ par Yoteco ] Voilà,J'ai un ti problème... J'ai fais une fenetre dans laquelle n'importe qui peut poster un commentaire sur le site. Le tt est stocker dans une base Protection des fichiers php [ par costou ] Bonjour,Je suis un professionnel qui vend des applications Internet. Elles consistent à informatiser la gestion du système d'information (clients, com protection de page [ par krapoulos ] Bonjour,Voila cela fait 2 mois que je rame pour trouver un script.Je m'explique, j'ai une page (index) qui se trouve apres avoir passer allopass ( dc Protection d' image original [ par overbrave ] Salut Dieu du code,Je sais qu'il existe toute sorte de script ou fonction permettant de bloquer le clique droit, etc ...Ces fonction sont senc&#233; n protection d'un dossier [ par hooss ] salut ! je suis nouveau dans ce site, et ceci est mon premier message je me demande si qcq sait comment prot&#233;ger un fichier ou un repertoire dans Protection d'un site inpi ? [ par laubro ] Bonjourj'ai developp&#233; un module de vente/reservation de chambre d'h&#244;tel en php, &#224; int&#233;grer dans n'importe quel site d'h&#244;tels. protection de certaine page [ par mike501 ] bonjour , je vien de creer mon site mais je voudrai que certaine soit&nbsp;masquer que personne ne puisse y acceder a part moi comment faire regarder&


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,401 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales