Bonjour, je reviens à mon problème ci-dessus.
Je récapitule:
1/ ouvrir le fichier "choix.php" et choisir quelque chose dans les champs
2/ cliquer sur "Récapitulatif", la ligne de choix est visible
3/ retourner vers "choix.php" pour refaire une autre commande et alors une seconde ligne s'ajoutera, ou bien "finaliser"
Toutes les lignes peuvent être supprimées avec le lien "Supprimer"
Et c'est ici que ça se corse!!! Dès que je clique sur "Finaliser", la dernière ligne de mon choix vient s'ajouter à toutes les autres, sans que je ne demande quoi que ce soit
Pourquoi? Dans ma boucle
foreach
, j'ai ajouté l'instruction
unset()
à différents endroits et avec différentes variables, mais rien ne change. J'ai aussi essayé sans l'instruction
unset()
Voici le code de mes fichiers.
ATTENTION: ce code est épuré, il n'y a aucun contrôle. Ceci pour ne pas surcharger ce message
Merci beaucoup pour votre aide (je n'ai plus de cheveux, tellement que je me les arrache
)
Fichier 1 - "choix.php"
<?php session_start(); ?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Choix matériel</title>
</head>
<body id="haut">
<?php process_si_contact_form();
if (isset($_SESSION['ctform']['error']) && $_SESSION['ctform']['error'] == true):
elseif (isset($_SESSION['ctform']['success']) && $_SESSION['ctform']['success'] == true): endif; ?>
<form method="post" action="#haut" id="contact_form" />
<input type="hidden" name="do" value="contact" enctype="text/plain" />
<table class="table" align="center" border="0" cellspacing="0" cellpadding="0">
<tr valign="middle">
<td align="left"><label> Matériel</label></td>
<td><select name="ct_ski" readonly="readonly" value=""/>
<?php $ski = isset($_REQUEST['ct_ski']) ? $_REQUEST['ct_ski'] : NULL; ?>
<?php $attr = 'selected="selected"'; ?>
<option value="1" <?php echo $ski == 1 ? $attr : ''; ?> >Skis adulte</option>
<option value="2" <?php echo $ski == 2 ? $attr : ''; ?> >Skis junior</option>
<option value="3" <?php echo $ski == 3 ? $attr : ''; ?> >Skis enfant</option>
</select>
</td>
<td align="left"><label>Chaussures</label></td>
<td><select name="ct_boots" readonly="readonly" value=""/>
<?php $boots = isset($_REQUEST['ct_boots']) ? $_REQUEST['ct_boots'] : NULL; ?>
<?php $attr = 'selected="selected"'; ?>
<option value="1" <?php echo $boots == 1 ? $attr : ''; ?> >Adulte</option>
<option value="2" <?php echo $boots == 2 ? $attr : ''; ?> >Junior</option>
<option value="3" <?php echo $boots == 3 ? $attr : ''; ?> >Enfant</option>
</select>
</td>
</tr>
<tr valign="middle">
<td align="left"><label> Longueur du ski</label></td>
<td><select name="ct_longski" readonly="readonly" value=""/>
<?php $longski = isset($_REQUEST['ct_longski']) ? $_REQUEST['ct_longski'] : NULL; ?>
<?php $attr = 'selected="selected"'; ?>
<option value="1" <?php echo $longski == 1 ? $attr : ''; ?> >75 cm</option>
<option value="2" <?php echo $longski == 2 ? $attr : ''; ?> >120 cm</option>
<option value="3" <?php echo $longski == 3 ? $attr : ''; ?> >165 cm</option>
</select>
</td>
<td align="left"><label>Pointure</label></td>
<td><select name="ct_pointure" readonly="readonly" value=""/>
<?php $pointure = isset($_REQUEST['ct_pointure']) ? $_REQUEST['ct_pointure'] : NULL; ?>
<?php $attr = 'selected="selected"'; ?>
<option value="1" <?php echo $pointure == 1 ? $attr : ''; ?> >20,0</option>
<option value="2" <?php echo $pointure == 2 ? $attr : ''; ?> >25,0</option>
<option value="3" <?php echo $pointure == 3 ? $attr : ''; ?> >30,0</option>
</select>
</td>
</tr>
</table>
<br /><center><input type="submit" value="Récapitulatif" /></center></form>
</body>
</html>
<?php
function process_si_contact_form()
{
$_SESSION['ctform'] = array();
if ($_SERVER['REQUEST_METHOD'] == 'POST' && @$_POST['do'] == 'contact') {
foreach($_POST as $key => $value) {
if (!is_array($key)) {
if ($key != 'ct_message') $value = strip_tags($value);
$_POST[$key] = htmlspecialchars(stripslashes(trim($value)));
}
}
$ski = @$_POST['ct_ski'];
$boots = @$_POST['ct_boots'];
$longski = @$_POST['ct_longski'];
$pointure = @$_POST['ct_pointure'];
$errors = array();
if (isset($GLOBALS['DEBUG_MODE']) && $GLOBALS['DEBUG_MODE'] == false) {
}
$skilist = array("Skis adulte" => 1, "Skis junior" => 2, "Skis enfant" => 3);
$skimail = array_search($ski, $skilist);
$bootslist = array("Adulte" => 1, "Junior" => 2, "Enfant" => 3);
$bootsmail = array_search($boots, $bootslist);
$longskilist = array("75 cm" => 1, "120 cm" => 2, "165 cm" => 3);
$longskimail = array_search($longski, $longskilist);
$pointurelist = array("20,0" => 1, "25,0" => 2, "30,0" => 3);
$pointuremail = array_search($pointure, $pointurelist);
if (sizeof($errors) != 0) {
goto err;
}
$_SESSION['ct_ski'] = $skimail;
$_SESSION['ct_boots'] = $bootsmail;
$_SESSION['ct_longski'] = $longskimail;
$_SESSION['ct_pointure'] = $pointuremail;
?>
<a href="recap.php"></a>
<script type="text/javascript">;
window.location.replace("recap.php");
</script>
<?php err:
if (sizeof($errors) == 0) {
$_SESSION['ctform']['error'] = false;
$_SESSION['ctform']['success'] = true;
} else {
$_SESSION['ctform']['ct_ski'] = $ski;
$_SESSION['ctform']['ct_boots'] = $boots;
$_SESSION['ctform']['ct_longski'] = $longski;
$_SESSION['ctform']['ct_pointure'] = $pointure;
foreach($errors as $key => $error) {
$_SESSION['ctform'][$key] = "<span style=\"font-weight: bold; color: #f00\">$error</span>";
}
$_SESSION['ctform']['error'] = true;
}
}
}
$_SESSION['ctform']['success'] = false;
?>
Fichier 2 - "recap.php"
<?php session_start(); ?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Récapitulatif</title>
<style>
pre {
display: block;
font-family: "Courier New", monospace;
font-stretch: normal;
font-size: 12px;
white-space: pre;
}
</style>
</head>
<body>
<?php
$select = array();
$select['type'] = $_SESSION['ct_ski'];
$select['longueur'] = $_SESSION['ct_longski'];
$select['boots'] = $_SESSION['ct_boots'];
$select['pointure'] = $_SESSION['ct_pointure'];
if(!isset($_SESSION['panier']))
{
$_SESSION['panier'] = array();
$_SESSION['panier']['type'] = array();
$_SESSION['panier']['longueur'] = array();
$_SESSION['panier']['boots'] = array();
$_SESSION['panier']['pointure'] = array();
}
array_push($_SESSION['panier']['type'],$select['type']);
array_push($_SESSION['panier']['longueur'],$select['longueur']);
array_push($_SESSION['panier']['boots'],$select['boots']);
array_push($_SESSION['panier']['pointure'],$select['pointure']);
$type = $_SESSION['panier']['type'];
$longueur = $_SESSION['panier']['longueur'];
$boots = $_SESSION['panier']['boots'];
$pointure = $_SESSION['panier']['pointure'];
echo "Voici la récapitulatif de votre demande :<br><br>
<pre>
Type de | Longueur | Type de | Pointure des
matériel | des skis | chaussures | chaussures</pre>";
foreach ($type as $key => $value) {
unset($value);
$type[$key] = str_pad($type[$key], 20);
$longueur[$key] = str_pad($longueur[$key], 19);
$boots[$key] = str_pad($boots[$key], 22);
$pointure[$key] = str_pad($pointure[$key], 15);
echo "<pre> " .$type[$key] . " | " . $longueur[$key] . " | " . $boots[$key] . " | " . $pointure[$key] . "</pre>";
}
?>
<hr>
<a href="choix.php">Cliquez ici pour ajouter du matériel</a>
<hr>
<a href="confirm.php">Cliquez ici pour finaliser votre réservation</a>
<hr>
<a href="supprimer.php">Cliquez ici pour supprimer tout</a>
</body>
</html>
Fichier 3 - "confirm.php"
<?php session_start(); ?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Confirmation</title>
<style>
pre {
display: block;
font-family: "Courier New", monospace;
font-stretch: normal;
font-size: 12px;
white-space: pre;
}
</style>
</head>
<body>
<?php
$select = array();
$select['type'] = $_SESSION['ct_ski'];
$select['longueur'] = $_SESSION['ct_longski'];
$select['boots'] = $_SESSION['ct_boots'];
$select['pointure'] = $_SESSION['ct_pointure'];
if(!isset($_SESSION['panier']))
{
$_SESSION['panier'] = array();
$_SESSION['panier']['type'] = array();
$_SESSION['panier']['longueur'] = array();
$_SESSION['panier']['boots'] = array();
$_SESSION['panier']['pointure'] = array();
}
array_push($_SESSION['panier']['type'],$select['type']);
array_push($_SESSION['panier']['longueur'],$select['longueur']);
array_push($_SESSION['panier']['boots'],$select['boots']);
array_push($_SESSION['panier']['pointure'],$select['pointure']);
$type = $_SESSION['panier']['type'];
$longueur = $_SESSION['panier']['longueur'];
$boots = $_SESSION['panier']['boots'];
$pointure = $_SESSION['panier']['pointure'];
echo "Voici la récapitulatif de votre demande :<br><br>
<pre>
Type de | Longueur | Type de | Pointure des
matériel | des skis | chaussures | chaussures</pre>";
foreach ($type as $key => $value) {
unset($value);
$type[$key] = str_pad($type[$key], 20);
$longueur[$key] = str_pad($longueur[$key], 19);
$boots[$key] = str_pad($boots[$key], 22);
$pointure[$key] = str_pad($pointure[$key], 15);
echo "<pre> " .$type[$key] . " | " . $longueur[$key] . " | " . $boots[$key] . " | " . $pointure[$key] . "</pre>";
}
?>
<hr>
<a href="supprimer.php">Cliquez ici pour supprimer tout</a>
<hr>
Ici formulaire pour données personnelles et réception d'un e-mail</a>
</body>
</html>
Fichier 4 - "supprimer.php"
<?php session_start();
$vide = false;
if(!isset($_SESSION['panier']['verrouille']) || $_SESSION['panier']['verrouille'] == false)
{
if(isset($_SESSION['panier']))
{
unset($_SESSION['panier']);
if(!isset($_SESSION['panier']))
{
$vide = true;
}
}
else
{
$vide = "inexistant";
}
}
?>
<html>
<head>
<script type="text/javascript">
window.location.replace("choix.php");
</script>
</head>
</html>