Se connecter / S'enregistrer
Votre question

par quoi remplacer un header('Location:...'); qui ne marche pas ?

Tags :
  • Mise à jour
  • Programmation
Dernière réponse : dans Programmation
27 Mai 2008 09:47:16

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

Autres pages sur : remplacer header location marche

27 Mai 2008 11:21:09

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
27 Mai 2008 11:26:53

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" );

?>
Contenus similaires
27 Mai 2008 11:28:25

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
27 Mai 2008 11:32:07

Normalement oui.
27 Mai 2008 11:41:24

je testerai, ça me semble quand même plus "propre" que de faire un echo d'une page html ! ;-)
donia
27 Mai 2008 12:10:39

ou sinon tu passe par du java script :

  1. <?php
  2. print("<script language=\"javascript\" type=\"text/javascript\">window.location.replace(\"ma_page.php\");</script>");
  3. ?>


L'avantage est que tu le met où tu veux dans ta page.
27 Mai 2008 12:21:07

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 ;) 
27 Mai 2008 12:41:58

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
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS