Formulaire de supresion/modification/ajout

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Formulaire de supresion/modification/ajout

Re: Formulaire de supresion/modification/ajout

par stealth35 » 01 avr. 2010, 00:39

le windows-1252 c'est une extension de l'iso-8859-1, donc y'a pas de soucis, même si je le conseillerai pas (un petit UTF-8 :mrgreen: )

Re: Formulaire de supresion/modification/ajout

par visualight » 31 mars 2010, 20:03

Salut,

Ton code devrait ressembler à ceci :
J'ai pas testé, juste corrigé à la volée...

A toi maintenant de faire la même chose avec tes autres fichiers pour remettre un peu d'ordre.
A toi aussi de corriger le code que j'ai posté pour l'adapter à tes besoins.
<?php 
// ATTENTION => l'utilisation de multiples &nbsp; pour faire des espaces ne sert à rien. mieux vaut utiliser le CSS 
?>

<html>

<head>
<meta http-equiv="Content-Language" content="fr">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>GESTION DE LA MAIN COURANTE</title>

</head>

<body bgcolor="#E0E0E0"; style="font-family:verdana,Arial,sans-serif; font-size:10pt; overflow:auto; margin:0px; padding:0px;">

<?php

// Je ne vois pas à quoi sert cette variable => je la désactive
// $URL = $PHP_SELF;

// On inclus le fichier de connexion à la base de donnée
include("connexion.php");

// au réaffichage, on récupère la sélection
// Je n'ai pas de correspondance à la variable $liste => je la désactive
// if($liste) {} 

// On sélectionne la table

$table="agent";
$query = "SELECT id, agent FROM $table ORDER BY `id` DESC LIMIT 0, 30";
$result = mysql_query($query);

?>

<div style="position: fixe; width: 1200px; height: 30px; z-index: 1; left: 10px; top: 15px; background-color:#0000FF; right:20" id="couche1">
<p align="right"><b><font color="#FFFFFF" size="4">GESTION DE LA MAIN COURANTE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></b></div>

<div style="position: absolute; width: 245px; z-index: 1; left: 0px; top: 30px; id=; height:800px; border-right-style:solid"><p>&nbsp;<?php include("menu.php")?></p></div>
<div style="position: absolute; width: 950px; z-index: 1; left: 249px; top: 30px; background-color:#FFFFFF; height:802px; border-left-style:solid" id="couche3">
        <p align="center"><u><i><font color="#008080" size="3"><a name="Haut"></a>Accès Base de donnée</font></i></u></p>
        <div align="center">
        <hr></div>
        <div>
                <blockquote>
        <p>&nbsp;</p>
        </div>

<div>
                <hr>
                <table border="0" width="100%" cellspacing="3">
                        <tr>
                                <td width="383" valign="top">
                <p align="center"><i><b><font color="#008080"><a name="BDD_agent"></a>
                &nbsp;Vue de la
                Base de Donnée agent
                </font></b></i>
        </p>
        <p>
        <blockquote>
        <p align="center">
        <table align="center" border="1" width="81%" cellspacing="0" bgcolor="#CCCCCC" style="border-collapse: collapse">
<tr>
<th width="127"><font size="2">N° d'Id</font></th>
<th width="150"><font size="2">agent</font></th>
</tr>

<?php
// On inclus PAS le fichier de connexion car déjà inclus plus haut => je désactive
// include("connexion.php");

// Ca ne sert à rien de sélectionner à nouveau les données => je désactive
// $retour = mysql_query('SELECT * FROM agent ORDER BY id DESC');


//while ($donnees = mysql_fetch_array($retour))
while ($donnees = mysql_fetch_array($result))
{

// On définis les variables à utiliser
$id = stripslashes($donnees['id']);
$agent = stripslashes($donnees['agent']);

// On fais un echo du tableau pour afficher les données (moi c'est ce que je ferais)
echo '<tr>
<td width="127"> <font size="2">'.$id.'</font></td>
<td width="150"> <font size="2">'.$agent.'</font></td>
</tr>';

}
?>

