par quoi remplacer un header('Location:...'); qui ne marche pas ?
Forum Programmation : par quoi remplacer un header('Location:...'); qui ne marche pas ?
bonjour
je n'arrive pas à faire la redirection de ma page.
il me semble avoir lu que cette intruction header('Location:..') devait être utilisée dans le <head> avant tout autre action, donc ce n'est peut-être pas ce qu'il me faut.
mon prog fait la mise à jour d'une base de données, puis je voudrais qu'il sorte en étant débranché sur une page "merci.html".
quelle instruction utiliser?
voilà ce que j'ai actuellement dans mon code:
<?php
require_once('connection_base.php');
$AgePere=$_POST['AgePere'];
$AgeMere=$_POST['AgeMere'];
$PaysEnfant=$_POST['PaysEnfant'];
$PaysParents=$_POST['PaysParents'];
$AnneeAdoption=$_POST['AnneeAdoption'];
$db = $liens; // initialisé dans le connection_base.php
$sql = "INSERT INTO `adoptionmliens`.`AjoutStat`(Cle, PaysEnfant, AgePere, AgeMere, PaysParents, NbEnfant, TypeDemarche, AnneeAdoption) VALUES('','$PaysEnfant','$AgePere','$AgeMere','$PaysParents','$NbEnfant','$TypeDemarche','$AnneeAdoption')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
mysql_close(); // on ferme la connexion
?>
<html>
<head>
<?php
header('Location:merci.html');
exit();
?>
</head>
<body>
</body>
</html>
j'ai essayé de mettre le header dans le 1er pavé php mais ça ne marche pas non plus.
y'a plus que ça qui me manque et j'ai fini mon module ! ça m'énerve de perdre du temps là dessus, j'ai déjà passé 2h hier soir!
est-ce que quelqu'un connait la réponse à mon problème?
merci
donia
Pour fonctionner le header("Location:./merci.html" );
doit etre envoyer avant tout code html, qu'il soit
en "dur" ou généré par un echo
tu peux tenter ça:
<meta http-equiv='Refresh' content='0; URL=merci.html'>
ça devrai marcher
Message édité par azen29 le 27-05-2008 à 11:26:55
En fait tu n'as pas besoin de ça,
il suffit que tu vires tout le code html
car de toute façon tu n'affiches rien testes donc comme ça:
<?php
require_once('connection_base.php');
$AgePere=$_POST['AgePere'];
$AgeMere=$_POST['AgeMere'];
$PaysEnfant=$_POST['PaysEnfant'];
$PaysParents=$_POST['PaysParents'];
$AnneeAdoption=$_POST['AnneeAdoption'];
$db = $liens; // initialisé dans le connection_base.php
$sql = "INSERT INTO `adoptionmliens`.`AjoutStat`(Cle, PaysEnfant, AgePere, AgeMere, PaysParents, NbEnfant, TypeDemarche, AnneeAdoption) VALUES('','$PaysEnfant','$AgePere','$AgeMere','$PaysParents','$NbEnfant','$TypeDemarche','$AnneeAdoption')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
mysql_close(); // on ferme la connexion
header("Location:./merci.html" );
?>
Message édité par azen29 le 27-05-2008 à 11:32:37
merci
j'ai contourné le problème en faisant un echo de ma page merci.html.
l'exemple que tu donnais permet l'éxécution du module php avant de faire le redir?
donia
Normalement oui.
merci azen29, je testerais ça pour mon prochain batch.
donia
je testerai, ça me semble quand même plus "propre" que de faire un echo d'une page html ! ;-)
donia
ou sinon tu passe par du java script :
Code :
|
L'avantage est que tu le met où tu veux dans ta page.
Message édité par jerbe le 27-05-2008 à 12:14:01
mes autres sites : http://jeremy1000.free.fr > http://jybforum.free.fr
Répondre à jerbe
l'inconvénient c'est que tous les internautes n'ont pas le JS d'activer sur le navigateur.
Il faut utilisé soit Header, soit META, dans ce cas là, tu es sur d'avoir un fonctionnement pour 100% de tes clients.
ton code corrigé :
<?php
require_once('connection_base.php');
$AgePere=$_POST['AgePere'];
$AgeMere=$_POST['AgeMere'];
$PaysEnfant=$_POST['PaysEnfant'];
$PaysParents=$_POST['PaysParents'];
$AnneeAdoption=$_POST['AnneeAdoption'];
$db = $liens; // initialisé dans le connection_base.php
$sql = "INSERT INTO `adoptionmliens`.`AjoutStat`(Cle, PaysEnfant, AgePere, AgeMere, PaysParents, NbEnfant, TypeDemarche, AnneeAdoption) VALUES('','$PaysEnfant','$AgePere','$AgeMere','$PaysParents','$NbEnfant','$TypeDemarche','$AnneeAdoption')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
mysql_close(); // on ferme la connexion
header('Location:merci.html');
exit();
?>
tu n'était pas loin
merci okinou, j'avais testé mais en laissant les balises html, body etc. et ça ne marchait pas. faut que je teste en enlevant tout ça.
donia
Il y a 2305 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

okinou