Redirection automatique

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
Lolo3194
Lézard à collerette
Messages : 244
Inscription : 22 déc. 2004, 08:57

Redirection automatique

Message par Lolo3194 »

Bonjour,

A l'aide d'un formulaire, j'ajoute ou modifie les données d'une base de données. Ces données sont envoyés à un script php pour les vérifier et les enregistrer (ajout ou modification) dans la base de données. A la suite des ces opérations, je désire rediriger :
- vers une page donnée après l'enregistrement en passant une variable à la page
- vers la page précédente si les données contiennent une erreur.

Je suis arrivé à faire une rédirection autmatique en mettant la commande <meta http-equiv="refresh" content="3; URL= entre les balises <head> et </head>.
Mais cela ne correspond pas à mes souhaits.

J'ai essayé en utilisant un script javascript, mais je ne suis pas arrivé à faire passer la variable au script.

Je suis ouvert à toute proposition (préférence en php, html).
Amicalement
Laurent
WindowsXP familial SP3
Thunderbird 3.0 & Firefox 3.5.5
Avast-4.8
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

En php avec la fonction headers

Code : Tout sélectionner

headers ("Location: ...");
Lolo3194
Lézard à collerette
Messages : 244
Inscription : 22 déc. 2004, 08:57

Message par Lolo3194 »

header ("Location:) fonctionne bien.
Je l'ai découverte, après avoir posté sur le forum.

Sinon, une idée pour revenir à la page précédente. C'est à dire comment garder en mémoire, l'url de la page précédente.

Amicalement
Laurent
WindowsXP familial SP3
Thunderbird 3.0 & Firefox 3.5.5
Avast-4.8
Lolo3194
Lézard à collerette
Messages : 244
Inscription : 22 déc. 2004, 08:57

Message par Lolo3194 »

Pour revenir à la page précédente, j'utilise du javascript, n'ayant rien trouvé en php

echo '<script type="text/javascript">
<!--
history.go(-1)
-->
</script>';

Amicalement
Laurent
WindowsXP familial SP3
Thunderbird 3.0 & Firefox 3.5.5
Avast-4.8
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Euh, j'ai un peu de peine à comprendre... si tu traites le formulaire ça veut dire que tu sait de quelle page il vient, non ? Tu as plusieurs pages avec plusieurs formulaires qui pointent vers le même fichier php ? Dans ce cas tu peux simplement mettre un champ caché pour indiquer vers quelle page aller (n'oublie pas de reremplir les champs avec les données qui sont correctes :wink: )
Lolo3194
Lézard à collerette
Messages : 244
Inscription : 22 déc. 2004, 08:57

Message par Lolo3194 »

Je n'ai qu'un formulaire qui pointe vers un fichier php.
Mais je ne sais pas si je retrouve les données du formulaire, si je pointe sur la page du formulaire après être passé par le fichier php.

Le champs caché me permettrait d'envoyer une adresse au fichier php, pour lui dire de revenir à la page précédente ?

Amicalement
Laurent
WindowsXP familial SP3
Thunderbird 3.0 & Firefox 3.5.5
Avast-4.8
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Lolo3194 a écrit :Je n'ai qu'un formulaire qui pointe vers un fichier php.
Mais je ne sais pas si je retrouve les données du formulaire, si je pointe sur la page du formulaire après être passé par le fichier php.
Alors sur cette page tu peux (par exemple) faire un include() du formulaire. Pour remplir les champs corrects, utilise php pour remplir les "value" des input et autres ;-)
Lolo3194
Lézard à collerette
Messages : 244
Inscription : 22 déc. 2004, 08:57

Message par Lolo3194 »

calimo a écrit :Alors sur cette page tu peux (par exemple) faire un include() du formulaire. Pour remplir les champs corrects, utilise php pour remplir les "value" des input et autres ;-)
Peux-tu développer l'histoire du include() ?

Amicalement
Laurent
WindowsXP familial SP3
Thunderbird 3.0 & Firefox 3.5.5
Avast-4.8
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Ben ne sachant même pas comment tu fais ta page ça va être difficile.

Un include c'est une façon d'inclure une page dans une autre. Donc dans ton cas tu inclus simplement le formulaire en y rajoutant le remplissage des champs :wink:
Lolo3194
Lézard à collerette
Messages : 244
Inscription : 22 déc. 2004, 08:57

Message par Lolo3194 »

Je ne comprends si je dois mettre l'include dans la page ou je crée le formulaire ou dans le script en php traitant le formulaire.
Désolé d'être lent à comprendre

Amicalement
Laurent
WindowsXP familial SP3
Thunderbird 3.0 & Firefox 3.5.5
Avast-4.8
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Désolé d'avoir laissé trainer ça je n'ai pas eu trop de temps et je ne sais pas trop comment te répondre. Je ne sais même pas ce que tu sais déjà... tu sais ce qu'est un include() php ou je te parle chinois ?
Lolo3194
Lézard à collerette
Messages : 244
Inscription : 22 déc. 2004, 08:57

Message par Lolo3194 »

Aucun problème Calimo. Il n'y a aucune contrainte de temps.
Je ne sais pas grand chose, car je débute. Je possède quelques notions de C, donc je pense savoir à quoi correspond un include.
Après, je suis preneur de tes explications.

Pour l'instant, j'utilise du Java script, même si je suis réticent à cette solution, je dois dire qu'elle me convient un peu. Car elle me permet de retrouver mon formulaire avec ses champs rempli et d'afficher un message d'erreur pour signaler où je me suis planté.
Le seul problème c'est que j'oublie d'activer le java script 9/10.

Amicalement
Laurent
WindowsXP familial SP3
Thunderbird 3.0 & Firefox 3.5.5
Avast-4.8
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Bon, tu as, admettons, une page formulaire.php contenant le formulaire sur laquelle tu arrive. Tu la remplis. Tu la postes sur, mettons, envoi.php.

Sur cette page "envoi" tu fais l'analyse. Je pense que c'est OK. Là tu peux mettre une condition sur cette page envoie

Code : Tout sélectionner

<?php
if !($verif1) $ok==false;
elseif ($verif2) $ok==false;
...
if($ok) {
inscrire_donnees_dans_b_d();
headers ("Location : reussi.php");
}
else {
include (formulaire.php)
}
Et ensuite dans le formulaire.php (qui est maintenant inclus dans envoi.php) tu peux remplir les variables, vu qu'elles sont dans la même page. Sinon tu peux également tout simplement répéter le formulaire dans la page en incluant les données correctes :wink:
Lolo3194
Lézard à collerette
Messages : 244
Inscription : 22 déc. 2004, 08:57

Message par Lolo3194 »

Je teste tout cela dès que le calme revient autour de moi.
Je te tiens au courant de l'évolution.

Amicalement
Laurent
WindowsXP familial SP3
Thunderbird 3.0 & Firefox 3.5.5
Avast-4.8
Asumbaa
Tyrannosaurus Rex
Messages : 2411
Inscription : 08 déc. 2004, 20:07

Message par Asumbaa »

Euh...

$ok=false; plutôt que $ok==false; :wink:
Sinon tu vas avoir des petites surprises...
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité