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 :

Header location ne fonctionne pas


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 23
    Par défaut Header location ne fonctionne pas
    Bonjour,

    Je développe actuellement un site en architecture MVC.
    Localement, je développe sous MAC et avec une architecture MAMP PRO. J'ai activé l'option "output_buffering = 4096", dans le fichier php.ini.

    Le problème étant que les redirections "header("Location:XXXX.XXX");" ne fonctionne pas lorsque le site est hébergé en ligne (mon hébergeur étant 1&1).
    Je dispose d'un bref formulaire de login :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <img src="images/logologin.png"/><br><br>
      <form class='login-form' action='index.php?page=connexion' method='POST'>
        <input type="text" placeholder="Identifiant" id="login" name="login">
        <input type="password" placeholder="Mot de passe" id="password" name="password">
        <button>Se connecter</button>[]()
    Et ma fonction "connexion.php" :

    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    <?php /*connexion.php*/ ?>
    <?php 
    if(isset($_GET['out'])){$_SESSION=array();
    header('Location:index.php');
    exit;
        }
    if(empty($_POST['login']) AND !empty($_POST['password'])) {
                    $password=$_POST['password'];
                    $_SESSION['__MESSAGE__'][] = "Identifiant manquant.";
    header ("Location:index.php");
            }
     
                else if(!empty($_POST['login']) AND empty($_POST['password'])) {
                    $login=$_POST['login'];
                    $_SESSION['__MESSAGE__'][] = "Mot de passe manquant.";
    header ("Location:index.php");
            }
     
                else if(empty($_POST['login']) AND empty($_POST['password'])) {
                    $_SESSION['__MESSAGE__'][] = "Identifiant et mot de passe manquant.";
    header ("Location:index.php");
            }
     
                else {
     
                if(!empty($_POST['login']) && !empty($_POST['password'])){
                    $login=$_POST['login'];
                    $password=$_POST['password'];       
     
            $sql = 'SELECT IdUtilisateur,Password,Nom,Prenom FROM utilisateur 
                    WHERE Login= :login';
     
            $stmt = $db->prepare($sql);
            $stmt->execute(array(':login'=>$login));        
     
            //y a-t-il un utilisateur ayant ce login ?
            if($stmt->rowCount()==1){
                $utilisateur = $stmt->fetch(PDO::FETCH_ASSOC);
                if(md5($password)==$utilisateur['Password']){
     
                    //stocke les valeurs dans la session
                    $_SESSION['id']=$utilisateur['IdUtilisateur'];
                    $_SESSION['nom_connexion']=$login;
                    $_SESSION['nom']=$utilisateur['Nom'];
                    $_SESSION['prenom']=$utilisateur['Prenom'];
     
                    //cherche les rôles attribués à l'utilisateur
                    $sql = 'SELECT * from role
                            JOIN attribution ON
                                attribution.idR = role.idRole
                            WHERE attribution.idU = :id';
     
                    $stmt=$db->prepare($sql);
                    $stmt->execute(array(':id'=>$_SESSION['id']));          
     
                    //on attribue le role "connecté" par défaut       
                    $_SESSION['roles'][]=1; 
     
                    //on ajoute les rôles dans la session
                    while($r = $stmt->fetch(PDO::FETCH_ASSOC)){
                        $_SESSION['roles'][] = $r['idRole'];    
                    }header("Location:index.php");
    exit;
                }//if mot de passe
            }// if nom utilisateur
        }//if paramètres passés
    $_SESSION['__MESSAGE__'][] = "Identifiants incorrects...";
    header("Location:index.php");
    exit;
                }
    ?>
    Merci d'avance de votre aide.

  2. #2
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 987
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 987
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php /*connexion.php*/ ?>
    <?php
    Ici il y a un caractère saut de ligne entre ?> et <?php, donc header ne marche pas, puisqu'il faut qu'aucun caractère ne soit envoyé avant lui.

Discussions similaires

  1. mon header location ne marche pas
    Par 123quatre dans le forum Langage
    Réponses: 1
    Dernier message: 29/12/2007, 17h46
  2. window.location ne fonctionne pas sous explorer 6
    Par karimphp dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 29/10/2007, 17h35
  3. [PHP-JS] header() qui ne fonctionne pas
    Par Panther dans le forum Langage
    Réponses: 17
    Dernier message: 18/04/2007, 08h42
  4. [Cookies] Redirection Header qui ne fonctionne pas
    Par arnaudperfect dans le forum Langage
    Réponses: 10
    Dernier message: 20/03/2007, 10h19
  5. [header: no-cache] fonctionne pas sous ff??
    Par ozzmax dans le forum Langage
    Réponses: 1
    Dernier message: 21/06/2006, 20h04

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