Supp d'enregistrement qui fait tourner le navig sans cesse

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 : Supp d'enregistrement qui fait tourner le navig sans cesse

par jay64 » 12 juil. 2006, 09:33

Merci, c'est parfait, ça marche nickel.

Pour ce qui est de DW, c'est vrai que ça génère du code pas forcément des plus jolis mais ça permet quand même d'avancer aisément en n'étant pas un roi du code.

par Truc » 11 juil. 2006, 22:59

Salut,
comment faire en sorte que le navigateur affiche ma page de sortie et ne cherche pas dans le vide une fois que l'enregistrement ait bien été supprimé ?
Ne pas utiliser DW :P

Ce qui pose problème c'est la redirection =>
 header(sprintf("Location: %s", $deleteGoTo));
Elle renvoie apparemment sur la même page avec les mêmes paramètres puisque tu les récupères avec
if (isset($_SERVER['QUERY_STRING'])) {
    $deleteGoTo .= (strpos($deleteGoTo, '?')) ? "&" : "?";
    $deleteGoTo .= $_SERVER['QUERY_STRING'];
  }
 
La requête s'exécute après la verification des varaibles GET:
if ((isset($_GET['IdVoteur_Supp'])) && ($_GET['IdVoteur_Supp'] != ""))
Et donc au final on obtient indéfiniment la même redirection et même exécution de script.

Efface ces lignes de code et la redirection devrait se faire sur "saisie.php":
if (isset($_SERVER['QUERY_STRING'])) {
    $deleteGoTo .= (strpos($deleteGoTo, '?')) ? "&" : "?";
    $deleteGoTo .= $_SERVER['QUERY_STRING'];
  }
 

Supp d'enregistrement qui fait tourner le navig sans cesse

par jay64 » 11 juil. 2006, 22:51

Bonjour à tous.

J'ai un formulaire dans lequel j'ai intégré un bouton censé exécuter la suppression d'un enregistrement d'une table. Cette table possède deux clés primaires (IdVoteur et IdMatch). Voici ci dessous le code qui s'exécute lorsque le formulaire est validé.
Lorsque l'internaute utilise ce formulaire, et que le bouton est cliqué, le navigateur cherche indéfiniment comme s'il ne trouvait pas de sortie possible.
Cependant, lorsque j'arrete le chargement (même trés rapidement après avoir cliqué sur le bouton de validation du formulaire) et que je vais voir dans PhpMyAdmin ma table, je constate que l'enregistrement correspondant à ma requete SQL a bien été supprimé.
Ma question est donc la suivante : comment faire en sorte que le navigateur affiche ma page de sortie et ne cherche pas dans le vide une fois que l'enregistrement ait bien été supprimé ?

Merci d'avance !
Jay
if ((isset($_GET['IdVoteur_Supp'])) && ($_GET['IdVoteur_Supp'] != "")) {
  $deleteSQL = sprintf("DELETE FROM prono_Fusion_Voteur_MatchLigue1 WHERE IdVoteur=%s and IdMatch=%s",
                       GetSQLValueString($_GET['IdVoteur_Supp'], "int"),
					   GetSQLValueString($_GET['IdMatch_Supp'], "int"));

  mysql_select_db($database_connexion_bdd_mysql, $connexion_bdd_mysql);
  $Result1 = mysql_query($deleteSQL, $connexion_bdd_mysql) or die(mysql_error());

  $deleteGoTo = "saisie.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $deleteGoTo .= (strpos($deleteGoTo, '?')) ? "&" : "?";
    $deleteGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $deleteGoTo));
}