Page 1 sur 1

formulaire : comment changer de page si on utilise action=$_SERVER["PHP_SELF"] ???

Posté : 22 juin 2016, 17:25
par yannou
Bonjour, je crois que tout est dans le titre.

En MVC, j'ai :

un fichier accueil.ctrl.php qui charge via un include un fichier accueil.view.php qui lui même contient un formulaire.

Ce formulaire contient une vérification de saisie dynamique en javascript.

Mais comme le js et jquery peuvent être désactivés par l’utilisateur, je voudrais valider la saisie via du code php.

Pour éviter de multiplier les pages php, j'utilise
action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"
pour que la page se recharge elle même.

Ma question est : si tous les tests sont validés, comment changer de vue?

Y'a t il une fonction booléenne qui puisse tester si toutes les saisies sont valides pour pouvoir charger un autre fichier, une autre vue?

Grand merci pour celles et ceux qui prendront la peine de me répondre.

Yannou

Re: formulaire : comment changer de page si on utilise action=$_SERVER["PHP_SELF"] ???

Posté : 22 juin 2016, 17:48
par or 1
ça me parait une meilleure idée de renvoyer dans tous les cas vers la même page, dans cette page, de faire aussi les vérifications pour le cas où le javascript est désactivé et de faire une éventuelle redirection selon le cas.

Re: formulaire : comment changer de page si on utilise action=$_SERVER["PHP_SELF"] ???

Posté : 23 juin 2016, 10:24
par moogli
salut,

La vérification serveur est obligatoire pour la bonne et simple raison que l'on est pas obligé d'utiliser ton formulaire pour faire une requête http vers ton script de validation :) (on peux aussi désactiver le js ;) ).

Dans ton cas il faut pouvoir gérer la navigation. c'est à dire savoir sur qu'elle page tu es pour que le contrôleur sache qu'elle action effectuer.
en clair
si page de garde et formulaire
est que le formulaire est valide ?
oui alors je traite les données issue du formulaire (enregistrement en base, en session ce que tu veux).
une fois que c'est fait j'utilise la fonction php header pour rediriger vers une autre page (histoire d'avoir l'url qui va bien dans le navigateur sinon tu peux faire direct un include de la vue suivante, le tout c'est qu'en cas d'action le contrôleur doit savoir qu'il a changé de vue).
non : je laisse page s'afficher et ainsi permettre le pré remplissage du formulaire avec un ou plusieurs message d'erreur
si une autre page
autre action
etc.

La première série de if peux être remplacé par une chaîne de commandement ;)

@+

Re: formulaire : comment changer de page si on utilise action=$_SERVER["PHP_SELF"] ???

Posté : 23 juin 2016, 20:22
par yannou
Grand merci pour vos réponses qui vont me permettre d'aborder différemment le problème.
De plus, je vais en apprendre davantage sur la fonction php header et sur les chaînes de commandement.
Que c'est bon d'apprendre!

++
Yannou