Création automatique de bouton

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 : Création automatique de bouton

par ephemere » 04 avr. 2006, 10:32

Ok j'vais regarder ça me fera pas de mal mais l'application finale ne servira pas à transmettre quoi que ce soit de confidentiel alors comme mon temps est limité et que je suis tres tres lent je vais accorder la priorité aux fonctionalités... :wink:

Pour les parametres d'url ça va pas être si simple que ça parcque ma page comporte plusieurs frames et que le target"=top" est inutilisable avec header... je vois déja le coup que je vais devoir faire ça en javascript mais pour me servir de $id en javascript....bonjour :!:

M'enfin peut importe je met un gro joli "résolu" et...à bientôt pour de nouvelles aventures! (d'ici quelques minutes à n'en pas douter :wink: )

par mario » 04 avr. 2006, 10:14

Maintenant mon truc ça va être d'arriver à faire passer $id en parmètre url pour que ma requète s'affiche dans une page différente
c'est on ne peut plus simple :D
parcontre je reviens sur l'aspect "sécurité". N'importe quel visiteur non expérimenté peut modifier l'URL.
je te conseille de tester tout ce qui passe par la méthode POST ou GET !!!

par ephemere » 04 avr. 2006, 10:12

YYYYEEEEEEEEEEEEEEEEEEEEEEEEEEESSSSSSSSSSSSSSS!!!!!
MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI !!!!!! =D> =D> =D> =D>

Bon ce matin t'as fait un heureux...
ça fait je sais pas combien de temps que j'était dessus et je suis en train de me rendre compte que j'aurais jamais trouvé tout seul!

Maintenant mon truc ça va être d'arriver à faire passer $id en parmètre url pour que ma requète s'affiche dans une page différente..mais bon le plus gros est fait! merci encore!

par mario » 04 avr. 2006, 09:32

le code un peu corrigé:
<?php 
$req = mysql_connect("odin","root","*********") or die(mysql_error()); 
//séléction de la BD 
if (isset($_POST['bouton'])){ 
   foreach($_POST['bouton'] AS $id=>$valeur){ 
      echo 'Le bouton ID '.$id.' a été cliqué'; 
   } 
} 
$req = mysql_select_db("gii"); 
$sql = "SELECT Id, Type, Lieux, Date_signalement,Commentaire_signalement FROM incidents"; ?> 
<form id="form1" name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
<table width="80%" border="0"> 
  <tr bgcolor="#0000CC"> 
    <th width="10%"><span class="Style1">Id</span></th> 
    <th width="20%"><span class="Style1">Type</span></th> 
    <th width="30%"><span class="Style1">Date</span></th> 
    <th width="22px"><span class="Style1">Lieu</span></th> 
    <th width="17"><span class="Style1">Etat</span></th> 
    <th width="13"><span class="Style1">Par</span></th> 
  </tr> 
</table> 
<?php 
$resultSet = mysql_query($sql); // exécution de la requête 

echo '<table width="80%">' ; // on ouvre le tableau 

while ($row = mysql_fetch_array($resultSet)) { // on boucle sur le résultat de la requête en mettant chaque ligne dans $row 
?> 

     
<tr>   
<td width="10%"><?php echo $row['Id']?></td> 
<td width="20%"><?php echo $row['Type']?></td> 
<td width="30%"><?php echo $row['Date_signalement']?></td> 
<td width="15%"><?php echo $row['Lieux']?></td> 
<td width="20%"><?php echo $row['Signalé_par']?></td> 
<td><input type="submit" name="bouton[<?php echo $row['Id'];?>]"  value= "Détail"/> 

   
  </td> 
</tr> 

<?php } // on affiche ainsi le contenu des différents champs 

echo '</table>'; // on ferme le tableau 
?> 
</form>

par ephemere » 04 avr. 2006, 09:10

Ben nan! ça marche toujour pas....
toujours pas de message d'erreur mais le clic sur le bouton ne déclenche rien!
<?php

$req = mysql_connect("odin","root","*********") or die(mysql_error());
//séléction de la BD
if (isset($_POST['bouton'])){ 
   foreach($_POST['bouton'] AS $id=>$valeur){ 
      echo 'Le bouton ID '.$id.' a été cliqué'; 
   } 
} 
$req = mysql_select_db("gii");
$sql = "SELECT Id, Type, Lieux, Date_signalement,Commentaire_signalement FROM incidents"; ?>

