Bonsoir,
voici ce qui ne marche pas :Ce que je souhaite faire étant clair (je pense), quelle serait la bonne syntaxe (car là, il ne trouve pas la page) ?Code:header('Location: http://www.---index.php?err=$erreur');
Version imprimable
Bonsoir,
voici ce qui ne marche pas :Ce que je souhaite faire étant clair (je pense), quelle serait la bonne syntaxe (car là, il ne trouve pas la page) ?Code:header('Location: http://www.---index.php?err=$erreur');
As tu oublié que php n'interprète pas les chaines de caractères entourées par de simples quotes ?
Et n'oublies pas de mettre un exit derrière ton header. Il faut toujours un exit derrière un header de redirection sinon cela peut produire des bugs erratiques.
Au passage c'est quoi les trois tirets devant le index.php ?
Bien sûr que non, et je savais que ma syntaxe était fausse, mais c'était pour faire comprendre ce que je voulais faire. Par contre, je viens de faire un nouvel essai et là, je ne comprends pas pourquoi ça ne marche pas (plus page non trouvée, mais page blanche :() (et qu'est-ce qui marcherait ?) :Citation:
As tu oublié que php n'interprète pas les chaines de caractères entourées par de simples quotes ?
Et voilà l'explication des tirets : c'était juste pour masquer l'URL, mais comme y a rien de confidentiel...Code:
1
2
3 if ($erreur!='') { $url="'Location: http://www.vercorhandisport.org/test/erreur_saez58/index.php?err=".$erreur."'"; header($url); exit();}
Au passage, les redirections faites en javascript, faut-il aussi mettre un <?php exit(); ?> après ?
comme ça ?Code:
1
2
3 <script language="javascript"> window.location="http://vercorshandisport.org/test/saez58/index.php" </script>
Code:
1
2
3
4<script language="javascript"> window.location="http://vercorshandisport.org/test/saez58/index.php" </script> <?php exit(); ?>
Code:$url="Location: http://www.vercorhandisport.org/test/erreur_saez58/index.php?err=".$erreur;
Avec ça, page non trouvée...et dans la barre d'adresse du navigateur est affichée l'URL du fichier appelant et non celle du fichier sur lequel on veut faire la redirection.
Il semble que l'adresse http://www.vercorhandisport.org/test/erreur_saez58/index.php n'existe pas, tout simplement.
Ceci dit, tu ne confonds pas avec http://vercorshandisport.org/test/saez58/index.php ? :whistle:
:roll:Citation:
Au passage, les redirections faites en javascript, faut-il aussi mettre un <?php exit(); ?> après ?
Bien évidemment, sinon, comment JavaScript pourrait savoir qu'il faut stopper le code PHP ! :mrgreen:
Il y avait bel et bien une erreur dans l'URL, et si je la corrige :ça marche !Code:
1
2
3 if ($erreur!='') { $url="'Location: http://vercorshandisport.org/test/erreur_saez58/index.php?err=".$erreur."'"; header($url); exit();}
+1 pour Sabotage qui m'a donné la solution.
et pour info, voici la partie utile de la page vers laquelle on redirige :Ce formulaire a pour but de laisser le temps de lire le message d'erreur.Code:
1
2
3
4
5
6
7
8 <?php $erreur=$_GET['err']; $erreur=str_replace("_"," ",$erreur); echo $erreur; ?> <form onclick="javascript:history.go(-1);"> <input type="submit" value="OK"> </form>
hum... moi aussi je t'avais donné la solution, il te suffisait de remplacer les simples quotes par des doubles quotes et ça aurait fonctionné.
Sabotage t'a donné une syntaxe avec la concaténation qui permet de mieux visualiser les variables (méthode que je préfère également) mais dans ce cas de figure les deux méthodes se valent et produisent le même résultat.Code:
1
2 header("Location: http://vercorshandisport.org/test/erreur_saez58/index.php?err=$erreur"); exit;
Là où tu fais fort c'est pour t'arranger, après plusieurs bonnes réponses qui t'ont donné la solution, à terminer par fournir un exemple qui ne fonctionne pas : il ne faut pas quoter des variables quand on les passe à une fonction et doncne peut pas fonctionner !Code:
1
2 $url="'Location: http://vercorshandisport.org/test/erreur_saez58/index.php?err=".$erreur."'"; header($url);
Tu as le choix entre
ouCode:$url='Location: http://vercorshandisport.org/test/erreur_saez58/index.php?err='.$erreur;
ou encoreCode:$url="Location: http://vercorshandisport.org/test/erreur_saez58/index.php?err=".$erreur;
mais pas ce que tu as écrit ;)Code:$url="Location: http://vercorshandisport.org/test/erreur_saez58/index.php?err=$erreur";
Pas de jaloux, et de plus, tu as raison, car ça ne marche pas avec ce que j'avais écrit, mais si je regarde le code, ta 2e solution ! (Je sais pas où j'ai pêché ça alors que je l'ai jamais codé comme ça).
Ce que je veux dire, c'est que j'ai jamais codé comme j'avais écrit (d'où je ne sais pas d'où ça sort...), mais comme ta 2e solution :Code:
1
2
3 if ($erreur!='') { $url="Location: http://vercorshandisport.org/test/erreur_saez58/index.php?err=".$erreur; header($url); }
C'est ce que tu avais déjà écrit dans ton second message ici, d'où d'ailleurs la réponse de sabotage qui te montrait une des solutions pour faire une concaténation correcte puisque apparemment tu t'étais orienté vers cette solution plutôt que vers ma solution facile, ensuite le code était correct mais l'adresse fausse d'où la réponse de Bovino, et enfin ton résumé final reprenait le code erroné de ton second message, d'où mes dernières interventions. Voilà pour la petite histoire de ce topic :)
:P:P:P
Je réactive cette discussion car j'ai fait une modif, et ça marche plus :cry:Code:
1
2 if ($erreur!='') { header("Location: http://vercorshandisport.org/test/erreur_saez58/index.php?err=$erreur");}
Et qu'est-ce qui ne marche plus exactement ? La redirection n'est pas faite ou la variable n'est pas passée ou l'adresse est fausse ? Il me semble aussi que tu as oublié le "exit" après le header de redirection.
Tu as raison pour l'exit, mais si je le rajoute, ça change rien...Sinon, hier soir, j'ai bien réalisé que j'avais pas dit ce qui n'allait pas, mais j'avais déjà éteint l'ordi et m'étais couché...Donc ce qui se passe maintenant : page blanche donc redirection pas faite, et même si je reprends le code du 17/03 23h50 (en rajoutant le exit :zoubi: ).
Bon, comme je n'arrive plus à faire marcher ma redirection PHP, j'ai fait une redirection javascript :
et erreur_saez58/index.php :Code:
1
2
3
4
5
6
7
8
9
10
11
12 if ($erreur!='') { $_SESSION['err']=$erreur; ?> <script language="javascript"> window.location="http://vercorshandisport.org/test/erreur_saez58/index.php"; </script> <?php exit();} ?>
(car le but, c'était juste d'afficher un message d'erreur...)Code:
1
2
3
4
5 <?php $erreur=$_SESSION['err']; $erreur=str_replace("_"," ",$erreur); echo $erreur; ?>