r@phblues Globe-trotter biologique | Je fais un script de gestion d'évènements avec agenda pour un intranet.
J'ai programmé un formulaire pour poster des nouveaux évenements. le fichier admin.php, contenant le formulaire de saisie est le suivant :
Code :
- <?php
- // Aucune mise en cache
- header("Cache-Control: no-store, no-cache, must-revalidate" );
- /* Fichier de config d'accès à la base de données */
- require ("../confbdd.php" );
- // Récupération des variables
- $modifevok = $_GET['modifev']; //Validation de modification d'un Evènement
- $deleteev = $_GET['deleteev']; //Suppression d'un Evènement
- ?>
- <html>
- <head>
- <title>Gestion des Evènements</title>
- <link href='../styleadmin.css' rel='stylesheet' type='text/css'>
- </head>
- <body>
- <!-- Formulaire d'ajout d'evenements -->
- <center>
- <table class="deco-table" cellpadding='5' cellspacing='0'>
- <tr>
- <td class='deco3' colspan='2'>Ajout d'évènements</td>
- </tr>
- <tr>
- <td class='nav' colspan='2'>
- <a href="exevent.php">Evènements passés</a> |
- <a href="eventencours.php">Evènements en cours</a> |
- <a href="../admin.php">Menu général</a>
- </td>
- </tr>
- <?php
- if($modifevok != "" )
- {
- echo "<tr><td colspan='2'>\n";
- echo "<center>Modification effectuée avec succès !</center>\n";
- echo "</td></tr>\n";
- }
- if($deleteev != "" )
- {
- // lancement du lien mysql
- $mysql_link = mysql_connect($host_mysql, $login_mysql, $password_mysql);
- $supprev = requete("DELETE FROM events WHERE id='".$deleteev."'" );
- echo "<tr><td colspan='2'>\n";
- echo "<center>Suppression de l'évènement n°".$deleteev." effectuée avec succès !</center>\n";
- echo "</td></tr>\n";
- mysql_close($mysql_link);
- }
- ?>
- <tr>
- <td width=15% align='right'>
- <form name='eventform' method='POST' action='doevent.php'>
- <br>Titre :
- </td>
- <td width=85%><br><input type='text' name='titre' size='80' class='form-zonetexte'></td>
- </tr>
- <tr>
- <td width=15% align='right'><br>Contenu :</td>
- <td width=85%><br><textarea name='event' cols='60' wrap='virtual' rows='5' class='form-zonetexte'></textarea></td>
- </tr>
- <tr>
- <td width=15% align='right'><br>Date evt : </td>
- <td width=85%><br><input type='text' name='dateevt' size='10' class='form-zonetexte'> (format jj/mm/aaaa)</td>
- </tr>
- <tr>
- <td colspan='2' align='center'><input type='submit' value='Valider' class='form-valider'><br>
- </form>
- <!-- Fin du Formulaire d'ajout d'evenements -->
- </td>
- </tr>
- </table>
- </center>
- </body>
- </html>
|
Et le fichier doevent.php, qui fait la requête d'insertion dans la BDD :
Code :
- <?php
- // Insertion d'un évènement dans l'agenda
- // Aucune mise en cache
- header("Cache-Control: no-store, no-cache, must-revalidate" );
- // Fichier d'accès à la base de données
- require ("../confbdd.php" );
- // Récupération des variables page précédente
- $titreev=$_POST['titre'];
- $event=$_POST['event'];
- $dateevt=$_POST['dateevt'];
- // Formatage des dates
- $dateinsert=date("dmY" );
- $evjour = subStr($dateevt,0,2);
- $evmois = subStr($dateevt,3,2);
- $evannee = subStr($dateevt,6,4);
- $dateevt = $evannee.'-'.$evmois.'-'.$evjour;
- // Lancement du lien mysql
- $mysql_link = mysql_connect($host_mysql, $login_mysql, $password_mysql);
- if($mysql_link)
- {
- // Requête d'insertion
- $insertevt = requete("INSERT INTO events VALUES ('','$titreev','$event','$dateinsert','$dateevt')" );
- mysql_close($mysql_link);
- }
- else echo "Erreur de connexion à la base de données.";
- // Redirection vers les evenements en cours
- header("Location: eventencours.php" );
- ?>
|
Le problème est que l'insertion ne marche qu'une fois sur 2... Après validation, ca me fait parfois comme si tout marchait normalement, mais rien n'est inséré dans la Base. Alors que certaines fois, avec le même script, tout fonctionne. La transmission des variables avec POST marche bien dans tous les cas. Je l'ai testé en affichant le contenu des variables dans doevent.php, sans faire la redirection.
Auriez vous une idée d'ou ca peut venir ? Message édité par r@phblues le 06-08-2004 à 09:57:10 ---------------
Tibet libre !
|