Tom's Guide > Forum > Programmation > redirection qui ne marche pas (header php)
Mot :    Pseudo :           
 

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:

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

J'ai pas lu ton code mais c'est quoi le problème?

Répondre à Rakipu

à 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

Répondre à 2Dpix

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

Répondre à Rakipu

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?

Répondre à 2Dpix

et si tu mettais un echo à la place de ton header, pour savoir si tu arrives à ce point la?

------------------------------ Réseau IRC Francophone | g33k-zone
Défiez-moi donc !
Répondre à crazycat@idn

je l'avais déja testé je crois mais je vais réessayer

Répondre à 2Dpix

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

Répondre à 2Dpix

regarde ce que te retourne $resultat

Répondre à okinou

as tu essayé de mettre un exit() derierre ton header ?

Répondre à n1kk0

tu affiches qq chose avant le header?

------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25

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?

Répondre à 2Dpix

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

Répondre à 2Dpix

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.

Répondre à n1kk0

peut etre plus tard quand j'aurai le temps, là ça marche trés bien avec une redirection javascript

Répondre à 2Dpix

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

Répondre à crazycat@idn
Tom's Guide > Forum > Programmation > redirection qui ne marche pas (header php)
Aller à :

Il y a 2425 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens