Problème de redirection aléatoire

Anaechoic
Invité n'ayant pas de compte PHPfrance

14 janv. 2008, 23:19

Bonsoir !
J'essaie de faire une redirection vers une URL que je crée dynamiquement dans PHP, comme ceci :
<?php
$ha = rand(0,200);
$hb = rand(0,200);
$hns = rand(0,1);
if($hns == 0) {
	$hc1 = "N";
} else {
	$hc1 = "S";
}
$heo = rand(0,1);
if($heo == 0) {
	$hc2 = "E";
} else {
	$hc2 = "W";
}
$url = "http://objects.activeworlds.com/cgi-bin/teleport.cgi?Azura_".$ha.$hc1."_".$hb.$hc2."_4A";
?>
Bref ça crée une URL qui, ouverte dans un certain navigateur (une sorte de Second Life) téléporte le joueur. BREF je crée bien l'url, j'ai verifié en mettant un echo, mais je n'arrive pas a faire la redirection ! J'ai essayé de rajouter :

Code : Tout sélectionner

<meta http-equiv="refresh" content=$url />
Mais ça ne marche pas du tout...
Help :)

Merci d'avance

ViPHP
ViPHP | 928 Messages

15 janv. 2008, 00:11

Salut,
tu peux faire une redirection avec les headers de cette façon :
header('location: http://www.tonurl.com');
Attention : à placer avant tout envoie de HTML au navigateur (avant les echo par exemple).

Anechoic
Invité n'ayant pas de compte PHPfrance

15 janv. 2008, 01:28

Euh, j'ai tenté :
<?php
header('location: $url'); 
$ha = rand(0,200);
$hb = rand(0,200);
$hns = rand(0,1);
if($hns == 0) {
	$hc1 = "N";
} else {
	$hc1 = "S";
}
$heo = rand(0,1);
if($heo == 0) {
	$hc2 = "E";
} else {
	$hc2 = "W";
}
$url = "http://objects.activeworlds.com/cgi-bin/teleport.cgi?Azura_".$ha.$hc1."_".$hb.$hc2."_4A";
echo $url;
?>
Mais ça ne marche pas...

ViPHP
ViPHP | 928 Messages

15 janv. 2008, 02:00

<?php
$ha = rand(0,200);
$hb = rand(0,200);
$hns = rand(0,1);
if($hns == 0) {
    $hc1 = "N";
} else {
    $hc1 = "S";
}
$heo = rand(0,1);
if($heo == 0) {
    $hc2 = "E";
} else {
    $hc2 = "W";
}
$url = "http://objects.activeworlds.com/cgi-bin/teleport.cgi?Azura_".$ha.$hc1."_".$hb.$hc2."_4A";
header('location: $url'); 
?> 
plutôt.

ViPHP
AB
ViPHP | 5818 Messages

15 janv. 2008, 04:09

J'ai pris l'habitude de faire suivre mes redirection avec header par un exit(); Cela te seras utile quand tu feras des redirections avant la fin de la page. Sinon la redirection peut ne pas se faire.

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

15 janv. 2008, 10:47

Ouep, et pis dans les bonnes habitudes à prendre, j'ajouterais de toujours garder un "L" majuscule à "Location" (certains navigateur pouvant interpréter l'entête différement si elle n'est pas spécifiée correctement) et sortir ses variables des chaines, surtout quand on les délimite d'apostrophes (!!).
header('Location: '.$url);
Ah et pis ne pas utiliser une variable tant qu'elle n'a pas été déclarée, le header marchera bien mieux si $url existe avant ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...