par
Ryle » 19 août 2010, 18:50
Pour fonctionner correctement, l'appel à header() doit être fait avant l'envoi de données au navigateur. Tu peux donc tout à fait contrôler que le mot de passe est correct et faire la redirection avant d'envoyer du code html au navigateur.
Si tu ne contrôles pas l'envoi des données vers le navigateur, tu peux paramétrer le fichier php.ini pour activer un buffer de sortie. Cela permet de "retenir" les données envoyées au navigateur dans un buffer. Ainsi, même si données devaient être envoyées au navigateur, php peut encore effectuer des redirections et autres (tant que le buffer n'est pas plein). L'inconvénient c'est que tu dépends de la config du serveur.
Sinon pour le remplacer, tu peux aussi envoyer ton formulaire vers une nouvelle page qui controlera uniquement ton mot de passe et redirigera l'utilisateur (avec un header puisque rien ne sera envoyé au préalable). Si le mdp est correct tu rediriges vers la page suivante, s'il est incorrect, tu le rediriges vers la page précédente...
Tu peux aussi utiliser une redirection html ou js, mais tout dépend des contrôles que effectues par la suite pour éviter qu'ils ne puissent être contournés...
Pour fonctionner correctement, l'appel à header() doit être fait avant l'envoi de données au navigateur. Tu peux donc tout à fait contrôler que le mot de passe est correct et faire la redirection avant d'envoyer du code html au navigateur.
Si tu ne contrôles pas l'envoi des données vers le navigateur, tu peux paramétrer le fichier php.ini pour activer un buffer de sortie. Cela permet de "retenir" les données envoyées au navigateur dans un buffer. Ainsi, même si données devaient être envoyées au navigateur, php peut encore effectuer des redirections et autres (tant que le buffer n'est pas plein). L'inconvénient c'est que tu dépends de la config du serveur.
Sinon pour le remplacer, tu peux aussi envoyer ton formulaire vers une nouvelle page qui controlera uniquement ton mot de passe et redirigera l'utilisateur (avec un header puisque rien ne sera envoyé au préalable). Si le mdp est correct tu rediriges vers la page suivante, s'il est incorrect, tu le rediriges vers la page précédente...
Tu peux aussi utiliser une redirection html ou js, mais tout dépend des contrôles que effectues par la suite pour éviter qu'ils ne puissent être contournés...