Insertion dans ma base avec Refresh

Dario -  
 A.Nonymous -
Bonjour,

j'ai fais un petit formulaire pour tester mes connaissances en bases de données. J'ai réussi à faire la connexion entre le formulaire et la base. Et j'arrive à insérer les données. Seulement, chaque fois que la page se charge, une ligne s'insère aussi (dès que j'actualise la page, il y a insertion dans la base).

Rappel: J'ai mis le formulaire et le traitement dans le même fichier !!!
Ce que je veux, c'est que l'insertion ne se fasse qu'au clic sur "SUBMIT"

Voici un petit aperçu de mon code :


<?php
$server="localhost";
$user="root";
$pwd="";
$conn=@mysql_connect($server,$user,$pwd);

If ($conn == FALSE)
{
die ("connexion impossible<br/>");
}
echo ("Bon!! La connexion a réussie<br/>");

//SELECTION DE LA BASE DE DONNEES
$bdd="gestionbase";
$connect_base = @mysql_select_db($bdd);

If ($connect_base == FALSE)
{
die ("Sélection BASE Impossible<br/>");
}
echo ("Sélection BASE Réussie haan<br/>");

//INSERE LES DONNEES DE LA BASE

$matricule=$_POST["matricule"];
$name=$_POST["id"][0];
$prename=$_POST["id"][1];

$sql = "INSERT INTO agent (matricule_agent, nom_agent, prenom_agent) values ('$matricule', '$name', '$prename')";
mysql_query ($sql, $conn);

echo (réussi);

?>


<form method="post" name="inscrire_agent" action="Enregistrement_Agent.php" style="width:500px;">
<table>
<tr>
<td width="150"> <b>Matricule : </b> </td>
<td width="200">

<div align="justify">
<input name="matricule" type="text" maxlength="50" />
</div></td>
</tr>

<tr>
<td width="150"> <b>Nom : </b> </td>
<td width="200">

<div align="justify">
<input name="id[]" type="text" maxlength="50" />
</div></td>
</tr>

<tr>
<td width="150"> <b>Prénom : </b> </td>
<td width="200">

<div align="justify">
<input name="id[]" type="text" maxlength="50" />
</div></td>
</tr>
</table>

<br/>

<table width="100%">
<tr align="center">
<td width="130" align="center"> <input type="submit" name="save" value="Enregistrer" /> </td>
<td width="130" align="center"> <input type="reset" name="efface" value="Annuler" /> </td>
</tr>
</table>
</form>


Merci !!!!

A voir également:

1 réponse

A.Nonymous
 
Avant tout, il serait bon de ne pas se connecter à la BDD si cela n'est pas nécessaire.

Pour en revenir à la demande, il faudrait ajouter ceci après le traitement du $_POST, voir l'insert en base selon ce qui est souhaité :

header('Location: .');

Techniquement, cela aura pour effet de lancer une nouvelle requête GET à la suite de la requête POST. Ainsi, en actualisant la page, on relance une requête GET et non une requête POST.
0