Bonjour,

Dans le but de rediriger mes users vers la page de connexion après l'inscription (D'ailleurs si il y a une autre solution plus "Code-Friendly" je vous écoute :D)

J'aurais besoin qu'on éclaire ma lanterne :
Est-ce qu'au moment de l'envoi d'une requête, si elle s'est bien
dérouler elle faudrat "True".

Car par la suite je pourrais tester si elle vaut true ou false
et donc rediriger vers la page de connexion.

9 réponses


driven78
Réponse acceptée

tu peut faire un truc du genre:
ex; un controleur avec la fonction login qui appelle un model ou est stockée ta requette

//classe controleur 
function logIn() {
        $access = $this->model->GetAccess($this->pseudo, $this->pwd);
        if ($access) { // Acces OK !
            var_dump($access);
        }
    }

//classe model    
    function GetAccess($pseudo, $mdp){
        $query=$this->db->prepare('SELECT id, mdp, pseudo  FROM users  WHERE pseudo = :pseudo');
        $query->bindValue(':pseudo', $pseudo, PDO::PARAM_STR);
        $query->execute();
        $data=$query->fetch();
        $query->CloseCursor();
        if($data['mdp'] == md5($mdp)){ // Acces OK !
            return $data;
        }else{
           return false; 
        }
    }
connected
Réponse acceptée

Bonjour,

est-ce que tu as déjà du code pour l'inscription ? Si oui, poste le ici, on partira de cette base pour t'aider.
Pour répondre à ta question, oui il est possible de récupérer l'état d'une requete.
Prenons le cas de PDO et l'utilisation des requêtes préparées (important surtout pour les insert/update). Tu vas préparer ta requete avec prepare() puis faire un execute(). Et bien la méthode execute() renvoie true si tout s'est bien déroulé et false dans le cas contraire.

Laznet
Auteur

Suis-je vraiment obliger d'utiliser MVC ou il y a une alternative en plat de nouille ^^ ?
Mais merci pour la rapidité de ta réponse.

Laznet
Auteur

@Driven78 pourrais-tu m'expliquer un peu le code. Je ne m'y connais pas assez en MVC.

t'es pas obliger d'utiliser la structure mvc

Si tu as ts ton code dans le même fichier, tu peux faire un truc du genre:

en partant du principe que l'utilisateur va envoyer son pseudo et son mdp a partir du formulaire de connexion

tu les recuperes avec ces 2 variables $_POST['pseudo'] et $_POST['mdp'] de la tu peut faire:

     //connexion a la base de donnée
     try{
                $db = new PDO('mysql:host=xxxxxxxxx;dbname=xxxxxxxxx', 'xxxxxxx', 'xxxxxxxx');
                $db->query("SET NAMES 'utf8'");
            }
            catch (Exception $e){
                die('Erreur : ' . $e->getMessage());
            }

            $access = GetAccess($_POST['pseudo'], ($_POST['mdp']);
        if ($access) { 
           // Acces OK !,
        }else{
        //tu le renvoi sur le formulaire de connexion en lui demandant de ressaisir ses identifiants
        }

        function GetAccess($pseudo, $mdp){
            $query=$this->db->prepare('SELECT id, mdp, pseudo  FROM users  WHERE pseudo = :pseudo');
            $query->bindValue(':pseudo', $pseudo, PDO::PARAM_STR);
             $query->execute();
             $data=$query->fetch();
             $query->CloseCursor();
             if($data['mdp'] == md5($mdp)){ // Acces OK !
                       return $data;
               }else{
                        return false; 
               }
        }

c'est un exemple, mais si tu ne le comprend pas, je t'invite a suivre des tutos, ce site est fait pour ca

Laznet
Auteur

Ca c'est pour tester si la connexion c'est bien passer. Je suppose que je peux donc adapter le code pour tester si une inscription s'est bien passer pour rediriger l'user vers la page de connexion.

Laznet
Auteur

Là je n'ai pas de code à montrer.
Mais vu que quand je code des formulaires j'utilise une méthode plus que "sauvage" (Lien redirigent vers la page de connexion). J'aimerais bien utiliser quelque chose de plus code-friendly.
Merci pour cette courte explication.

En faite j'ai juste à tester sur la fonction execute si elle vaut true si j'ai bien compris.

Voilà tu as tout compris :)
C'est tout simple.

Laznet
Auteur

Merci à tous pour vos réponses !
Je passe le sujet en résolu.