Bonjour.

Je m'interroge beaucoup sur ce point. J'ai toujours appris à créer des validations de formulaires avec le JavaScript. C'est rendu très facile pour moi de le faire. Mais j'ai remarqué sur certains sites (dont celui-ci) que les Forms sont validés autrement. Par validation, j'entends : "Y a-t-il un nom d'au moins 3 caractères?" ou "Son adresse e-mail est-elle valide?".

Quel langage ou technique vous utilisez? Le javascript devrait-elle rester une solution?
Modifié par tidanone (13 Aug 2005 - 04:08)
a mon avis, sur ce site, les formulaires son validés côté serveur (à l'aide de langages comme php, asp, .net, cgi...). L'avantage de cette méthode par rapport au javascript est que l'utilisateur ne peut pas "trichier" en modifiant le code.
D'accord, je vois. Merci (je ne sais pas pourquoi je n'y ai pas pensé Smiley sweatdrop ).
D'ailleurs, juste comme ça, y a-t-il moyen de reproduire une alerte avec PHP (un message box)?
Bonjour.
Pour ma part, je vérifie à la fois en javascript et côté serveur.

Si la vérification impose une interrogation de base de donnée (par exemple : je veux envoyer un MP à quelqu'un, pour vérifier que ce quelqu'un existe je suis obligé de vérifier dans la base), je vérifie donc côté serveur, et s'il devait y avoir une erreur, j'affiche une page de ce type :


<html>
<head>
<title>Erreur</title>
</head>
<script type="text/javascript">
<!--
alert("L'utilisateur 'abc' est inconnu.");
history.back();
// -->
</script>
</head>
<body>
<p>L'utilisateur 'abc' est inconnu.</p>
<p><a href="<?php echo $_SERVER['HTTP_REFERER']; ?>">&lt;&lt; Retour</a></p>
</body>
</html>


Comme ça, si javascript est activé, l'utilisateur pourra presque croire que l'alerte est apparue sans aller-retour serveur. ET il est ensuite renvoyé sur la page précédente, celle qui contenait le formulaire.
Maintenant si javascript n'est pas activé, il verra un simple message et un lien l'invitant à revenir à la page précédente.

Voilà ce n'est que mon avis.
Haaaa! Je vois!!
Mais est-ce que le $_SERVER['HTTP_REFERER'] retourne également les valeurs stockées dans la chaîne (?truc=muche) ou seulement l'adresse? Sinon, comment récupérer seulement l'adresse?
$_SERVER['HTTP_REFERER'], comme son nom l'indique, contient le référeur, c'est-à-dire l'adresse URL où était le lien ou le formulaire qui a mené à la page en cours.
J'ai cherché, mais n'ai pas trouvé une fonction qui retournerait

www.trucmuche.com


à la place de

www.trucmuche.com?arg=1
.

J'imagine que la seule solution est d'ensuite séparer la chaîne où il y a le "?" et de ne garder que la première partie.
Bonjour,

Il faut être très prudent avec l"utilisation de HTTP_REFERER, et l'éviter en fait lorsque cette information est indispensable. En effet entre autres problèmes:
- certains navigateurs (anciens) ne renvoit pas de champ referer
- quelque-soit le navigateur, l'utilisateur peut avoir désactivé l'envoi de ce champ, soit directement dans les options du navigateur, soit via son firewall (et souvent à son insu, dans ce dernier cas, en cochant simplement une option globale de "respect de la vie privée" (sic) )

Il y a donc un certain nombre de cas où cette méthode échouera faute de HTTP_REFERER.

Il est préférable, lorsqu"il s'agit d'un formulaire par exemple, de passer l'url de la page référente, ou les informations nécessaires, en <input type="hidden">.

Et de toujours prévoir dans le script côté serveur une solution de repli si l'information manque (retour sur une page d'erreur adaptée, ou par défaut sur la page d'accueil, etc.)
Modifié par Laurent Denis (13 Aug 2005 - 03:39)