Petite question sur les requêtes.

Par Laznet, il y a 10 ans


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, il y a 10 ans

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; } }
Laznet, il y a 10 ans

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, il y a 10 ans

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

driven78, il y a 10 ans

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, il y a 10 ans

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.

connected, il y a 10 ans

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, il y a 10 ans

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.

connected, il y a 10 ans

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

Laznet, il y a 10 ans

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