Votre question

redirection qui ne marche pas (header php)

Tags :
  • Echo
  • Programmation
Dernière réponse : dans Programmation
Anonyme
7 Janvier 2007 12:35:49

Bonjour,

J'ai déjà posté il y a quelques jours pour le même problème, mais je n'avais pas eu de réponse à mon problème.

J'ai une redirection par header php qui refuse de fonctionner, on m'as dit de poster tout le début du code car le problème ne vient surement pas de la redirection mais des lignes qu'il y a avant :
Citation :

<?php
include('bd.inc.php');
if(!empty($_POST["id_limite"])){
$id_limite = $_POST["id_limite"];
}elseif(!empty($_GET["id_limite"])){
$id_limite = $_GET["id_limite"];
}else{
echo 'Le script manque d\'informations pour continuer<br />';
exit();
}
if(!empty($_POST["id"])){
$id = $_POST["id"];
}elseif(!empty($_GET["id"])){
$id = $_GET["id"];
}else{
echo 'Le script manque d\'informations pour continuer<br />';
exit();
}
$id--;
if($id == $id_limite){
//REMISE DES TEMPS DES ANNONCES A 0 POUR EVITER LA SUPPRESSION DES ANNONCES
$sql = "SELECT id_membre FROM membres WHERE source='sitea'";
$resultat = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
while($data = mysql_fetch_assoc($resultat)){
$sql = "UPDATE autos SET datannonce='".time()."' AND dateinsertion='".time()."' WHERE membre_id='".$data["id_membre"]."'";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
}
echo 'Enregistrement terminé';
exit();
}

$sql = "SELECT sitea_num FROM sitea_ignore WHERE sitea_num='".$id."'"; //on regarde si on doit ignorer l annonce ou non
$resultat = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
if(mysql_num_rows($resultat) != 0){
header('Location: integration2.php?id='.$id.'&id_limite='.$id_limite);
}


Voilà, merci de votre aide.. :hello: 

Autres pages sur : redirection marche header php

Anonyme
7 Janvier 2007 13:39:43

up
7 Janvier 2007 14:11:23

J'ai pas lu ton code mais c'est quoi le problème?
Contenus similaires
Anonyme
7 Janvier 2007 14:14:24

à la fin de l'extrait de code que j'ai donné, la redirection par header ne se fait pas alors mysql_num_rows($reslutat) est égal à 1
7 Janvier 2007 14:20:23

http://fr3.php.net/header
Citation :

Note : HTTP/1.1 demande une URI absolue comme argument de Location:, y compris le protocole, hôte et chemin absolu. Mais certains navigateurs acceptent les URI relatives. Vous pouvez généralement utiliser les variables globales $_SERVER['HTTP_HOST'], $_SERVER['PHP_SELF'] et dirname() pour construire vous-même une URI absolue :

T'as essayé avec un chemin absolu??
Anonyme
7 Janvier 2007 14:24:47

non mais plus loin dans mon script j'ai le même header avec la même url et ça marche. tu penses que je dois mettre un chemin absolu?
a c 145 L Programmation
7 Janvier 2007 15:12:34

et si tu mettais un echo à la place de ton header, pour savoir si tu arrives à ce point la?
Anonyme
7 Janvier 2007 15:14:47

je l'avais déja testé je crois mais je vais réessayer
Anonyme
7 Janvier 2007 15:59:37

pour tester j'ai mit ce code :

Citation :

if(mysql_num_rows($resultat) != 0){
//header('Location: integration2.php?id='.$id.'&id_limite='.$id_limite);
echo 'ici script de redirection';
echo $id;
exit();
}else{
echo 'pas de redirection';
echo $id;
exit();
}


et j'ai bien eu sur la page 'ici script de redirection'

ensuite j'ai modifié la page pour faire une redirection vers une page quelquonque:

Citation :

if(mysql_num_rows($resultat) != 0){
header('Location: http://www.google.com');
}


et là le script à continuer de s'éxécuter comme si il n'avait pas eu de redirection..

Je suis perdu là, quelqu'un comprend ?.
Anonyme
7 Janvier 2007 16:26:28

up!
7 Janvier 2007 17:24:13

regarde ce que te retourne $resultat
7 Janvier 2007 17:33:12

as tu essayé de mettre un exit() derierre ton header ?
7 Janvier 2007 19:50:50

tu affiches qq chose avant le header?
Anonyme
7 Janvier 2007 20:12:51

okinou > $resultat me retourne 1
coca25 > pas d'affichage avant le header, de toute façon si il y avait un affichage avant le header, il y aurait un Warning
n1kk0 > je veut bien tester avec un exit() mais quel est l'interet, normalement header redirige sans se soucier de la suite du code non?
Anonyme
7 Janvier 2007 20:23:41

j'ai testé avec un exit(); c'est toujours pareil,
c'est vraiment bizarre car quand j'ai un echo, ça s'affiche correctement et quand je met un header à la place, il ne se passe rien.

Bon, provisoirement je vais rediriger en javascript, mais si quelqu'un peut m'expliquer le problème, je veut bien
7 Janvier 2007 20:47:47

le header "redirige" OUI
mais la suite du script est bien interprétée et éxécutée.
Le header ne fait que débuter une sortie http avec un entete de type 301 par défaut, d'ou ma tentative au cas ou ta sortie n'était pas flushée et que la suite de ton script empechait l'entete d'etre correctement interprétée par le navigateur.

Bref un coup dans l'eau ;) 

Au pire tu peux tenter de voir avec un httpliveheader (plugin firefox) ce qui se passe dans ton navigateur.
Anonyme
8 Janvier 2007 19:24:19

peut etre plus tard quand j'aurai le temps, là ça marche trés bien avec une redirection javascript
a c 145 L Programmation
8 Janvier 2007 19:29:12

question stupide: tu as essayé avec:
die("<meta http-equiv=\"refresh\" content=\"0; URL=page.php\">");
Certains hébergeurs interdisent l'ajout d'headers.
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