</table>
                                </blockquote>
                                <p>&nbsp;</td>
                                <td>
                <form align="center" method="POST" style="border-width:1px; width: 600; height: 100; background-color:#FFFFFF; text-align:center; " name="Rectification un Agent">
                        <p align="center" ><b><font color="#008080" size="5">Rectifier un agent</font></b></p>
                                <blockquote>
                        <p align="left" ><font color="#008080"><b>Nom de l'agent a changer</b></font><b><font color="#008080"> :
                        </font></b>
						
						<?php 
						// On affiche la liste des agents
						
						echo '<select name="champ3">';
						
                        while ($val = mysql_fetch_array($result)) { 
						 echo '<option>'.$val["agent"].'</option>';
						} 
						
						echo '</select></p>';
						?>
						
                        <p align="left" >&nbsp;<font color="#008080"><b>Nouveau nom de l'agent</b></font><b><font color="#008080">
                :</font></b>&nbsp;<input type="text"  size="37" name="champ2" >&nbsp;</p>
                                </blockquote>
                <p align="center" >
                <input type="submit" value="Modifier" name="B1">&nbsp;&nbsp;&nbsp; <input type="reset" value="Rétablir" name="B2"></p>
                        <?php
						
						// Si le champ 2 et 3 ont été soumis et qu'ils ne sont pas vides, on exécute la requete
						if ((isset($_POST['champ2']) AND !empty ($_POST['champ2'])) AND (isset($_POST['champ3']) AND !empty ($_POST['champ3']))) {
						 $champ2=$_POST['champ2']);
                         $champ3=$_POST['champ3']);
						 
                        // pas besoin de sélectionner pour faire un update ou insert dans la base de donnée => Désactivé
						// $sql = "SELECT `agent` FROM `agent` WHERE 1";
                        $modification = mysql_query("UPDATE agent SET agent='$champ2' WHERE agent='$champ3'");
						
						// Si le champ 2 ou 3 n'a pas été remplis
						} else { 
						 echo 'Le champ 2 et/ou 3 n\'a pas été complété'
						}
						
                // Pas besoin de fermer la connexion maintenant => désactivé
				// mysql_close();  
                        ?>
                </form>
               
                <form align="center" method="POST" style="border-width:1px; width: 600; height: 100; background-color:#FFFFFF; text-align:center; " name="Supprimer agent">
                        <p align="center" ><b><font color="#008080" size="5">Supprimer un agent</font></b></p>
                                <blockquote>
                        <p align="left" ><font color="#008080"><b>N° id de l'agent a supprimer: </b></font></b>
						
						<?php
						// On affiche la liste des ID
                        echo '<select name="champsup">';
						
						while ($val = mysql_fetch_array($result)) { 
						 echo '<option>'.$val["id"].'</option>';
						 
                        } 
						echo '</select></p>';
						?>
						
                </blockquote>
                <p align="center" >
                <input type="submit" value="Supprimer" name="B3">&nbsp;&nbsp;&nbsp; <input type="reset" value="Rétablir" name="B4"></p>
                <?php
                        
						//Si le champsup à été soumis et qu'il n'est pas vide, on exécute la requete
						if (isset($_POST['champsup']) AND !empty($_POST['champsup'])) {
						$champsup=$_POST['champsup']);
                        
						// Pas besoin de sélectionner avant supression => Désacivé
						// $sql = "SELECT `id` FROM `agent` WHERE 1";
						
                        $suprimer = mysql_query("DELETE FROM $table WHERE 'agent'.'id'='$champsup'");
						
						// Sinon, on affiche un message
						} else {
						 echo 'le champ : "champsup" n\'a pas été complété';
						}
						
				// Pas besoin de fermer la connexion maintenant .. on a pas fini avec la page => Désactivé
                // mysql_close();  
                ?>
               
                </form>

                <form align="center" method="POST" style="border-width:1px; width: 600; height: 100; background-color:#FFFFFF; text-align:center; " name="Nouveau agent">
                <p align="center" ><b><font color="#008080" size="5">Nouveau un agent</font></b></p>
                <blockquote>
                        <p align="left" ><font color="#008080"><b>Nom de l'agent a supprimer :</b></font><b><input type="text" name="nouveau_agent" size="20"></font></b></p>
                </blockquote>
                <p align="center" >
                <input type="submit" value="Valider" name="B5">&nbsp;&nbsp;&nbsp;
                <input type="reset" value="Rétablir" name="B6"></p>
				
                <?php
                
				// Pas besoin d'inclure le fichier de connexion (déjà fait au début de la page) => Désactivé
				// include("connexion.php");
				
				// La a vrai dire, je ne comprends pas... => Désactivé
                // mysql_select_db ('agent') ;
				
				// Si nouveau_agent a été soumis et qu'il n'est pas vide, on exécute la requête
                 
				 if (isset($_POST['nouveau_agent']) AND !empty($_POST['nouveau_agent'])) {
				  $nouveau_agent=$_POST['nouveau_agent']);
				 
                 // Pas besoin de sélectionner pour insérer => Désactivé
				 // $sql = "SELECT * FROM `agent` WHERE 1";
				 
                  $nouveau =mysql_query("insert into agent (id,agent) values ('','$nouveau_agent')");
				  
				  } else {
				   echo 'le champ "nouveau_agent" n\'a pas été remplis';
				  }
				  
				 // MAINTENANT, on peut fermer la connexion à la base de donnée
				 mysql_close();  
                ?>
               
                </form>
               

                </table>
