Page 1 sur 1

Problème de redirection aléatoire

Posté : 14 janv. 2008, 23:19
par Anaechoic
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

Posté : 15 janv. 2008, 00:11
par Genova
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).

Posté : 15 janv. 2008, 01:28
par Anechoic
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...

Posté : 15 janv. 2008, 02:00
par Genova
<?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.

Posté : 15 janv. 2008, 04:09
par AB
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.

Posté : 15 janv. 2008, 10:47
par Ryle
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 ;)