redirection en PHP, question facile ...

redirection en PHP, question facile ... - PHP - Programmation

Marsh Posté le 18-01-2003 à 17:10:33    

Salut,
 
Voila, je cherche a rediriger une page vers une autre en fonction du mot de passe rentré.
J'ai cherché un peu sur le web et j'ai trouvé la commande suivante :
header("location: mapage.php" );
 
Je l'ai donc integré dans mon script qui est le suivant :
 
<?php
  $mdp;
              if ($mdp == "MOTDEPASSE" ) {
                  header("location: autogallery.php" );
                                     }
                else {
                 echo "pas OK";
                 header("location: index.php" );
                   }
?>
 
eh ben ca marche pas, en local ça me donne le message suivant :
 
Warning: Cannot add header information - headers already sent by ... etc
 
qu'est-ce qui ne va pas ??
 
a+
 
jibet

Reply

Marsh Posté le 18-01-2003 à 17:10:33   

Reply

Marsh Posté le 18-01-2003 à 17:15:49    

faut pas mettre le echo "pas ok"
 
et faire plutot : header( "erreur.php" )
 
 
ou si tu veux renvoyer sur la meem page :
header( index.php?erreur=1 ) et traiter la variable...

Reply

Marsh Posté le 18-01-2003 à 17:16:20    

avec les "location :" que j'ai oublié...

Reply

Marsh Posté le 18-01-2003 à 17:22:10    

ben meme sans le "echo pas OK" ça marche pas, justement, je comprends pas pourquoi ... ça ne marche déjà pas dans le IF ... qui ne contient pas de ligne supplementaire que
 
"header("location: autogallery.php" ); "
 
j'ai toujours le meme message d'erreur

Reply

Marsh Posté le 18-01-2003 à 17:30:41    

quand tu utilise header il ne faut avoir ecris aucun charactere avant,  
donc deja le echo tu peux etre sur qu'il faut le virer.
 
ensuite, tu dois avoir des char qq part
 
regarde si tu as pas tu texte avant ton script  
 
du genre:
 
debut fichier| <? heard( .....) ?>  
 
ca foirerait car au debut y un char espace ' '
 
 
..... en fait, d'apres ce que tu me dit, j'ai peur que tu ai mal utilisé la fonction header, et que ce bout de script ce trouve dans un page enorme:) donc il va surement falloir que tu change la structure de ton site:)

Reply

Marsh Posté le 18-01-2003 à 17:35:26    

ben c'est exactement ça, en fait voici la page entiere :
 
<html>
<head>
       <title>test</title>
 </head>
<body>
 
 
<?php
  $mdp;
              if ($mdp == "MOTDEPASSE" ) {
                  header( "location : autogallery.php" );
                   }
                else {
                  header( "location : index.php" );
                   exit;
                 }
 ?>
</body>
</html>
 
Il faudrait que ce soit comment alors ??

Reply

Marsh Posté le 18-01-2003 à 17:51:17    

spa du tout ce qu'il faut faire:)
 
 
si tu veux pouvoir rediriger le visiteur suivant son login faut faire :
 
1/
index.php:
ton "form" de d&part est du type : "action=LoginCheck.php"
 
2/
LoginCheck.php:
<?
 if( test( $login,$pass) )
      header(....);
  else  
       hearder(....);
?>

Reply

Marsh Posté le 18-01-2003 à 18:00:57    

Slvn a écrit :

spa du tout ce qu'il faut faire:)
 
 
si tu veux pouvoir rediriger le visiteur suivant son login faut faire :
 
1/
index.php:
ton "form" de d&part est du type : "action=LoginCheck.php"
 
2/
LoginCheck.php:
<?
 if( test( $login,$pass) )
      header(....);
  else  
       hearder(....);
?>
 


 
1/ OK, c'est bien ça, avec une methode POST
 
2/ je le place comment ce code ?
avec un <head> et un <body> ? ou comme ça, sans rien ?
 
j'ai mis ça :
 
<?
$mdp;
if( $mdp == "MOTDEPASSE" )
header( "location : autogallery.php" );
 else
header( "location : index.php" );
?>
 
sans rien de plus ... ça marche pas. Je n'ai plus de message d'erreur, mais je suis renvoyé sur rien. Page blanche.

Reply

Marsh Posté le 18-01-2003 à 18:11:56    

faut le mettre sans rien en effet,
 
normallement tu es bien redirigé.
peut etre que c "location" avec un L majuscules ..
peut etre que ta page d arrivé est vierge ?!
peut etre que tu t es planté dans le nom de la page
 
ps: a chaque fois que ut fait un "header Location" il est recommandé de placer un "exit()" juste après...

Reply

Marsh Posté le 18-01-2003 à 18:20:22    

Slvn a écrit :

faut le mettre sans rien en effet,
 
normallement tu es bien redirigé.
peut etre que c "location" avec un L majuscules ..
peut etre que ta page d arrivé est vierge ?!
peut etre que tu t es planté dans le nom de la page
 
ps: a chaque fois que ut fait un "header Location" il est recommandé de placer un "exit()" juste après...

:jap:

Reply

Marsh Posté le 18-01-2003 à 18:20:22   

Reply

Marsh Posté le 18-01-2003 à 18:44:47    

bon ben toujours pas ... je ne comprends pas. Je m'y remettrais plus tard, pour le moment, j'ai trouvé une parade simple, mais peu élégante !!  
 
<?
$mdp;
if( $mdp == "MOTDEPASSE" )
{
    echo ?><a href="autogallery.php">cliquez ici</a>
 
<?}
else
{
    echo ?><a href="index.php">cliquez ici</a>
 
<?}?>
 
et on verra plus tard !!
 
merci de votre aide en tous cas !
 
a+
 
jibet

Reply

Marsh Posté le 18-01-2003 à 18:52:53    

.... t pas tres perseverant:)

Reply

Marsh Posté le 18-01-2003 à 18:58:28    

bah non ... mais là quand même ça aurait du marcher  :cry: alors ... peut-etre qu'un autre jour ça marchera ! :sol:

Reply

Marsh Posté le 18-01-2003 à 20:15:50    

Code :
  1. <?php
  2. if ($mdp == "MOTDEPASSE" )
  3. {
  4. header("Location: autogallery.php" );
  5. exit;
  6. }
  7. else
  8. {
  9. header("Location: index.php" );
  10. exit;
  11. }
  12. ?>

la si tu n'a rien avant les <? et rien arpes le ?> ca doit tout a fait marcher
 
persevere un peu :)

Reply

Marsh Posté le 18-01-2003 à 22:11:34    

eh bien voila, la magie de l'informatique a oeuvré ... maintenant ça marche ... :??::lol:

Reply

Marsh Posté le 19-01-2003 à 00:16:50    

c la "cache" de IE je pense ...

Reply

Marsh Posté le 19-01-2003 à 00:17:12    

Slvn a écrit :

c la "cache" de IE je pense ...

oui j'allais le dire

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed