JavaScript et PHP : probléme - PHP - Programmation
Marsh Posté le 23-12-2007 à 17:04:17
Les redirections en javascript, c'est très pas bien. Il faut le faire côté serveur en PHP justement, style :
Code : |
Marsh Posté le 23-12-2007 à 17:04:38
Et je vois déjà venir un post avec "ça marche pas, j'ai une erreur "headers already sent""
Marsh Posté le 23-12-2007 à 17:14:59
Oui, je sais mais le probléme c'est que lorsque l'on utilise "hearder('Location ..." il faut pas qu'il y a d'autres instructions auparavant...
Marsh Posté le 23-12-2007 à 17:21:26
Adrienm a écrit : Oui, je sais mais le probléme c'est que lorsque l'on utilise "hearder('Location ..." il faut pas qu'il y a d'autres instructions auparavant... |
Il ne faut pas qu'il y ait d'envoi au navigateur, ce qui est logique... Ca ne devrait pas poser de problèmes, ou alors il y a un problème de conception
Marsh Posté le 23-12-2007 à 20:21:44
Oui tout à fait d'accord avec la logique de la fonction "header".
Ce que je souhaiterai, c'est que lorsque le formulaire est soumis et validé (vérifications faites, et modifications de la BDD faites) un message du genre "Mise à jours réalisé avec succès, vous allez être redirigé, veuillez patienter" et ensuite du coup on redirige au bout de quelques secondes (d'où l'existance de la variable $time).
Marsh Posté le 23-12-2007 à 20:23:42
Nan c'est pas super. Mieux vaut une page fixe, avec le message, et des liens vers ce que veux faire l'utilisateur
Marsh Posté le 23-12-2007 à 20:30:06
Ah oui, c'est pas bête, tu viens de me donner une idée!
Merci je vais tester à quoi je pense et je vous tiens au courant...
Marsh Posté le 24-12-2007 à 12:41:09
Je viens de tester pour faire une page de validation où l'utilisateur a le choix de faire ce qu'il veut... mais cela ne marche pas! En effet, je ne peux pas mettre le header car j'aurai forcement des instructions de test avant pour savoir si le formulaire a bien été rempli.
A ce compte là, moi tout ce que je veux faire, c'est quand le formulaire est soumis et valide, que la page actuelle se re-actualise (un F5 automatique).
Ce qui m'inquietète le plus, c'est qu'en JavaScript ça marchais très bien avant et je ne sais pas ce que j'ai fais et hop....
Marsh Posté le 26-12-2007 à 16:52:30
Adrienm a écrit : En effet, je ne peux pas mettre le header car j'aurai forcement des instructions de test avant pour savoir si le formulaire a bien été rempli. |
Non, les instructions ne devraient pas générer de sorties. D'après-toi, comment font les autres ? Essaye sinon d'activer l'output buffering en début de script.
Marsh Posté le 26-12-2007 à 18:51:01
Une fois le formulaire soumis:
Code :
|
A+
Marsh Posté le 26-12-2007 à 19:01:12
Johan a écrit : Une fois le formulaire soumis:
|
C'est exactement ce qu'il ne faut pas faire, du début à la fin
Marsh Posté le 26-12-2007 à 21:18:25
De toute façon mon code n'est pas composé ainsi... Voici un lien pour voir mon code.
Dans mon cas, j'ai quand même des instructions qui génére des sorties car mon en-tête est commune à toutes mes pages, je fais donc un include avant!
Voici mon code. Attention en le transformant en php, il y réside plusieurs erreurs car il manque le fichier de "lang" (mon application est multi-langues) et les différents fichiers appelés en en-tête de la page originale.
Marsh Posté le 26-12-2007 à 21:19:58
Y'a de l'idée dans ton truc, tu peux facilement faire en sorte de n'avoir pas de sortie si pas d'erreurs. Met un coup d'output buffering par exemple, et problème résolu
Marsh Posté le 26-12-2007 à 21:47:06
Developpe un peu, ta réponse n'est pas recevable pour moi
Marsh Posté le 27-12-2007 à 12:04:01
Oui milles excuses, j'étais un peu pressé
Johan a écrit :
|
Alors y'a déjà un problème, au niveau de l'ordre d'affichage : les meta ne peuvent qu'apparaître dans le <head>, le texte dans le <body>. Là t'as du mélange (même si les navigateurs sont gentils et vont corriger d'eux-même l'erreur).
Aussi, la redirection par meta refresh est fortement déconseillée, cf. Use standard redirects: don't break the back button! (anglais)
Le mieux pour traiter les formulaires, c'est découper en plusieurs fichiers. T'aura un fichier principal qui se charge de vérifier/afficher le formulaire, un fichier avec le formulaire en lui-même. On peut alors facilement rediriger vers une autre url en cas de succès, avec le bon code HTTP. Genre t'as un fichier pouet.php :
Code :
|
A toi de structurer comme tu veux, de rajouter quelques automatisations, notemment pour ce qui est de la validation des données.
Et après t'as ton formulaire.php :
Code :
|
Marsh Posté le 23-12-2007 à 16:29:03
Bonjour à tous,
Je suis en train de réaliser mon portfolio en utilisant le php/mysql.
Dans la partie d'administration lorsque l'on valide les formulaires, on apporte les modifications à la base après vérification des données et je redirige l'utilisateur avec du javascript.
C'est là que ça bloque : une fois que toutes les vérifications sont faites et que les données ont été modifié dans la base, toute ma page est disparue et il ne reste que les éléments qui sont en dessous de l'instruction JavaScript ci-dessous!
Voici mon bout de code pour cette fonction :
Si je met ces quelques lignes en commentaires, tout marche correctement.
Merci à tous!
Message édité par Adrienm le 23-12-2007 à 16:31:28
---------------
Adrien