Bonjour,

Voila je rencontre un petit problème avec mon code.
Bonjour,

J'ai un problème concernant l'inscription: lorsque je veux m'inscrire il me dit:
Fatal error: Uncaught PDOException: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'confirmation_token' in 'field list' in /home/clients/7f5f92c8e92b09ec7590e92c28bb70ec/web/RTTANS/Membres/class/Database.php:20 Stack trace: #0
/home/clients/7f5f92c8e92b09ec7590e92c28bb70ec/web/RTTANS/Membres/class/Database.php(20): PDOStatement->execute(Array) #1 /home/clients/7f5f92c8e92b09ec7590e92c28bb70ec/web/RTTANS/Membres/class/Auth.php(25): Database->query('INSERT INTO use...', Array) #2 /home/clients/7f5f92c8e92b09ec7590e92c28bb70ec/web/RTTANS/Membres/register.php(24): Auth->register(Object(Database), 'Cestmoi', '$2y$10$rz4Rc0VV...', 'af050943@gmail....') #3 {main} thrown in /home/clients/7f5f92c8e92b09ec7590e92c28bb70ec/web/RTTANS/Membres/class/Database.php on line 20

Fichier Database.php

 <?php
class Database{

    private $pdo;

    public function __construct($login, $password, $database_name, $host = 'mzfs.myd.infomaniak.com'){
        $this->pdo = new PDO("mysql:dbname=$database_name;host=$host", $login, $password);
        $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $this->pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
    }

      public function query($query, $params = false){
        if($params){
            $req = $this->pdo->prepare($query);
            $req->execute($params); -----------------------------------> ici est la 20ème ligne****
        }else{
            $req = $this->pdo->query($query);
        }
        return $req;
    }

    public function lastInsertId(){
        return $this->pdo->lastInsertId();
    }

}   

Je ne vois pas l'erreur!

Merci d'avance

6 réponses


Bonjoiur.
L'erreur te retourne que la colonne confirmation_token est inconnue.

Cestmoi
Auteur

Merci je viens de voir c'était noté dans Auth;Php confirmation au lieu de confirmed_token.
Maintenant je suis bien inscrit mais je ne reçois pas de mail de confirmation!
Merci d'avance

Cestmoi
Auteur

Excuses mais je viens de recevoir le mail, mais problème il me dit que local.dev ne va pas! Là je dois peut-être mettre quelque chose en rapport avec mon serveur mail?
Merci d'avance

local.dev c'est pour le site, et non pour l'adresse mail.

Cestmoi
Auteur

OK merci j'ai donc changer le host, modifier le local.dev en mettant l'adresse de mon site mais malgré tout il me dit qu'il ne trouve pas l'IP de mon site! Après le local.dev il y a /Lab/ je dois le modifier aussi?
Merci

Heu ...
Comment ça après le local.dev ?
Si ton site n'est pas sur l'host local.dev, il te faut changer l'url pour l'adresse dans le contenu du mail, sinon c'est normal que le lien du site n'est pas trouvé.
Sinon concernant le /Lab/, dans le tutoriel Grafikart n'utilise pas de VirtualHost, c'est donc normal que le nom de ce dossier apparaisse dans l'url dans son cas, mais dans ton cas je ne pense pas.
Surtout que d'après ce que je peux voir dans ton code, ton projet est déjà en ligne (production), ce qui est une mauvaise pratique, il te faut d'abord créer ton projet en local puis le tester jusqu'à ce qu'il fonctionne parfaitement avant de le déployer pour le mettre en production.
En ce qui concerne le nom d'hote et la base de l'url, il te faut utiliser les variables globales disponibles sur PHP afin que ce soit dynamique entre la phase de développement et le déploiement en production de manière à avoir la bonne url dans les deux cas.