<Palmito's blog src="Boite" alt="Biscuit" />

Mes découvertes, mes penses bêtes, un peu de Html / css / php / sql, GNU/Linux et d'informatique en général

Captcha simple avec la fonction date de php


Palmito, le 2020-02-24 21:33:47

Il y a quelques temps, alors que je cherchais à mettre en place un petit captcha simple, je suis tombé sur le blog de Paloo qui a eu la superbe idée de se servir des mois de l'année pour son captcha.

Je me suis largement inspiré de son idée pour ce petit captcha qui va se servir de la fonction php date.

Ce n'est pas très classe et plutôt dans un bon vieux style procédural mais ca fonctionne à priori plutôt bien...l'idée est là, a adapter / améliorer.

Voici le code, n'étant pas très complexe et assez basique dans l'état, tout est dans un seul fichier.



<?php
// on récupère la date via la fonction date (on peut aussi changer le format attendu)
$dateCaptcha = date('d/m/Y');
// on commence les vérifications, si le formulaire est envoyé..
if($_POST['send']){
    // Si l'input captcha n'est pas vide
    if(!empty($_POST['captcha'])){
        // on compare la date stocké dans la variable $dateCaptcha avec la valeur entrée par l'utilisateur
        if($_POST['captcha'] == $dateCaptcha){
            // succès, on envoie un message mais c'est aussi ici qu'on va traiter un éventuel envoie en bdd par exemple
            $msg = 'captcha validé';
        }else{
            // message d'erreur si captcha non valide
            $msg =  'captcha non valide...';
        }
    }else{
        // message d'erreur si captcha vide
        $msg = 'captcha vide';
    }
}

?>



<form action="" method="post">
    <!-- on récupère le message d'erreur ou de succès -->
    <?= $msg ?>
    <div>
        <label for="captcha">Entrez la date pour valider le captcha (format accepté 01/01/1970)</label><br />
        <input type="text" name="captcha">
    </div>
    <div>
        <input type="submit" name="send">
    </div>
</form>


Comme pour le précédant captcha, c'est assez simple, mais fonctionnel.

Commentaires

Pas de commentaire pour cet article

Quelque chose à dire?