</div>



</body>

</html>
A+
raph


EDIT: Ton <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> Est bizzare ...
Moi j'utiliserai : <meta http-equiv="Content-Type" content="text/html; charset=ISO8859-1" />

Re: Formulaire de supresion/modification/ajout

par vinvinsylvain » 30 mars 2010, 23:28

Bonjour,

je vous remercie, oui j'avous le code de ma page est pas beau a voir lol je début et je suis perdu, en plus a chaque fois que je change ..... ben plus rien fonctionne mdr

si vous voulez voir l'exemple de cette page ceci se trouve : http://cfdt-interco21.fr/video/rectifagent.php

au secours !!!!

Re: Formulaire de supresion/modification/ajout

par visualight » 30 mars 2010, 13:57

Salut,

Pour éviter d'insérer ou modifier un enregistrement de ta table lors d'un refresh simple de la page, tu dois contrôler tes variables post correctement.

Exemple tu as écrit :
include("connexion.php");
mysql_select_db ('agent') ;
$nouveau_agent=isset($_POST['nouveau_agent'])?$_POST['nouveau_agent']:"";
$sql = "SELECT * FROM `agent` WHERE 1";
$nouveau =mysql_query("insert into agent (id,agent) values ('','$nouveau_agent')");
mysql_close();  
Ce que je propose :
// Ca ne sert à rien d'inclure à nouveau ton fichier de connexion, tu l'as fait plus haut
// include("connexion.php");
// Ca ne sert à rien de sélectionner ta base, tu l'as fait plus haut
// mysql_select_db ('agent') ;

if (isset($_POST['nouveau_agent']) AND !empty ($_POST['nouveau_agent'])) {
  $nouveau_agent=$_POST['nouveau_agent'];
  // ICI je vois pas trop l'interêt de sélectionner ta table ...
  // $sql = "SELECT * FROM `agent` WHERE 1";

  // Si l'id est autoincrémentée dans mysql, ça ne sert à rien de l'appeler, elle s'incrémentera tout de même.
  // $nouveau =mysql_query("insert into agent (id,agent) values ('','$nouveau_agent')");
  $nouveau =mysql_query("insert into agent (agent) values ('$nouveau_agent')");
  mysql_close();
}  
Je te conseille vivement de revoir la structure de ta page et corriger les erreurs !

