Se connecter avec
S'enregistrer | Connectez-vous

redirection qui ne marche pas (header php)

Dernière réponse : dans Programmation

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

Lassé par la pub ? Créez un compte
Expert Programmation

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??

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 ?.

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?

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

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.
Lassé par la pub ? Créez un compte
Tom's guide dans le monde