1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
|
<?php
session_start();
?>
<html>
<head>
<title>Travaux code php</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<?php
// Cette condition est prise en compte quand:
// * l'utilisateur arrive sur la page pour la première fois
// * si il a cliqué sur le lien "annuler" lors du récapitulatif
// * Si sa saisie a été complété et ajouté dans la base
// Elle réinitialise les variables en mémoire
if(!isset($_SESSION['form_values']) || $_GET['clear']=="yes") {
$_SESSION['form_values'] = Array(step=>1, nom=>NULL, prenom=>NULL);
}
// Fonction qui affiche le formulaire en mode saisie ou dur, ça évite de réécrire ce formulaire, et empeche le paté dans les conditions qui vont suivre après
function displayForm($n=NULL, $val1=NULL, $val2=NULL) {
switch($n) {
default:
$_SESSION['form_values']['step'] = "1"; // Etape 1 saisie
echo '<form method="post" action="">
<table width="300px">
<tr>
<td>Nom : </td>
<td><input type="text" name="nom" size="40" value="'.$val1.'" /></td>
</tr><tr>
<tr>
<td>Prénom : </td>
<td><input type="text" name="prenom" size="40" value="'.$val2.'" /></td>
</tr><tr>
<td><input type="reset" name="effacer" value="Effacer" /></td>
<td><input type="submit" name="ajout" value="Suivant »" /></td>
</tr></table><input type="hidden" name="formSendedChecker" value="yes" />
</form>';
break;
case 2:
$_SESSION['form_values']['step'] = "2"; // Etape 2 récapitulatif des saisies
echo '<u>Récapitulatif des saisies</u><br> ';
echo 'Nom: <b>'.$val1.'</b><br>
Prénom: <b>'.$val2.'</b>';
echo '<br><br><a href="dev.php?clear=yes">- Annuler -</a> <a href="dev.php?modify=yes">- Modifier -</a> <a href="dev.php">- Insérer dans la base -</a>';
break;
}
}
if(isset($_POST['formSendedChecker'])) { // $formSendedChecker est l'input caché dans l'étape 1 du formulaire, ce qui suit ne s'éxécute donc que si on passe de l'étape 1 à 2
$err = false;
if(empty($_POST['nom'])) { $err = true; $errInfos = "Veuillez renseigner le champ nom<br>"; }
if(empty($_POST['prenom'])) { $err = true; $errInfos .= "Veuillez renseigner le champ prénom"; }
if($err==true) { // Si nom ou prénom est vide, on affiche l'indication d'une erreur et le formulaire
echo "<span style='color: red;'>".$errInfos."</span>";
displayForm("1", $_POST['nom'], $_POST['prenom']);
}
else { // Sinon, on stock les données saisies et on passe à l'étape 2
$_SESSION['form_values']['nom'] = $_POST['nom'];
$_SESSION['form_values']['prenom'] = $_POST['prenom'];
displayForm("2", $_POST['nom'], $_POST['prenom']);
}
}
else { // Si pas de $formSendedChecker
if($_SESSION['form_values']['step']==1) { // Ici l'affichage initial de la page, donc le formulaire vide (étape 1)
displayForm("1");
}
elseif($_SESSION['form_values']['step']==2) { // A partir de l'étape 2
if(isset($_GET['modify'])) { // Si l'utilisateur a demandé à modifier son formulaire, on retourne à l'étape 1
displayForm("1",$_SESSION['form_values']['nom'], $_SESSION['form_values']['prenom']);
}
else { // Sinon on passe à l'insertion dans la base
echo "Insertion dans la base du nom: <b>".$_SESSION['form_values']['prenom']."</b> et du prénom: <b>".$_SESSION['form_values']['nom']."</b>";
unset($_SESSION['form_values']); // Une fois insérées, les données du formulaire peuvent être effacées
}
}
}
?>
</body>
</html> |
Partager