Confirmation avant suppression

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 : Confirmation avant suppression

Re: Confirmation avant suppression

par AB » 16 févr. 2010, 03:42

Pour reprendre l'idée du formulaire tu peux faire ceci :
<div>
<?php clearstatcache();

$filim="http://www.xxxxxx.xx/imgs/circuits/".$row[id];

if (file_exists($filim)=='true')

	{ ?>
        <form  method="post" action="sejour.php" >
        <p style="margin:0; padding:0">
        <img src="imgs/circuits/<?php echo $row['id']?>" />
          
        <?php if ($row['visible']=='O') 
            { ?>
                <input type = "submit" name = "Masquer" value = "Masquer"  />
            <?php 
            } 
            else
            { ?>
                <input type = "submit" name = "Afficher" value = "Afficher"  />
            <?php 
            } ?>
                <input type = "submit" name = "Supprimer" value = "Supprimer" onclick="if(confirm('Confirmez-vous la suppression')) this.form.submit();else return false"  />
                <input type = "submit" name = "Modifier" value = "Modifier"   />
                <input type = "hidden" name = "id" value = "<?php echo $row['id']?>"  />
        </p>
        </form>
     <?php } ?>
</div>
Avec ce principe tu n'as plus de variable "act" passée dans le formulaire mais tu peux récupérer l'action à faire suivant la valeur des submit :
if (isset($_POST['Masquer']) && $_POST['Masquer'] == 'Masquer') { // action Masquer}
if (isset($_POST['Afficher']) && $_POST['Afficher'] == 'Afficher') { // action Afficher}
if (isset($_POST['Supprimer']) && $_POST['Supprimer'] == 'Supprimer') { // action Supprimer}
if (isset($_POST['Modifier']) && $_POST['Modifier'] == 'Modifier') { // action Modifier}
car seuls les boutons sur lesquels on clique renvoient une valeur.

Re: Confirmation avant suppression

par SebbC » 16 févr. 2010, 02:01

Merci, j'ai testé et c'est parfait.

mais à intégrer dans ma fonction qui génère un tableau à chaque ajout, c'est l'enfer, le bouton sort de la table ou se place au dessus du tableau.

Sans vouloir abuser et je conscient que le forum n'est pas un SAV j'insère tout de même le code ou idéalement cette fonction devrait prendre sa place :
<td align="center" class="Style1">
			    <div><? clearstatcache();
$filim="http://www.xxxxxx.xx/imgs/circuits/".$row[id];
if (file_exists($filim)=='true'){
print "<img src=/imgs/circuits/".$row[id].">";
      }

      if ($row[visible]=='O') {

print '<button onclick="location.href=\'sejour.php?act=mas&id='.$row['id'].'\';">Masquer</button>';

      }else{      
print '<button onclick="location.href=\'sejour.php?act=aff&id='.$row['id'].'\';">Afficher</button>';
}
print  " | <A HREF=\"sejour.php?act=sup&id=".$row[id]."\"> Supprimer </a>"; <---- A la place de cette ligne
print  " | <A HREF='sejour.php?act=mod&id=".$row[id]."'> Modifier </a></td>\n</tr>\n";
?></a></div>
					</td>
Seb

Re: Confirmation avant suppression

par AB » 16 févr. 2010, 01:19

En même temps elle est pas sécurisée ta méthode. Mieux vaut passer par la méthode post pour supprimer des lignes dans une table :
<form method = "post" action = "sejour.php"  onsubmit = "if(confirm('Confirmez vous la suppression ?'))return true; else return false" >
<input type = "submit" value = "supprimer" />
<input type = "hidden" name = "id" value = "<?php echo $row['id']?>" />
<input type = "hidden" name = "act" value = "sup" />
</form>
C'est à peine plus long à écrire mais plus sécurisé et il te suffira de récupérer tes valeurs pour supprimer la ligne dans $_POST['id'] et $_POST['act']

Re: Confirmation avant suppression

par AB » 16 févr. 2010, 00:58

Comme le dit stealth35 vérifies tes quotes, notamment les simples quotes. Déjà rien que la première : 'Confirmez-vous... devrait être échapée \'

Re: Confirmation avant suppression

par SebbC » 16 févr. 2010, 00:55

bonsoir,

Avec dreamweaver... je travaille surtout avec des bouts de code... ! mon problème c'est l'inclusion du javascript... je veux juste obtenir une fenêtre de confirmation de suppression avant d'effacer des données. Mes fonctions modifier, supprimer, ajouter sont intégrées dans la même page, ce qui semble compliquer la tâche.

Seb

Re: Confirmation avant suppression

par stealth35 » 16 févr. 2010, 00:42

ta pas echappé tes quotes (mélange html php javacript),
avec quel éditeur tu travailles ?

Confirmation avant suppression

par SebbC » 16 févr. 2010, 00:21

Bonsoir,

je suis depuis 2 heures sur un système de confirmation javascript sur ma requête php avant suppression des données 'une table, et je ne m'en sort pas !

Voici la ligne qui me renvoi un Parse error: syntax error, unexpected T_STRING :
print '<input type="button" name="supp" value="supprimer" onclick="if(confirm('Confirmez vous la suppression ?')){location.assign('sejour.php?act=sup&id='.$row['id'].'\';')} else{return false};"</button>
Merci à celui ou ceux qui me donneront un coup de pouce.

Seb