Exemple d'erreur (voir la gestion des variables POST plus haut + corrections gestion SQL de ton fichier.

Tu as ecris :
<?  $table="agent";
$query = "SELECT agent FROM $table ORDER BY `id` DESC ";
$result = mysql_query($query);
?>
<?  $table="agent";
$query = "SELECT id FROM $table ORDER BY `id` DESC LIMIT 0, 30 ";
$result2 = mysql_query($query);
?>
Je te conseille (sans avoir regardé tout ton code et en ne connaissant pas les implications):
<?
$table="agent";
$query = "SELECT id, agent FROM $table ORDER BY `id` DESC LIMIT 0, 30 ";
$result = mysql_query($query);
?>

Voili, voilou ...
A toi de jouer ;)

Formulaire de supresion/modification/ajout

par vinvinsylvain » 29 mars 2010, 22:07

Bonjour,

J'ai une base de donnée avec 'id' et 'agent' comme champs.

Mon souci est qu'avec mon code ci-dessou:
* Quand on actualise la page, ceci me rajout une entrée dans la base juste un numéro 'id'.
* J'arrive pas a trouver ou est l'erreur dans le code de suprimer.
<html>

<head>
<meta http-equiv="Content-Language" content="fr">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>GESTION DE LA MAIN COURANTE</title>

</head>

<body bgcolor="#E0E0E0"; style="font-family:verdana,Arial,sans-serif; font-size:10pt; overflow:auto; margin:0px; padding:0px;">
<? $URL = $PHP_SELF;
include("connexion.php"); ?>
<? // au réaffichage, on récupère la sélection
if($liste) {
} ?>
<?  $table="agent";
$query = "SELECT agent FROM $table ORDER BY `id` DESC "; 
$result = mysql_query($query);
?>
<?  $table="agent";
$query = "SELECT id FROM $table ORDER BY `id` DESC LIMIT 0, 30 ";
$result2 = mysql_query($query);
?>

<div style="position: fixe; width: 1200px; height: 30px; z-index: 1; left: 10px; top: 15px; background-color:#0000FF; right:20" id="couche1">
<p align="right"><b><font color="#FFFFFF" size="4">GESTION DE LA MAIN COURANTE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></b></div>

<div style="position: absolute; width: 245px; z-index: 1; left: 0px; top: 30px; id=; height:800px; border-right-style:solid"><p>&nbsp;<?php include("menu.php")?></p></div>
<div style="position: absolute; width: 950px; z-index: 1; left: 249px; top: 30px; background-color:#FFFFFF; height:802px; border-left-style:solid" id="couche3">
	<p align="center"><u><i><font color="#008080" size="3"><a name="Haut"></a>Accès Base de donnée</font></i></u></p>
	<div align="center">
	<hr></div>
	<div>
		<blockquote>
	<p>&nbsp;</p>
	</div>

<div>
		<hr>
		<table border="0" width="100%" cellspacing="3">
			<tr>
				<td width="383" valign="top">
		<p align="center"><i><b><font color="#008080"><a name="BDD_agent"></a>
		&nbsp;Vue de la
		Base de Donnée agent
		</font></b></i>
	</p>
	<p>
	<blockquote>
	<p align="center">
	<table align="center" border="1" width="81%" cellspacing="0" bgcolor="#CCCCCC" style="border-collapse: collapse">
<tr>
<th width="127"><font size="2">N° d'Id</font></th>
<th width="150"><font size="2">agent</font></th>
</tr>

<?php
 include("connexion.php");
