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

PHP & Base de données Discussion :

la redirection ne marche pas


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Inscrit en
    Septembre 2008
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 40
    Par défaut la redirection ne marche pas
    Bonjour tout le monde,

    Merci de m'aider à trouver pourquoi la redirection ne marche pas. Dés que le couple login/mot de passe est correct, l'utilisateur est redirigé vers un autre fichier. C'est cette redirection qui marche pas.

    voici le code:
    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
    <?php
    require_once('includes/fonctions.php');
    $bdd = connexionBD();
    // on teste si le visiteur a soumis le formulaire de connexion
    if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
        if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['password']) && !empty($_POST['password']))) {
     
    $login = $_POST['login'];
    $password = md5($_POST['password']);
    //var_dump($login);
    //var_dump($password);
        // on teste si une entrée de la base contient ce couple login / pass
        $req = $bdd->prepare("SELECT count(*) FROM employe WHERE login = :login AND password = :password");
        $req->bindParam(":login",$login);
        $req->bindParam(":password",$password);
        $req->execute() or die(print_r($req->errorInfo()));
    //var_dump($req);
        $data = $req->fetch(PDO::FETCH_NUM);
        //var_dump($data);
        // si on obtient une réponse, alors l'utilisateur est un membre
        if ($data > 0) {
            session_start();
            $_SESSION['login'] = $_POST['login'];
            header('Location: bondecommande.php');
            exit();
        }
        // si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
        elseif ($data[0] == 0) {
            $erreur = 'Compte non reconnu.';
        }
        // sinon, alors la, il y a un gros problème <img src="../../bundles/tinymce/vendor/tiny_mce/plugins/emotions/img/smile.png" title=":)" alt=":)">
        else {
            $erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
        }
        }
        else {
        $erreur = 'Au moins un des champs est vide.';
        }
    }
    ?>
    <html>
    <head>
    <title>Accueil</title>
    </head>
     
    <body>
    Connexion à l'espace membre :<br />
    <form action="index.php" method="post">
    Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
    Mot de passe : <input type="password" name="password" value="<?php if (isset($_POST['password'])) echo htmlentities(trim($_POST['password'])); ?>"><br />
    <input type="submit" name="connexion" value="Connexion">
    </form>
    <a href="inscription.php">Vous inscrire</a>
    <?php
    if (isset($erreur)) echo '<br /><br />',$erreur;
    ?>
    </body>
    </html>
    A vous

  2. #2
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Salut.
    Pour savoir combien de tuples te retourne ta requête en lecture en PDO, le code est le suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $res = $DB->query('SELECT COUNT(*) FROM table');
    $num_rows = $res->fetchColumn();
    Toute autre chose : on ne code pas les mdp en md5, bcp trop faible. On trouve partout sur internet des dictionnaires de données qui te disent quel mot de passe crypté en md5 mène à quel crypt. Alors ok, officiellement, ce qui est crypté ne peut point être décrypté, mais à l'arrivée, ça revient un peu au même.
    Et au delà de ton site, les clients ont souvent le même mot de passe pour tous les sites. Tu es le maillon faible lol.

    Bref, prends plutôt une librairie PHP de qualité professionnelle et gratuite, qui tient à jour les failles de sécurité : mcrypt ou autre ?

    Une dernière chose : bravo pour les requêtes préparées, mais c'est encore mieux avec le type attendu (voir exemples ci-dessous) :

    http://www.php.net/manual/fr/pdostatement.bindparam.php
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

Discussions similaires

  1. [.htaccess] Pourquoi cette redirection ne marche pas ?
    Par brunoperel dans le forum Apache
    Réponses: 15
    Dernier message: 16/03/2010, 14h16
  2. [ASP.NET C#] Redirect qui marche pas
    Par vin100H dans le forum ASP.NET
    Réponses: 11
    Dernier message: 10/08/2007, 20h54
  3. Ma redirection ne marche pas si la page existe !
    Par pdtor dans le forum Apache
    Réponses: 1
    Dernier message: 07/08/2007, 21h05
  4. redirection qui marche pas
    Par michka999 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 13/07/2006, 16h45
  5. Redirection 404 marche pas en local
    Par le mage tophinus dans le forum Apache
    Réponses: 8
    Dernier message: 10/06/2005, 08h12

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