Bonjour, j'ai regardé le tutoriel sur "Sécuriser avec les Sessions". Tout ces bien passé, j'ai essayé et cela fonctionne mais pour un autre projet lorsque je fais la même méthode cela m'écrit dans le navigateur :

Fatal error
: Call to undefined method Auth::isLogged() in
A:\Lab\TBBugtracker\inc\table.php
on line
5

La partie du code où je l'utilise est dans un fichier inclus dans mon index.php, le fichier que j'y inclus soit table.php qui a le code suivant :

<?php
require("auth.php");
include 'bdd.php';

if(Auth::isLogged()) { 

} else if(!Auth::isLogged()) {
?>
<table class="mdl-data-table mdl-js-data-table  mdl-shadow--2dp">
    <thead>
        <tr>
            <th class="mdl-data-table__cell--non-numeric">Titre</th>
            <th>Lien</th>
            <th>Plus</th>
        </tr>
    </thead>
    <tbody>
        <?php 
            include 'bdd.php';

            $req = $bdd->prepare("SELECT * FROM bug_content");
            $req->execute();

            while ($data = $req->fetch()) { ?>
                <tr>
                    <td class="mdl-data-table__cell--non-numeric"><?php echo $data['titre']; ?></td>
                    <td><a href="<?php echo $data['link']; ?>" target=_blank><?php echo $data['link']; ?></a></td>
                    <td><a href="index.php?c=<?php echo $data['id']; ?>">Voir plus</a></td>
                </tr>
            <?php }
        ?>
    </tbody>
</table>
<button class="mdl-button mdl-js-button mdl-button--raised mdl-button--colored">
    <a href="index.php?n">Ajouter</a>
</button>
<?php } ?>

Je ne sais pas ce qui cloche. Je précise que l'ensemble des includes et require ont les bon chemin pour les fichiers.

En espérant que vous saurez me venir en aide :)

3 réponses


Daethe
Auteur
Réponse acceptée

Bonjour, j'ai résolu mon problème après plusieurs dizaines d'essai. Pour mon require j'ai vu que celui-ci remontais dans l'arborescence de ce fait j'ai modifier le chemin pour inclure le dossier 'inc'. De ce fait le chemin du fichier est devenu 'inc/auth.php' soit

require("inc/auth.php");
Daethe
Auteur

Voici ma classe Auth :

<?php 
    class Auth {

        static function isLogged() {
            if (isset($_SESSION['Auth']) && isset($_SESSION['Auth']['login']) && isset($_SESSION['Auth']['pass'])) {
                extract($_SESSION['Auth']);

                include 'bdd.php';
                $req = $bdd -> prepare("SELECT id FROM users WHERE login = ? AND pass = ?");
                $req -> execute(array($login, $pass));
                if($req->rowCount()>0) {
                    return true;
                } else {
                    return false;
                }
            } else {
                return false;
            }
        }

        static function cryptPass($p) {
            $p = sha1($p);
            $p = md5($p);
            $p = md5($p);
            $p = sha1($p);
            return $p;
        }
    }
?>

L'appel a ma fonction 'cryptpass($p)' fonctionne parfaitement.

Daethe
Auteur

Je n'ai pas fais attention, mais le code de 'table.php' est celui que j'ai mis sur mon premier post. J'édite ce même post pour corriger ma faute.