un formulaire modifie deux tables : détecter la modification

Répondre
paralaile
le 15/05/2009 à 11:23
paralaile
Bonjour,
voilà j'ai un seul formulaire qui modifie deux tables, je voudrais ajouter la date de modif que sur celle qui aurait été modifiée. Autrement dit, détecter quels champs remplis par une valeur initiale SELECT ont été modifiés par une nouvelle valeur $_POST
Merci pour votre aide éventuelle...
paralaile
LA GLOBULE
le 15/05/2009 à 11:38
LA GLOBULE
Ben c'est le SET de ta requête qui te dit quels champs tu modifies.

Sans nous en dire plus, cela va être difficile de cerner ton problème.
paralaile
le 15/05/2009 à 11:51
paralaile
Bonjour, LA GLOBULE,
en fait dans mon formulaire tous les champs sont déja remplis par un SELECT, et je voulais détecter quels sont ceux qu'ont étés changés par le correspondant grâce au formulaire, je ne sais pas comment faire le
onchange="<?php $value='change' ?>";
et aprés soumission du formulaire :
if ($value=='change')
{on détecte changement de valeur du champs d'où $date_modif==date();}
else
{pas de changement $date_modif==""}
merci d'avance
paralaile
LA GLOBULE
le 15/05/2009 à 12:01
LA GLOBULE
L'attribut html onchange, c'est pour y coller du javascript.

onchange="<?php $value='change' ?>"; << cela ne fonctionnera pas

Le plus simple à faire : avant de faire ton UPDATE, tu SELECT les valeurs que tu avais avant la soumission du formulaire, et tu les compares à ce que tu reçois dans le tableau $_POST.
De la, si tu repères une différence, tu peux (en plus de modifier tes champs) modifier un champ date_modif.
paralaile
le 15/05/2009 à 12:04
paralaile
Merci pour ta réponse , je voulais éviter une comparaison par champs.
Bonne journée et merci pour le site.
paralaile
paralaile
le 18/05/2009 à 12:23
paralaile
Je pense avoir trouvé quelque chose :
<FORM method=post action="<?php $_SERVER['PHP_SELF'];?>">
<TABLE >
<TR>
<TD>Nom</TD>
<TD><INPUT id="nom" name="nom" type=text value="<?php echo $row_nom['nom']; ?>" onchange="document.getElementById('test_change').value='chengement_detecte';" >
<input type="hidden" name="test_change" id="test_change" />
</TD>
</TR>
<TR>
<TD COLSPAN=2>
<INPUT name="Envoyer" type="submit" id="Envoyer" value="Envoyer" >
</TD>
</TR>
</TABLE>
</FORM>
<?php if((isset($_POST['Envoyer'])) &&($_POST['Envoyer']!=""))
{
echo 'valeur de ='. $_POST['test_change'];
}
?>
paralaile
LA GLOBULE
le 18/05/2009 à 12:41
LA GLOBULE
Oui, tu peux lever un evennement de ce genre, mais en faisant cela, tu fais entièrement confiance au visiteur du site.
Si celui ci désactive javascript, ta solution ne fonctionnera plus.
LA GLOBULE
le 18/05/2009 à 12:43
LA GLOBULE
PS : faire un <FORM method=post action="<?php $_SERVER['PHP_SELF'];?>"> est dangereux.
Tu t'exposes à de nombreuses failles XSS.

Je te recommande cette lecture.
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours