lien modifier par GET

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 : lien modifier par GET

Re: lien modifier par GET

par Mazarini » 19 mars 2012, 16:53

Je suppose q'il s'agit du champ id mis en "hidden" ?

Pour le voir dans l'url, il faut une balise <form method="get" action="??????">
Le script que tu indiques ne montre rien de tel.

Re: lien modifier par GET

par afi » 19 mars 2012, 16:22

effectivement, j'ai remplacé LE LIEN par un bouton dans le script 3 et ça fonctionne. la modification à eu lieu!
mais cela n'explique pourquoi je ne vois pas l'id dans l'url par la methode get??

Re: lien modifier par GET

par Spols » 19 mars 2012, 16:04

Un formulaire doit avoir un bouton envoyer, tu utilise un simple lien <a href=""></a> qui ne peut pas enregistrer les données en POST (à moins d'utiliser du javascript). Utilise plutot un bouton que ton lien dans ton script 2. Je te conseillerais de ne pas mélanger POST et GET dans un même renvoi de donnée, donc ton script 2 renvoi en POST une valeur comme id3 (suit les conseil décrit ci-dessus) et ton script 4 le rècupère en POST

Sinon, pas besoin de recommencer 3 fois l'appel à ta base, tu peux le faire une fois à chaque page mais pas dans tes IF

Re: lien modifier par GET

par afi » 19 mars 2012, 15:58

ok, il ya form... Je suis toujours au même point!!! pourquoi le get ne passe pas par url???

Re: lien modifier par GET

par Mazarini » 19 mars 2012, 15:39

Sauf erreur de ma part, il n'y a pas de <form> dans le HTML généré, donc ca ne peut pas transmettre de données via les formulaire.

Plutot que d'utiliser des variables id3, id4..., il serait mieux d'utilisé une variable plus "parlante" comme "operation" avec une valeur indiquant l'opération à réaliser. Eventuellement tu pourrais utiliser "afficher", "editer", "enregistrer" comme variable.

lien modifier par GET

par afi » 19 mars 2012, 13:33

bonjour,
j'ai besoin de votre aide, voici 3 script sur une même page. le 1er affiche les enregistrements à modifier par l'intermédiaire d'un lien"modifier". Le second affiche dans
la même page les données sélectionner dans imput box pour modification et le 3eme modifie les données ds la base à partir du lien du second script.
Malheureusement ça fonctionne que partiellement. je m'explique:
en demandant la modification le 1er script appelle bien le second mais je ne vois pas données dans l'url (GET)? puis le second script appelle bien le 3eme script mais la modification ne se fait pas dans la base et pourtant le resultat est positif(affiche: données modifiées), et la aussi pas de données dans l'URL.
Dans tous les cas le champ caché affiche bien l'id transmise sur chaque page. Ou est le pb?

script page 1:
<?php
require ("Connect.php");
$connexion = mysql_pconnect (SERVEUR, NOM, PASSE);
mysql_select_db (BASE,$connexion);
$resultat = mysql_query ($requete, $connexion)
$sql = mysql_query("SELECT * FROM projet WHERE id='$_SESSION[id]'");
while($result=mysql_fetch_array($sql)){
echo '<tr>
<td colspan=2>'.$result['metier'].'</td>
<td>' .$result['formation'].'</td>
<td colspan=3>' .$result['commentaire'].'</td>
<td><a href=" memo_projet.php?id3='.$result['id_projet'].'">modifier</td>
</tr>';
}
?>
==================scriptsuivant sur page 1:<?php
if (isset($_GET['id3'])) {
require ("Connect.php");
$connexion = mysql_pconnect (SERVEUR, NOM, PASSE);
mysql_select_db (BASE,$connexion);
$id_projet=$_GET['id3'];
$sql = mysql_query("SELECT * FROM projet WHERE id_projet=".$_GET['id3']);
$result=mysql_fetch_array($sql);
if($result){
echo '<table align=center>
<tr class=rech>
<td><input type=text name=metier size=40 value="'.$result['metier'].'"></td>
<td><input type=text name=formation size=2 value="'.$result['formation'].'"></td>
<td><input type=text name=commentaire size=50 value="'.$result['commentaire'].'"></td>
<td><a href=" memo_projet.php?id4='.$result['id_projet'].'">ok</a></td>
</tr></table>';
}}
?>
<!-- CHAMP caché -->
<input type="hidden" name="id" value="<?php echo($id_projet) ;?>">
=============toujours page 1:script 3
<?php
if (isset($_GET['id4'])) {
require ("Connect.php");
$connexion=mysql_pconnect (SERVEUR, NOM, PASSE);
mysql_select_db (BASE,$connexion);
$id_projet=$_GET['id4'];
$requete="UPDATE projet
SET metier='$_POST[metier]',formation='$_POST[formation]',commentaire='$_POST[commentaire]' id_projet=".$_GET['id4']);
$resultat=mysql_query ($requete, $connexion);
if ($resultat) {
echo '<p class=liste>données modifiées</p>';
}
else {
echo '<p class=liste>échec de transmission</p>';
} }
?>
<!-- CHAMP caché -->
<input type="hidden" name="id" value="<?php echo($id_projet) ;?>">