<table width="80%" border="0">
  <tr bgcolor="#0000CC">
    <th width="10%"><span class="Style1">Id</span></th>
    <th width="20%"><span class="Style1">Type</span></th>
    <th width="30%"><span class="Style1">Date</span></th>
	<th width="22px"><span class="Style1">Lieu</span></th>
    <th width="17"><span class="Style1">Etat</span></th>
    <th width="13"><span class="Style1">Par</span></th>
  </tr>
</table>
<?php
$resultSet = mysql_query($sql); // exécution de la requête 

echo '<table width="80%" >' ; // on ouvre le tableau 

while ($row = mysql_fetch_array($resultSet)) { // on boucle sur le résultat de la requête en mettant chaque ligne dans $row 
?> 

    
<tr>  
<td width="10%"><?php echo $row['Id']?></td> 
<td width="20%"><?php echo $row['Type']?></td> 
<td width="30%"><?php echo $row['Date_signalement']?></td> 
<td width="15%"><?php echo $row['Lieux']?></td> 
<td width="20%"><?php echo $row['Signalé_par]?></td> 
<td><form id="form1" name="form1" method="post" action=""><input type="submit" name='bouton[".$row['Id']."]'  value= Détail / />
  </form>
  
  </td>
</tr> 

<?php } // on affiche ainsi le contenu des différents champs 

echo '</table>'; // on ferme le tableau 
?> 
je pense pas avoir fait d'erreur en rajoutant mes balises form...
j'ai un peu de mal la! je nage...
enfin nan je coule :sick:

par ephemere » 04 avr. 2006, 08:22

Désolé hier j'ai du m'absenter un peu précipitemment!
Effectivement à force de copier coller j'en ai oublié l'essentiel! je corrige test et tient au courant :wink:

par mario » 03 avr. 2006, 15:56

je ne vois pas tes balises <form> ???

par ephemere » 03 avr. 2006, 15:04

nan marche pas.... :cry:
ya pas de message d'erreur mais le clic sur le bouton ne donne rien! ](*,)

par mario » 03 avr. 2006, 14:46

a tester
<?php 
$req = mysql_connect("odin","root","***********") or die(mysql_error()); 
$req = mysql_select_db("gii"); //séléction de la BD


if (isset($_POST['bouton'])){ 
   foreach($_POST['bouton'] AS $id=>$valeur){ 
      echo 'Le bouton ID '.$id.' a été cliqué';
   } 
} 

$sql = "SELECT Id_incidents, Type_incidents, Lieux_incidents, Date_signalement,Commentaire_signalement FROM .......";
?>
<table width="80%" border="0"> 
  <tr bgcolor="#0000CC"> 
    <th width="10%"><span class="Style1">ID</span></th> 
    <th width="20%"><span class="Style1">Type</span></th> 
    <th width="30%"><span class="Style1">Date</span></th> 
    <th width="22px"><span class="Style1">Lieu</span></th> 
    <th width="17"><span class="Style1">Etat</span></th> 
    <th width="13"><span class="Style1">Par</span></th> 
  </tr> 
</table> 
<?php 
$resultSet = mysql_query($sql) or die(mysql_error());
echo '<table width="80%" >' ; 

while ($row = mysql_fetch_array($resultSet)) { 
echo "<tr>
<td width='10%'>".$row['Id']."</td> 
<td width='20%'>".$row['Type']."</td> 
<td width='30%'>".$row['Date_signalement_']."</td> 
<td width='15%'>".$row['Lieux']."</td> 
<td width='20%'>".$row['Signalé_par']."</td> 
<td><input type='submit' name='bouton[".$row['Id']."]' value='Détail' /></td> 
</tr>";
} 
echo '</table>'; // on ferme le tableau 
?> 

par ephemere » 03 avr. 2006, 14:29

J'ai vraiment du mal aujourd'hui...
Quand tu écris $id=>$valeur je comprend "lorsque $id est plus grand ou égal à $valeur"...Or $id correspond à des chiffres et $valeur à un mot, en l'occurence détail, donc ça ne veut rien dire du tout... :?

j'tenvoi mon bout de code si ça peut t'aider a m'expliquer...:
<?php

$req = mysql_connect("odin","root","***********") or die(mysql_error());
//séléction de la BD
$req = mysql_select_db("gii");
$sql = "SELECT Id_incidents, Type_incidents, Lieux_incidents, Date_signalement,Commentaire_signalement FROM ......."; ?>

<table width="80%" border="0">
  <tr bgcolor="#0000CC">
    <th width="10%"><span class="Style1">ID</span></th>
    <th width="20%"><span class="Style1">Type</span></th>
    <th width="30%"><span class="Style1">Date</span></th>
	<th width="22px"><span class="Style1">Lieu</span></th>
    <th width="17"><span class="Style1">Etat</span></th>
    <th width="13"><span class="Style1">Par</span></th>
  </tr>
</table>
<?php
$resultSet = mysql_query($sql); 
echo '<table width="80%" >' ; 

while ($row = mysql_fetch_array($resultSet)) { 
?> 

    
<tr>  
<td width="10%"><?php echo $row['Id']?></td> 
<td width="20%"><?php echo $row['Type']?></td> 
<td width="30%"><?php echo $row['Date_signalement_']?></td> 
<td width="15%"><?php echo $row['Lieux']?></td> 
<td width="20%"><?php echo $row['Signalé_par']?></td> 
<td><input type="submit" name="bouton['.$row['Id'].']"  value=Détail / /></td>
</tr> 

<?php } 
echo '</table>'; // on ferme le tableau 
?> 
voila..
le premier tableau sert de première ligne.
En tout cas merci de m'accorder de ton temps! :lol: :lol:

par mario » 03 avr. 2006, 13:55

et puis $lignemysql j'aurais plutot eu tendance a écrire $row moa... :?
oui on parle de la même chose :D
En fait je ne comprend pas trop ce que tu entend par $lignemysql puis par $id=>$valeur...Où c'est que tu les définis ces variables?
En fait, je parcours un tableau php (array) avec la fonction foreach() et je stocke l'ID du tableau ( name="bouton['.$lignemysql['id'].']" ) dans la variable $id et sa valeur ( value="Envoi" ) dans la variable $valeur

par ephemere » 03 avr. 2006, 13:45

Bon j'vais encore avoir l'air ridicule mais bon...ça n'a jamais tué personne!

En fait je ne comprend pas trop ce que tu entend par $lignemysql puis par $id=>$valeur...Où c'est que tu les définis ces variables?

et puis $lignemysql j'aurais plutot eu tendance a écrire $row moa... :?

par mario » 03 avr. 2006, 12:30

tente:
$sql = '....'; 
$req = mysql_query($sql) or die(mysql_error()); 
echo '<table>'; 
while( ... ) { parcours des lignes de la table MySQL 
   echo '<tr><td>...</td><td>...</td><td><input type="submit" name="bouton['.$lignemysql['id'].']" value="Envoi"/></td></tr>'; 
// soit id   le champ ID de ta table MySQL 
} 
echo '</table>'; 
en fait, je stocke l'ID dans le tableau bouton[] lorsque je génère le tableau HTML

et pour récuperer l'ID du formulaire POSTé, je parcours le tableau
if (isset($_POST['bouton'])){
   foreach($_POST['bouton'] AS $id=>$valeur){
      $sql = "SELECT ou INSERT ... ... ... WHERE id = ".$id;
   }
}
to be confirmed :D

par ephemere » 03 avr. 2006, 10:35

Ok merci ça marche nickel =D>
Pour ce qui est des questions de sécurité c'est interressant mais ça m'est pas vraiment indispensable donc jm'y pencherais plus tard c'est pas prioritaire.
Par contre mon problème c'est que je voudrai que le bouton s'appelle Détail...c'est possible :?:

par mario » 03 avr. 2006, 10:28

pour plus de sécurité, je te conseille également de contrôler ce qui est envoyé via la méthode POST pour éviter toute injection SQL.

pour cela tu peux utiliser les expressions régulières
if ( (isset($_POST['bouton'])) && (preg_match('/^[[:digit:]]$/', $_POST['bouton'])) ){ 
   $sql = "SELECT ou INSERT ... ... ... WHERE id = ".$_POST['bouton']; 
   // etc etc ....   
} 
tu trouveras ici un super site sur les expreg