$retour = mysql_query('SELECT * FROM agent ORDER BY id DESC');
while ($donnees = mysql_fetch_array($retour))
{
?>

<tr>
<td width="127"> <font size="2"> <?php echo stripslashes($donnees['id']); ?></font></td>
<td width="150"> <font size="2"> <?php echo stripslashes($donnees['agent']); ?></font></td>
</tr>
<?php
} 
?>
</table>
				</blockquote>
				<p>&nbsp;</td>
				<td>
		<form align="center" method="POST" style="border-width:1px; width: 600; height: 100; background-color:#FFFFFF; text-align:center; " name="Rectification un Agent">
			<p align="center" ><b><font color="#008080" size="5">Rectifier un agent</font></b></p>
				<blockquote>
			<p align="left" ><font color="#008080"><b>Nom de l'agent a changer</b></font><b><font color="#008080"> : 
			</font></b><select name="champ3">
   			<? while ($val = mysql_fetch_array($result)) { ?>
      		<option><? echo $val["agent"]; ?></option>
  			<? } ?></select>&nbsp;&nbsp; </p>
			<p align="left" >&nbsp;<font color="#008080"><b>Nouveau nom de l'agent</b></font><b><font color="#008080"> 
		:</font></b>&nbsp;<input type="text"  size="37" name="champ2" >&nbsp;</p>
				</blockquote>
		<p align="center" >
		<input type="submit" value="Modifier" name="B1">&nbsp;&nbsp;&nbsp; <input type="reset" value="Rétablir" name="B2"></p>
			<?php
			$champ2=isset($_POST['champ2'])?$_POST['champ2']:"";
			$champ3=isset($_POST['champ3'])?$_POST['champ3']:"";
			$sql = "SELECT `agent` FROM `agent` WHERE 1";
			$modification = mysql_query("UPDATE agent SET agent='$champ2' WHERE agent='$champ3'");
        	mysql_close();  
			?>
		</form>
		
		<form align="center" method="POST" style="border-width:1px; width: 600; height: 100; background-color:#FFFFFF; text-align:center; " name="Supprimer agent">
			<p align="center" ><b><font color="#008080" size="5">Supprimer un agent</font></b></p>
				<blockquote>
			<p align="left" ><font color="#008080"><b>N° id de l'agent a supprimer: </b></font></b>
			<select name="champsup"><? while ($val = mysql_fetch_array($result2)) { ?><option><? echo $val["id"]; ?></option>
  			<? } ?></select>
			</p>
		</blockquote>
		<p align="center" >
		<input type="submit" value="Supprimer" name="B3">&nbsp;&nbsp;&nbsp; <input type="reset" value="Rétablir" name="B4"></p>
		<?php
			$champsup=isset($_POST['champsup'])?$_POST['champsup']:"";
			$sql = "SELECT `id` FROM `agent` WHERE 1";
			$suprimer = mysql_query("DELETE FROM $table WHERE 'agent'.'id'='$champsup'");
        	mysql_close();  
		?>
		
		</form>

		<form align="center" method="POST" style="border-width:1px; width: 600; height: 100; background-color:#FFFFFF; text-align:center; " name="Nouveau agent">
		<p align="center" ><b><font color="#008080" size="5">Nouveau un agent</font></b></p>
		<blockquote>
			<p align="left" ><font color="#008080"><b>Nom de l'agent a supprimer :</b></font><b><input type="text" name="nouveau_agent" size="20"></font></b></p>
		</blockquote>
		<p align="center" >
		<input type="submit" value="Valider" name="B5">&nbsp;&nbsp;&nbsp; 
		<input type="reset" value="Rétablir" name="B6"></p>
		<?php
		include("connexion.php");
		mysql_select_db ('agent') ;
		 $nouveau_agent=isset($_POST['nouveau_agent'])?$_POST['nouveau_agent']:"";
		 $sql = "SELECT * FROM `agent` WHERE 1";
 		  $nouveau =mysql_query("insert into agent (id,agent) values ('','$nouveau_agent')");
          mysql_close();  
		?>
		
		</form>
		

		</table>
</div>



</body>

</html>
Pouvez vous m'aider ?