Il s'agit pour un trésorier d'enregistrer des cotisations.
Dans un premier fichier (enregistrecotis1.php) on choisit le cotisant : on détermine la variable de session "idmembrechoisi". Puis on passe au fichier du formulaire que voici : "enregistrecotis2.php".
Voici l'erreur : l'enregistrement des données se fait dès l'arrivée sur cette deuxième page, avant que le formulaire soit rempli.
Je dois mal comprendre le "if(isset($submit)){" qui est placé en fin de page, avant l' INSERT. Ne devrait-il pas lancer l'INSERT seulement quand il y a submit ?
Quelqu'un peut-il m'aider ?
Code : Tout sélectionner
<?php session_start();
var_dump($_SESSION);
$pseudo =isset($_SESSION['pseudo']) ?$_SESSION['pseudo']:"";
$mp =isset($_SESSION['mp']) ?$_SESSION['mp']:"";
$nom =isset($_POST['nom']) ?$_POST['nom']:"";
$prenom =isset($_POST['prenom']) ?$_POST['prenom']:"";
$email =isset($_POST['email']) ?$_POST['email']:"";
$jour =isset($_POST['jour']) ?$_POST['jour']:"";
$mois =isset($_POST['mois']) ?$_POST['mois']:"";
$idannee =isset($_POST['idannee']) ?$_POST['idannee']:"";
$tel =isset($_POST['tel']) ?$_POST['tel']:"";
$submit=isset($_POST['submit'])?$_POST['submit']:"";
$_POST['idmembre']= isset($_POST['idmembre'])?$_POST['idmembre']:"";
$idcourant= isset($_SESSION['idcourant'])?$_SESSION['idcourant']:"";
$idmembrechoisi= isset($_SESSION['idmembrechoisi'])?$_SESSION['idmembrechoisi']:"";
$montant =isset($_POST['montant']) ?$_POST['montant']:"";
$remarque =isset($_POST['remarque']) ?$_POST['remarque']:"";
$datec =isset($_POST['datec']) ?$_POST['datec']:"";
$dateenr =isset($_POST['dateenr']) ?$_POST['dateenr']:"";
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>accueil</title>
<meta http-equiv="content-type" content="text/html; charset=utf8" />
<link rel="StyleSheet" href="style2.css" type="text/css">
</head>
<body>
<div class="bloc_page">
<?php
include("bandeauhaut2.php");
include ("fonction.php");
include ("bonjour4.php");
?>
<p><a href="indextsr6.php">Retour au menu</a></p>
<?php
$req= $bdd->prepare('SELECT * FROM membres WHERE idmembre=:idmembre') ;
$req->execute(array('idmembre'=>$_SESSION['idmembrechoisi']));
while ($donnees=$req->fetch()){
echo "<h1>".htmlspecialchars($donnees['prenom'])." ".htmlspecialchars($donnees['nom'])."</h1>";
var_dump($_SESSION);
}
?>
<!--------------------------------COTISATION----------------------------------------- -->
<h5>Cotisations des années précédentes : </h5>
<table>
<tr>
<td>année</td> <td>montant</td> <td>remarque </td>
</tr>
<?php
$req=$bdd->prepare('
SELECT * from membres m
INNER JOIN mpmcotisation c ON c.idmembre=m.idmembre
WHERE c.montant>0 AND m.idmembre=:idmembre ORDER BY c.idannee');
$req->execute(array('idmembre'=>$_SESSION['idmembrechoisi']));
while ($base =$req->fetch()){
?>
<tr><td><?php echo htmlspecialchars($base['idannee']);?></td>
<td><?php echo htmlspecialchars($base['montant']);?> </td>
<td><?php echo htmlspecialchars($base['remarque']);?></td>
<?php
}
?>
</tr>
</table>
<br /><br />
<a href="indextsr6.php">Retour </a></p>
</div>
<br />
<!-- -----------------------ENREGISTREMEN>T D UNE NOUVELLE--------------COTISATION----------------------------------------- -->
<?php
$req=$bdd->prepare('select * from membres WHERE idmembre =:idmembrechoisi') ;
$req->execute(array('idmembrechoisi'=>$_SESSION['idmembrechoisi']));
while ($resultat=$req->fetch()){
echo "<h1>Enregistrer la nouvelle cotisation de ".$resultat['prenom']." ".$resultat['nom']."</h1>";
}
?>
<div class="boitelarge">
<form method="post" action="enregistrecotis2.php">
<p>n° de la saison (2018/19 = 4)
<input type="text" name="idannee"></p>
<p>Date d'enregistrement (date du jour) </p>
<p> <?php
$dateenr = date("Y-m-d");
Print(" $dateenr");
?></p>
<p>Date du chèque ou du paiement</p>
<input type="date" name="datec" value="<?php echo $datec;?>"> <br>
<p>Montant </p>
<input type="text" name="montant"></p>
<p>Remarque</p>
<input type="textarea" name="remarque" rows="5"></textarea><br> <br>
<input type="submit" name="submitx" value="Enregistrer la cotisation" class="submit">
</form>
<?php
if(isset($submit)){
$req = $bdd -> prepare('INSERT INTO cotisation ( idannee,idmembre, dateenr,datec, montant,remarque)
VALUES (:idannee,:idmembre,:dateenr,:datec,:montant,:remarque)');
$req->execute(array('idannee'=>$idannee,'idmembre'=>$_SESSION['idmembrechoisi'],
'dateenr'=>$dateenr,'datec'=>$datec,'montant'=>$montant,'remarque'=>$remarque));
var_dump($_SESSION); ?>
<h3>Vous pouvez maintenant</h3>
<ul>
<li><a href="enregistrecotis1.php">enregistrer la cotisation d'un autre membre </a> </li>
<li><a href="afflescotisations2016.php">afficher les cotisations 2016/17</a> </li>
<li><a href="indextsr6.php">effectuer une autre action</a> </li>
</ul>
<?php
}
?>
</div>
</body>
</html>