Formulaire simple + traitement du formulaire

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.

Page de Formulaire

<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 :

Premier Formulaire

Login

Mot de passe

Page traitant le formulaire

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