xpatval Posté 1 Novembre 2004 Posté 1 Novembre 2004 Bonjour, Je voulais juste savoir de quelle manière il était possible de savoir si javascript est ou non désactivé sur un poste client. Merci, xpatval
ElMoustiko Posté 1 Novembre 2004 Posté 1 Novembre 2004 C'est simple tu fais un truc en JS et si ça marche JS est actif, sinon JS est inactif (je rigole pas hein !!!)
xpatval Posté 1 Novembre 2004 Auteur Posté 1 Novembre 2004 Donc, il faudrait activer un js, qui, si javascript n'est pas activé sur un poste cient, ne renvoie aucune valeur variable, si l'on veut être sur de son inactivité. Cette question pour une raison bien simple: Dans un formulaire, un script js se charge dans un premier temps de vérifier la bonne saisie des champs. après validation, c'est php qui se charge de la vérif coté serveur, et en cas de mauvaise manip, ou d'une saisie ambigüe que js aurait laissé passer (surtout moi). Mais si javascript est désactivé, je souhaite que ce soit php qui prenne la main dès le départ. D'où ma question. xpatval
Anonymus Posté 1 Novembre 2004 Posté 1 Novembre 2004 Ton javascript appelle une image. En fait, ce n'est pas une image, mais un 'bout de code' destiné à controler si le javascript est opérationnnel ou non. Si cette image est appelée, c'est que le javascript marche, sinon non. Simple, Anonymus.
AvenueDuWeb Posté 1 Novembre 2004 Posté 1 Novembre 2004 Mon conseil tu laisses le javascript et le php... Double vérification, une côté client, une côté serveur... En plus php ne peut pas prendre la main dès le départ, mais qu'après postage du formulaire... Ou alors tu enlèves le javascript qui ne sert quasi à rien et ne met que le php, avec repostage automatique des données... Ca devient presque transparent pour l'utilisateur. Ex il poste son formulaire mais il a oublié un champs sur 8, tu réaffiches le formulaire prérempli mais avec un message disant "vous n'avez pas rempli tous les champs obligatoires" et tu mets en rouge le champs qui n'a pas été rempli. Comme ça tu te soucies plus du javascript et ça marche à coup sûr sur tous les navigateurs. @+
Jan Posté 1 Novembre 2004 Posté 1 Novembre 2004 Bonjour, Tu peux procéder de la façon suivante: - tu inclues dans ton formulaire un champ caché dont la seule utilité est d'indiquer au serveur lors de la soumission si javascript est activé (et donc si PHP peut se contenter d'une vérification "légère", le gros de la vérification ayant été fait par javascript) - lors de la soumission du formulaire, tu exécutes la vérification en javascript, et tu modifies la valeur de ce champ caché, toujours en js. A ce stade si js est activé, la vérification est faite ET le champ caché positionné. Dans le cas contraire, la vérification js n'est pas faite, mais le champ caché garde sa valeur par défaut - ainsi lors de l'envoi au serveur, il ne reste plus à PHP qu'à tester la valeur du champ caché pour savoir si la vérification js a été faite, ou si au contraire il faut tout vérifier en PHP. Un peu compliqué dans le principe, mais très simple dans l'implémentation. Ca donne ça: <?phpif (isset($_POST["envoyer"])) { // l'utilisateur a soumis le formulaire if ($_POST["jsactif"]=="non") { // le javascript de vérif des données n'a pas été exécuté: le faire en php .... } else { // i.e. $_POST["jsactif"]=="oui", le javascript de vérif des données a pas été exécuté: une vérif légère en php suffit .... }}?><html><head>...<script type="text/javascript" language="JavaScript"><!-- function verif(formulaire){// vérification des champs et positionnement du flag erreur si une erreur est rencontrée....if (erreur) { // erreur: on informe l'utilisateur mais on ne soumet pas le formulaire alert ('Erreur dans un des champs du formulaire.'); return false;}else { // pas d'erreur, on soumet le formulaire // sans oublier de positonner le champ caché pour indiquer au serveur que la vérif js a été faire formulaire.jsactif.value="oui"; return true;}// --></script></head><body>....<form action="<?php echo $_SERVER["PHP_SELF"] ?>" method="post" name="tonformulaire" onsubmit="return verif(this);">...<input type="hidden" name="jsactif" value="non"><input name="envoyer" type="submit" value="Envoyer"></form>....</body></html>
xpatval Posté 2 Novembre 2004 Auteur Posté 2 Novembre 2004 Pour les tenants du tout vérif en php, je ne suis pas en désaccord, bien au contraire, à partir du moment où l'implémentation d'une base est en jeu. Dans mon cas, le formulaire ne sert qu'à envoyer par mail certaines informations qui me seront utiles. Ce pour quoi j'estime (à tord ?) que la vérif js est pratique dans un premier temps, évitant un (des) aller(s)/retour(s) client/serveur. Mais si le js est désactivé, je dois faire ces vérifs par php interposé. D'où ma question... >> Jan, dans le script de vérif js, tu codes ainsi: formulaire.jsactif.value="oui"; Donc, au submit formulaire, la valeur de la variable (valorisée par le js) sera automatiquement "récupérée" par php ? on est bien d'accord ? (Faible suis-je en js...En js seulement ? allons donc...) xpatval
Jan Posté 2 Novembre 2004 Posté 2 Novembre 2004 Oui, c'est ça. On teste la valeur de $_POST["jsactif"] en PHP (voir les 1eres lignes du code)
Ahima Posté 13 Août 2008 Posté 13 Août 2008 Je up pour réagir a une bizzarerie. Certains on sous entendu que le php pouvais faire des controles leger puisque js avais deja controler........... N'avez vous jamais appris que js ne fait que des contrôles de "confort" permettant l'implémentation d'un validateur informant le client en temp réel ou empêchant l'envoie d'un form inutile puisque non valider. Cependant, js ne doit JAMAIS servir a effectuer des contrôles sur lesquelles vous vous basez pour introduire des données dans votre DB, vous devez TOUJOURS refaire l'INTEGRALITE des contrôles en PHP. Tout simplement parce que le js peut etre controuné par un enfant de 8 ans possédant firefox et FireBug, pour trafiquer facilement les champs et le javascript. Apres , c'est vous qui voyez....si vous êtes suicidaire.....
iNCiTE Web Posté 13 Août 2008 Posté 13 Août 2008 Même si c'était déjà le cas à l'époque, répondre 4 ans après le sujet initial ne me parait pas d'une grande utilité ? ou alors pour une piqure de rappel...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant