Header()

Petit nouveau ! | 2 Messages

02 déc. 2007, 20:08

hello

Suis débutant en PHP et j'aimerai faire une redirection, le problème c'est que j'aimerai dans le header() passer une variable, mais j'arrive pas à le faire fonctionner et je ne trouve pas d'infos

Code : Tout sélectionner

$URL = "Location:".$r['redirectURL']; header("'".$URL."'");
Un ptit coup de main ne serait pas de refus.

Eléphant du PHP | 97 Messages

02 déc. 2007, 20:16

Salut, pour mettre des variables dans un header , tu peux faire comme ci dessous :
<?php
/* Redirige vers une page différente du dossier courant */
$host  = $_SERVER['HTTP_HOST'];
$uri   = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$extra = 'mypage.php';
header("Location: http://$host$uri/$extra");
exit;
?>
Cet exemple est honteusement copier/coller de la doc php.net :

Dans le cas présent : http://fr2.php.net/manual/fr/function.header.php

Cela dit tu t'es mélangé les pinceaux avec les quote et double-quote et la concatenation.

Pour faire simple :
$URL = $r['redirectURL']; //J'imagine que c'est un tableau qui contient une url complete (?)
                            header("Location: $URL");
Et normalement ca devrait marcher, tout dépend de ce que contient $r['redirectURL']

Petit nouveau ! | 2 Messages

02 déc. 2007, 22:54

Ok je peux pas essayer ça tout de suite, mais je te remercie d'avance d'avoir pris le temps de répondre.
Bonne soirée

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

03 déc. 2007, 11:30

Sortez vos variables !! Image

Le seul soucis dans ton code initial, c'était la concaténation des apostrophes :)

Ce qu'il faut bien voir, c'est que la fonction header() (comme beaucoup) attends une chaine en paramètre. Donc dès le moment où tu lui spécifies une chaine (qu'elle soit en dur, contenue dans une variable, ou qu'il s'agisse d'éléments concaténés) elle va fonctionner :
$URL = "Location:".$r['redirectURL']; 
header($URL);

// ou bien directement
header("Location:".$r['redirectURL']);
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...