Page 1 sur 1

Probléme de redirection !!

Posté : 11 juil. 2007, 10:18
par angebleu17
Bonjour,

En fait j'ai une page php avec un formulaire (formulaire.php), lorsque l'on clique sur le bouton submit, j'appelle la même page avec une variable dans l'url : formulaire.php?action=inscription

Donc ensuite je récupére la variable action et je fait un test sur les données envoyé afin de voir si le formulaire est correctement rempli ou non. S'il manque des infos je met un message d'erreur en affichant le formulaire en dessous des messages d'erreur sinon j'effectue les requêtes et je redirige ma page vers une autre..

Le probléme c'est que la redirection marche une fois sur 2.. Quand ça ne marche pas, le navigateur met : IE ne peut pas afficher cette page web.

Voici mon code de redirection :
?>
<script language="javascript">
window.location.href="page.php?id=<?php echo $id; ?>";
</script>
<?
Donc là ça marche une fois sur 2 et je ne vois pas pourquoi, le code est bon pourtanr !!
J'aimerais bien mettre un header mais le probléme c'est qu'au début de ma page j'inclu un fichier php qui affiche les informations de la personne. Donc forcément le header ne marche pas...

Au début de ma page j'inclu juste le fichier php qui affiche les infos de la personne, je fais session_start() et je me connecte à la base. Donc je ne vois pas ce qui bug pour la redirection..

je ne sais pas trop comment faire pour que ça fonctionne, j'avais pensé au lieu de rediriger vers l'autre page, recharger ma page ou allé au début de la page avant que j'inclu mon fichier php et faire le header..

Enfin je ne sais pas trop.. je ne vois pas pourquoi la redirection en javascript bug..

Posté : 11 juil. 2007, 10:28
par Genova
Bonjour,
je te déconseille de passer par Javascript pour des redirections (d'une part car si l'utilisateur a désactivé JS il ne sera pas redirigé, d'autre par car les redirections javascript sont très chiantesp our l'utilisateur à cause de l'impossibilité de faire précédent sur son navigateur).

Il existe d'autres solutions tout aussi simple pour les redirections :
Redirection HTML (à placer dans le <head> de ta page)

Code : Tout sélectionner

<meta http-equiv="Refresh" content="3;url=url_de_redirection">
Redirection PHP via header (à appeler avant tout envoie de HTML à la page)

Code : Tout sélectionner

header('location: url_de_redirection');

Posté : 11 juil. 2007, 10:43
par angebleu17
Le probléme c'est que le header ne marche pas car au tout début de ma page j'inclu un fichier ou il y a des echo''.

Pour la redirection HTML, ça marche mais c'est long a rediriger.. il réaffiche la page actuel et ensuite il affiche la page de redirection, mais ça prend au moins 10 secondes a rediriger, c'est long.. c'est normal ?

Posté : 11 juil. 2007, 10:53
par Genova
Dans content="3;url=url_de_redirection" il y a le numéro 3 qui correspond au nombre de secondes d'attentes. Essaie de voir si en mettant 0 ou 1 c'est pas plus rapide.

Enfin la meilleure solution reste le header() PHP, essaie de faire en sorte de l'appeler avant le include de ta page.

Posté : 11 juil. 2007, 11:12
par angebleu17
En mettant 0 ça va plus vite. Par contre une fois sur 3 ou 4 ça ne marche pas .. toujours le même bug !! :?

Est ce qu'en mettant ça, ça irait mieux :
?>
<SCRIPT>
<?
printf("document.location='page.php?';\n");
?>
</SCRIPT>
<?
Par contre je n'arrive pas a passer des variables php dans l'URL..

Je ne comprend pas pourquoi cette redirection bug tout le temps.. pourtant il n'y a rien de "bizar" dans ma page !!

j'ai même rediriger sur la même page en mettant une variable dans l'url et en haut de ma page je récupére la variable et je fait un header, donc le header marche (il ne met pas d'erreur) mais ça bug quand même : IE ne peut pas afficher cette page web.. :cry:



Re : Je pense avoir trouver !! En fait j'avais mis la balise <head> au début et à la fin et je n'avais pas mis de <body> et là en mettant a chaque fois les balises <head> :
<head> .. le code javascript </head>

ça ne bug plus.. c'est possible que ça soit du à ça ???[/b]