Bonsoir tout le mond, je viens de suivre le tutoriel sur les permissions en php par Grafikart et j'ai un problème dès le début !

Ma class auth.php :

<?php 
    class Auth
    {
        function login($data)
        {
            global $db;
            $req = $db->prepare('SELECT users.identifiant,users.email,allows.name,allows.slug,allows.level FROM users LEFT JOIN allows ON users.allows_id = allows.id WHERE identifiant = :identifiant AND password = :password');
            $req->execute($data);
            $count = $req->fetchAll();
            if($count > 0)
            {
                $_SESSION['auth'] = $data[0];
                return true;
            }

            return false;
        }
    }

    $auth = new Auth();
?>

et mon login.php :

<?php
    session_start();
    require 'app/db.php';
    require 'app/class/auth.php';
    $title = 'Connexion';

    if(!empty($_POST))
    {
        if($auth->login($_POST))
        {

        }else{
            echo 'Mauvais identifiant !';
        }
    }

    require 'partials/header.php'; 
?>

    <?php if(isset($errorMysql)): ?>
        <div class="alert alert-danger">
            <p>
                Le site rencontre un problème technique, merci de réessayer plus tard.
            </p>
            <strong><?= $e->getMessage(); ?></strong>
            <p>
                Localisation du problème à la ligne : <?= $e->getLine(); ?>
            </p>
        </div>
    <?php endif; ?>

    <div class="page-header">
        <h3>
            <i class="fa fa-lock"></i>
            Authentification
        </h3>
    </div>

    <div class="alert alert-info">
        <i class="fa fa-warning"></i>
        Vous devez obligatoirement vous authentifier pour continuer.
    </div>

    <form action="" method="post">
        <div class="form-group">
            <label for="identifiant">
                Votre identifiant
            </label>
            <input type="text" name="identifiant" id="identifiant" class="form-control">
        </div>
        <div class="form-group">
            <label for="password">
                Votre mot de passe
            </label>
            <input type="password" name="password" id="password" class="form-control">
        </div>
        <button type="submit" class="btn btn-default btn-block btn-lg">
            S'authentifier
        </button>
    </form>

<?php require 'partials/footer.php'; ?>

donc quand j'envoie les bonne infos dans le formulaire, il me retourne : Notice: Undefined offset: 0 in C:\wamp\www\app\class\auth.php on line 12
apparement sa vient de la session créer mais je ne voit pas l"erreur :/

1 réponse


Alexandre #lbac
Réponse acceptée

Normal ce n'est pas l'objet data que tu dois utiliser dans $_SESSION mais $count du coup