IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Redirection vide avec header


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 41
    Points : 46
    Points
    46
    Par défaut Redirection vide avec header
    Bonjour,

    quand je clique sur button submit il doit se rediriger sur une des deux pages selon le login et le mot de passe mais il m'affiche une page blanche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    <?php
     
    include('conf.php');
     
    $log = $_POST['login'];
     
    $pwd =$_POST['pwd'];
     
     
     
    $sql =  mysql_query("SELECT * FROM user WHERE LOGIN ='$log'"); 
     
    if(!$sql){
     
        echo("<body><p align='center'>Une erreur est survenue lors de la tentative de connexion</p></body>");
     
      }
     
    else{
     
        if(mysql_num_rows($sql) == 0){
     
          echo("<body><p  align='center'>Le nom d'utilisateur ".$log." n'existe pas</p></body>");
     
        }
     
        else{
     
          $row = mysql_fetch_array($sql);
     
          if($pwd != $row["PASS"]){
     
            echo("<body><p align='center'>Votre mot de passe est incorrect</p></body>");
     
          }
     
          else{
     
               if ($row['PROFIL'] == "admin")
     
                 {header ('location :Administrateur/admin_frame.htm'); }
     
               else {header ('location : projet_frame.htm');}
     
                 session_start();
     
                 $_SESSION['NOM'] = $row['NOM'];          
     
                 $_SESSION['PRENOM'] = $row['PRENOM'];
     
                 $_SESSION['EMAIL'] = $row['EMAIL'];
     
          }
     
        }
     
      }
     
    ?>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header ('Location: url');

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 41
    Points : 46
    Points
    46
    Par défaut
    ca change rien

  4. #4
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    Si tu as une page blanche, ça veut dire que tu as une erreur en Php, mais que coté config (php.ini) il est spécifié de ne pas afficher les erreurs.
    Ca n'aide franchement pas à comprendre se qu'il se passe, à débugger.

    Donc, vu que tu est en phase de développement, commence par faire afficher les erreurs :
    Dans le php.ini : display_errors à On (ou fait un ini_set('display_errors', true).


    A coté de ça, tu commence ton code comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $log = $_POST['login'];
    $pwd =$_POST['pwd'];
    Comment peux tu être certain que $_POST['login'] et $_POST['pwd'] existent ?
    Ne crois tu pas qu'il serait au minimum nécessaire de vérifier leur existence, voir même vérifier qu'ils contiennent quelque chose ?
    (genre un login et un mdp doivent contenir un minimum de 6 caractères).


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    if ($row['PROFIL'] == "admin") {
        header('location :Administrateur/admin_frame.htm');
    }
    else {
        header ('location : projet_frame.htm');
    }
     
    session_start();
    $_SESSION['NOM'] = $row['NOM'];          
    $_SESSION['PRENOM'] = $row['PRENOM'];
    $_SESSION['EMAIL'] = $row['EMAIL'];
    Cette phase là me semble pas correcte.
    Sauf erreur, la doc Php spécifie qu'après un header rien ne sera exécuté.
    Du coup, il serait mieux de faire ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    session_start();
    $_SESSION['NOM'] = $row['NOM'];          
    $_SESSION['PRENOM'] = $row['PRENOM'];
    $_SESSION['EMAIL'] = $row['EMAIL'];
     
    if ($row['PROFIL'] == "admin") {
        header('location :Administrateur/admin_frame.htm');
    }
    else {
        header ('location : projet_frame.htm');
    }
    Donc démarrer la session + créations des variables de sessions, ensuite faire la redirection.


    Aussi, dans ta requête, pourquoi ne pas rajouter le mdp dans la requête, c'est plus simple, non ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sql =  mysql_query("SELECT *
    FROM user
    WHERE LOGIN ='$log' 
    AND PASS = '$mdp'");

  5. #5
    Futur Membre du Club
    Inscrit en
    Mai 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 8
    Points : 7
    Points
    7
    Par défaut <meta http-equiv ="refresh" content = "0;URL=page.html">
    l'instruction header est un peut spéciale: elle ne doit pas être prècedé d'une instruction qui affiche de texte telque echo ou print .. on peut l'utilisée comme ceci par exemple dans un fichier php de déconnection ça va marché
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    session_start();
    session_unset();
    session_destroy();
    header('location:admin.php');
    ?>
    pour résoudre ton problème c'est très simple il suffit d'utiliser le tag <meta> du html alors au lieu de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header ('location :Administrateur/admin_frame.htm');
    tu fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<meta http-equiv ="refresh" content = "0;URL=Administrateur/admin_frame.htm">';
    où 0 est le temps à attendre pour faire la redirection
    bon vent

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.0] Redirection Page avec Header
    Par jojo971 dans le forum Langage
    Réponses: 3
    Dernier message: 23/11/2009, 19h01
  2. Réponses: 5
    Dernier message: 08/09/2008, 15h25
  3. Réponses: 3
    Dernier message: 28/01/2008, 23h18
  4. [PHP-JS] Problème de redirection avec header
    Par pierrot10 dans le forum Langage
    Réponses: 6
    Dernier message: 02/09/2006, 19h01
  5. Réponses: 16
    Dernier message: 01/02/2006, 20h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo