Probleme de redirection

Signaler
-
 nicotontige -
*login.php
<?php session_start();?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
</html>
<?php include 'connect_bd.php'; ?>
<?php
if(isset($_POST['cin'])){ $cin=$_POST['cin']; } else $cin="";
if(isset($_POST['motdepasse'])){$motdepasse=$_POST['motdepasse'];}else$motdepasse="";

if(empty($cin) OR  empty($motdepasse))
 echo '
Veuillez remplir tous les champs ';
else {
 
$sql1="select * from utilisateur where cin='$cin' AND mot_de_passe='$motdepasse' AND type='admin'";

$sql2="select * from utilisateur where cin='$cin' AND mot_de_passe='$motdepasse' AND type='utilisateur'";

if(mysql_num_rows(mysql_query($sql1))==0)
{echo "
Veuillez vérifier le numéro de CIN et le mot de passe " ;}
else{
     if(mysql_query ($sql1)) 
     {  
       session_register("cin");
       session_register("motdepasse"); 

       echo "Vous êtes authentifié";
       header("location: menu.php");
     }
     else {
       header("location: login.php");
       echo "
Veuillez vérifier le numero de CIN et le mot de passe " ;
      }
     }
 
if(mysql_num_rows(mysql_query($sql2))==0)
{echo "
Veuillez vérifier le numéro de CIN et le mot de passe " ;}
else{
     if(mysql_query ($sql2)) 
     { 
        session_register("cin");
        session_register("motdepasse"); 
       echo "Vous êtes authentifié";
       header("location: u_add.php");
     }
     else {
       header("location: login.php");
       echo "
Veuillez vérifier le numero de CIN et le mot de passe " ;
      }
     }   

}
mysql_close();
?>


*u_add.php
<?php
session_start ();  
if (!(isset ($ _SESSION ['cin'])))
 header("location:login.php");
?>

pourquoi le code du u_add.php ne fonctionne pas il ne fait pas la redirection?
Merci

1 réponse

Bonjour,

un header doit TOUJOURS se placer en premier.
Je veux dire par là, que tu ne peux pas afficher de texte (ici un echo) avant un header.

[quote=php.net]N'oubliez jamais que header() doit être appelée avant que le moindre contenu ne soit envoyé, soit par des lignes HTML habituelles dans le fichier, soit par des affichages PHP. Une erreur très classique est de lire un fichier avec include ou require, et de laisser des espaces ou des lignes vides, qui produiront un affichage avant que la fonction header() ne soit appelée. Le même problème existe avec les fichiers PHP/HTML standards./quote