alien7
Février 6, 2005, 3:12
1
Salut
J’ai encore un ptit probleme PHP
Je cherche a faire une redirection
[cpp]switch ($acc)
{
case ‘banderole’ : header(‘location:index.php?i=banderole’);break;
case ‘casq’ : header(‘location:index.php?i=casq’);break;
}[/cpp]
mais j’obtient un message : Warning: Cannot modify header information - headers already sent by (output started at…
J’ai cherché un peu sur internet mais j’ai pas trouvé grand chose et parfois je comprenait rien
il ne faut rien envoyer avec un header (du texte par exemple)
il retour à la ligne compte comme du texte.
alien7
Février 6, 2005, 3:41
3
Bonjour NeqO
e comprends toujours pas, de quel texte ?
est ce qu emon code est correcte ?
Le code l’est, sauf que c’est L ocation et qu’il faut utiliser des url (ie: http://xxx/ ) maintenant ce que te dis php c’est simple : tu envoies des entêtes après envoi de données (quelconques).
Vérifie si avant le <?php tu n'as pas un saut de ligne qui traine (en faisant gaffe justement aux caractères blancs après le ?> d’un fichier php inclut), ou si tu fais pas un print/echo inconditionnel avant.
alien7
Février 6, 2005, 4:09
5
[cpp]
<?php
require_once("../compte/config_script.php");
$_SESSION["acc"]= $_GET["a"];
$acc= $_SESSION["acc"];
if(!@$_SESSION['idm'] || !$_SESSION['pseudom'])
{
if (isset($_GET['erreur2']))
{
$erreur2=$_GET['erreur2'];
if($erreur2=="pseudo")
{
echo"[b]"._PAGE_INDEX_ERRPSEUDO."[/b]";
}
if($erreur2=="passe")
{
echo"[b]"._PAGE_INDEX_ERRPASS."[/b]";
}
if($erreur2=="secure")
{
echo"[b]"._PAGE_INDEX_ERRLOG."[/b]";
}
if($erreur2=="level")
{
echo"[b]"._PAGE_INDEX_LEVEL."[/b]";
}
}
echo"
Identifiez-vous
Pour poursuivre votre commande, vous dvez vous identifié
"._PAGE_INDEX_PSEUDO."
"._PAGE_INDEX_PASSE."
";
}
else
{
switch ($acc)
{
case 'b' : header('location:index.php?i=b');break;
case 'c' : header('location:index.php?i=c');break;
}
}
?>
[/cpp]
Effectivement je fais un echo avant donc c’est pour ca alors ?
Je dois me debrouiller pour placer mes header avant le echo c’est bien ca ?
Je vais essayer cette solution
Merci encore
alien7
Février 6, 2005, 4:20
6
NAN ca marche toujours pas.
De plus je fais un include de ce script sur le site donc si y’a des echo derrière ca va pas marcher.
Enfin quand meme c’est bete juste a cause d’un echo.
Bon bah j’ai plus qu’a le faire en javascript
alien > réfléchis. Ton echo se fait dans la partie “vrai” du if, donc ne joue pas sur l’autre partie “faux” du if, qui utilise header.
moralité? regarde …/compte/config_script.php : le problème est là.²
alien7
Février 6, 2005, 8:05
9
Je comprends pas y’a pas grand chose dans config_scripts.php
[cpp]<?php
define(“LANG”, “fr”);
require_once(“lang/”.LANG.".php");
require_once(“conf_variables.php”);
?>[/cpp]
Dans ce cas, faut farfouiller dans chaque fichier inclu jusqu’à trouver des sorties (ex: _<?php, etc)
Bi0Lo
Février 7, 2005, 10:34
11
Si vraiment tu n’arrives à éviter cette situation, utilise une fonction dans ce genre :
[cpp]
//Fonction de redirection
function redirect_url($url) {
echo “”;
}
[/cpp]
et après tu l’appelles de cette facon :
[cpp]
switch ($acc)
{
case ‘banderole’ : redirect_url(“index.php?i=banderole”);break;
case ‘casq’ : redirect_url(“index.php?i=casq”);break;
}
[/cpp]
alien7
Février 7, 2005, 10:54
12
Oui j’utilise ca vu que ca marche pas avec header, mais bon si javascript est desactivé, là y’aura un problème.