L'exemple présenté ci-apres est simplifié. Une page de login en général implique une requête vers une Base de données, et à ce titre, celle ci est vulnérable à des injections SQL. Cet exemple n'est donc qu'un exemple à visée pédagogique.
<html>
<head>
<title>Formulaire HTML
</head>
<body>
<h2>Premier Formulaire
<form name="premierFormulaire" method="post" action="traite_formulaire.php">
<p>Login<input name="login" type="text" value="" ></p>
<p>Mot de passe <input name="mdp" type="password" value="" ></p>
<input name="initBtn" type="reset" value="ReInitialiser">
<input name="connectBtn" type="submit" value="Se connecter">
</form>
</html>
On obtient ceci :
La page cible est un fichier php qui pourra récupérer les valeurs des champs de saisies via la variable globale $_POST (resp. $_GET si mode GET dans le formulaire). L'authentification pourra se faire dans ce code, normalement inaccessible à l'utilisateur lambda (il vaudrait mieux, car les mots de passe sont en clair dans le fichier php.)
Exemple
<html>
<body>
<h1>Affiche les informations envoyées par le formulaire</h1>
<?php
$logins = array( "toto" => "abcdef", "titi" => "123456", "tutu" => "motdepasse", "tarata" => "medor");
echo '<p>voici ce qui a été saisi dans le formulaire</p>';
print_r($_POST);
if( ! array_key_exists( $_POST['login'] , $logins ) )
// teste si la valeur du champ login est une clé du tableau associatif $logins, if not => user unknown
echo "<p>Erreur d'authentification</p>\n" ;
else
if ( $_POST['mdp'] === $logins[$_POST['login']] ) // === effectue une comparaison exacte
echo "<p>Bienvenue M. " . $_POST['login'] . "!</p>\n" ;
else
echo "<p>Erreur d'authentification</p>\n" ;
?>
<p>___ Apres Code PHP ___</p>
</body>
</html>
Coloration syntaxique réalisée par Prism consistant en un fichier CSS & un fichier Javascript.
Dernière maj : 26/04/2014 - Contact: erwan.tranvouez at polytech.univ-mrs.fr