Connexion serveur distant impossible
Résolu/Fermé
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
-
4 mars 2015 à 11:11
jordane45 Messages postés 38381 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 15 janvier 2025 - 5 mars 2015 à 11:24
jordane45 Messages postés 38381 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 15 janvier 2025 - 5 mars 2015 à 11:24
A voir également:
- Connexion serveur distant impossible
- Gmail connexion - Guide
- Changer serveur dns - Guide
- Facebook connexion - Guide
- Hotmail connexion - Guide
- Serveur pop - Guide
35 réponses
jordane45
Messages postés
38381
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 janvier 2025
4 727
4 mars 2015 à 11:51
4 mars 2015 à 11:51
Commence par vérifier dans la BDD qui se trouve sur le serveur si elle est identique à celle que tu as en Local.
Une petite requête (directement dans la BDD via PHPmyadmin) du style :
va te permettre de le vérifier
Une petite requête (directement dans la BDD via PHPmyadmin) du style :
SELECT * FROM tb_gestion_admin INNER JOIN tb_adherent ON tb_adherent.id_adherent = tb_gestion_admin.rid_adherent WHERE pseudo = 'gilbertchia'
va te permettre de le vérifier
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
4 mars 2015 à 12:18
4 mars 2015 à 12:18
Bonjour
Donc ma BDD est identique je viens de l'importer de nouveau.
Ensuite le requète dans phpMyadmin que tu m'a fait essayé me retourne bien la ligne correspondante au pseudo.
Donc ma BDD est identique je viens de l'importer de nouveau.
Ensuite le requète dans phpMyadmin que tu m'a fait essayé me retourne bien la ligne correspondante au pseudo.
jordane45
Messages postés
38381
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 janvier 2025
4 727
4 mars 2015 à 12:34
4 mars 2015 à 12:34
Par contre ... si tu désactives également ta fonction Méthode Banni() en Local.. qu'obtiens tu ??
Sachant que le souci que tu rencontres pour cette fonction ( que tu n'as pas réexpliqué dans ce message....) peut être résolu non ??
As tu lu ma réponse précédente (dans ton autre message ) ?
J'avais marqué :
Sachant que le souci que tu rencontres pour cette fonction ( que tu n'as pas réexpliqué dans ce message....) peut être résolu non ??
As tu lu ma réponse précédente (dans ton autre message ) ?
J'avais marqué :
Ton message d'erreur indique que le souci se situe sur ta page connexion.php à la ligne 18....
Donc.. c'est ce code là qu'il aurait fallu nous montrer.
Ensuite... ce message d'erreur est connu...(des tonnes de discussions foisonnent sur le net à ce sujet.... ) ... il se produit lorsque tu as déjà affiché (via des ECHO) des choses AVANT de faire le Header Location en PHP.
Donc oui... dans ce cas il vaut mieux le faire en Javascript!
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
4 mars 2015 à 12:47
4 mars 2015 à 12:47
en local avec un print_r en ayant désactiver la fonction Banni() tout marche normal
à distant j'arrive à me connecter mais les session sont absentes comme le montre le print_r
Mais c'est fou cette histoire...
pour le message d'erreur du post précédent c'est résolu car c'était la redirection et je l'ai mis en javascript.
Array ( [id_adherent] => 60 [prenom] => Gilbert [pseudo] => gilbertchia [aucune_gestion] => 0 [membre] => 1 [sortie] => 1 [cours] => 1 [calendrier] => 1
à distant j'arrive à me connecter mais les session sont absentes comme le montre le print_r
Array ( [id_adherent] => 60 [prenom] => Gilbert [pseudo] => gilbertchia [aucune_gestion] => [membre] => [sortie] => [cours] => [calendrier] =>
Mais c'est fou cette histoire...
pour le message d'erreur du post précédent c'est résolu car c'était la redirection et je l'ai mis en javascript.
jordane45
Messages postés
38381
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 janvier 2025
4 727
4 mars 2015 à 12:54
4 mars 2015 à 12:54
Donc tu as exactement le même code sur ton serveur qu'en Local ??
Tu n'as pas désactivé ta fonction "banni()" ?
Tu as bien vidé ton cache après avoir fait tes modifications dans ton code ? (les variables de sessions (en question) ne s'actualisant qu'à la connexion .... si tu fais juste un F5 ... elles ne se modifieront pas)
.. par contre ... as tu fais un session_start au niveau de ta class ??
(de toutes façons.. l'idéal n'est pas de manipuler les variables de Session dans ta Class mais de les traiter dans la page où tu utilises ta class)...
Tu n'as pas désactivé ta fonction "banni()" ?
Tu as bien vidé ton cache après avoir fait tes modifications dans ton code ? (les variables de sessions (en question) ne s'actualisant qu'à la connexion .... si tu fais juste un F5 ... elles ne se modifieront pas)
.. par contre ... as tu fais un session_start au niveau de ta class ??
(de toutes façons.. l'idéal n'est pas de manipuler les variables de Session dans ta Class mais de les traiter dans la page où tu utilises ta class)...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
4 mars 2015 à 13:08
4 mars 2015 à 13:08
oui j'ai essayé de faire au mieux par contre je n'ai pas besoin de faire un session_start() au niveau de ma class.
Sinon ça fait doublon puisque j'ai session_star sur la page index.php j'ai l'include pour la page init.php et sur cette page j'ai la fonction my_autoloader
je ne comprends pas
donc j(ai ma class que j'ai déjà poster ensuite j'ai mon fichier de connexion que voici
Sinon ça fait doublon puisque j'ai session_star sur la page index.php j'ai l'include pour la page init.php et sur cette page j'ai la fonction my_autoloader
je ne comprends pas
l'idéal n'est pas de manipuler les variables de Session dans ta Class mais de les traiter dans la page où tu utilises ta class)..
donc j(ai ma class que j'ai déjà poster ensuite j'ai mon fichier de connexion que voici
<?php if(isset($_POST['pseudo']) && isset($_POST['password'])) { $pseudo = isset($_POST['pseudo']) ? Security::clean($_POST['pseudo']) : ''; $password = isset($_POST['password']) ? Security::clean($_POST['password']) : ''; $actif = isset($_POST['actif']) ? $_POST['actif'] : ''; $connexion = new Connexion_class($pseudo, $password, $actif); $verif = $connexion->VerifConnexion(); if($verif == 'success') { redir("./index.php?body=compte_profil&type=compte"); } else { $erreur[] = $verif; } } if (isset($erreur)) { echo output_errors($erreur); } ?>
jordane45
Messages postés
38381
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 janvier 2025
4 727
Modifié par jordane45 le 4/03/2015 à 13:23
Modifié par jordane45 le 4/03/2015 à 13:23
Le mieux serait de mettre l'initialisation de tes variables de session dans ce code.
Par exemple comme ceci :
Bien sûr tu modifies ta class ainsi :
Par exemple comme ceci :
<?php if(isset($_POST['pseudo']) && isset($_POST['password'])) { $pseudo = isset($_POST['pseudo']) ? Security::clean($_POST['pseudo']) : ''; $password = isset($_POST['password']) ? Security::clean($_POST['password']) : ''; $actif = isset($_POST['actif']) ? $_POST['actif'] : ''; $connexion = new Connexion_class($pseudo, $password, $actif); $verif = $connexion->VerifConnexion(); if($verif['error'] == 'success') { $_SESSION['id_adherent'] = $verif['session']['id_adherent']; $_SESSION['prenom'] = $verif['session']['prenom']; $_SESSION['pseudo'] = $pseudo; $_SESSION['aucune_gestion'] = $verif['session']['aucune_gestion']; $_SESSION['membre'] = $verif['session']['membre']; $_SESSION['sortie'] = $verif['session']['sortie']; $_SESSION['cours'] = $verif['session']['cours']; $_SESSION['calendrier'] = $verif['session']['calendrier']; redir("./index.php?body=compte_profil&type=compte"); } else { $erreur[] = $verif['error']; } } if (isset($erreur)) { echo output_errors($erreur); } ?>
Bien sûr tu modifies ta class ainsi :
public function VerifConnexion() { $result=array(); if($this->ChampsVide()) { $result['error'] = 'Veuillez remplir tous les champs'; } else if($this->PseudoExist()) { if($this->password == $this->PseudoExist()) { if(!$this->Banni()) { $result['error'] = 'success'; $result['session'] = $this->Session(); } else { $result['error'] = "Ton compte a été supprimé"; } } else { $result['error'] = "Mauvais mot de passe...ou Mauvais login...Merci de recommencer.</br> Peut-être n'êtes vous pas membre de la Clique ? Dans ce cas désolé..."; } } else { $result['error'] = "Ce compte n'existe pas"; } return $result; }
jordane45
Messages postés
38381
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 janvier 2025
4 727
4 mars 2015 à 13:25
4 mars 2015 à 13:25
Et à la limite.. le temps des tests ... tu peux :
Ajouter un print de la variable VERIF et désactiver la redirection
Ajouter un print de la variable VERIF et désactiver la redirection
<?php if(isset($_POST['pseudo']) && isset($_POST['password'])) { $pseudo = isset($_POST['pseudo']) ? Security::clean($_POST['pseudo']) : ''; $password = isset($_POST['password']) ? Security::clean($_POST['password']) : ''; $actif = isset($_POST['actif']) ? $_POST['actif'] : ''; $connexion = new Connexion_class($pseudo, $password, $actif); $verif = $connexion->VerifConnexion(); //------------------------------------------------------------------------ // Le temps des tests //------------------------------------------------------------------------ echo " verif =<br>"; print_r($verif ); //------------------------------------------------------------------------ if($verif['error'] == 'success') { $_SESSION['id_adherent'] = $verif['session']['id_adherent']; $_SESSION['prenom'] = $verif['session']['prenom']; $_SESSION['pseudo'] = $pseudo; $_SESSION['aucune_gestion'] = $verif['session']['aucune_gestion']; $_SESSION['membre'] = $verif['session']['membre']; $_SESSION['sortie'] = $verif['session']['sortie']; $_SESSION['cours'] = $verif['session']['cours']; $_SESSION['calendrier'] = $verif['session']['calendrier']; //redir("./index.php?body=compte_profil&type=compte"); } else { $erreur[] = $verif['error']; } } if (isset($erreur)) { echo output_errors($erreur); } ?>
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
4 mars 2015 à 13:20
4 mars 2015 à 13:20
juste pour te dire vj'arrete pas de faire des essai sans savoir trop quoi....
que çà me bloque au niveau de cette condition c'est fou donc c'est bien ce que je t'ai dit si je désactive la methode Banni() je peux me connecter mais sans les session à l'exeption du pseudo, id_adherent et le prénom
si ça peux t'aider à me trouver une piste....
que çà me bloque au niveau de cette condition c'est fou donc c'est bien ce que je t'ai dit si je désactive la methode Banni() je peux me connecter mais sans les session à l'exeption du pseudo, id_adherent et le prénom
si ça peux t'aider à me trouver une piste....
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
4 mars 2015 à 13:27
4 mars 2015 à 13:27
je viens de trouver une piste qui me parait pas logique par contre.
j'ai supprimé " ! " different à la methode Banni() et je peux me connecter.
et en local ça me met "ton compte a été supprimé
j'ai supprimé " ! " different à la methode Banni() et je peux me connecter.
et en local ça me met "ton compte a été supprimé
public function VerifConnexion() { if($this->ChampsVide()) { $erreur = 'Veuillez remplir tous les champs'; } else if($this->PseudoExist()) { if($this->password == $this->PseudoExist()) { if($this->Banni()) { $erreur = 'success'; $this->Session(); } else { $erreur = "Ton compte a été supprimé"; } } else { $erreur = "Mauvais mot de passe...ou Mauvais login...Merci de recommencer.</br> Peut-être n'êtes vous pas membre de la Clique ? Dans ce cas désolé..."; } } else { $erreur = "Ce compte n'existe pas"; } return $erreur; }
jordane45
Messages postés
38381
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 janvier 2025
4 727
4 mars 2015 à 13:39
4 mars 2015 à 13:39
As tu testé mon code ?
Si ton souci se situe au niveau de la fonction banni() .. commence déjà par regarder ce qu'elle contient....
Par exemple en faisant :
Si ton souci se situe au niveau de la fonction banni() .. commence déjà par regarder ce qu'elle contient....
Par exemple en faisant :
private function Banni() { $sql = "SELECT * FROM tb_adherent WHERE pseudo = :pseudo AND actif = 1"; $requete = $this->bdd->prepare($sql); $requete->execute(array('pseudo' => $this->pseudo)); $result = $requete->fetch(); // le temps des tests: print_r($result); //---------- return($result['actif'] == 0) ? true : false; }
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
4 mars 2015 à 13:41
4 mars 2015 à 13:41
ça me retourne
Array ( [error] => Ton compte a été supprimé )
jordane45
Messages postés
38381
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 janvier 2025
4 727
4 mars 2015 à 13:47
4 mars 2015 à 13:47
Et le PRINT de la fonction Banni ??
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
4 mars 2015 à 13:56
4 mars 2015 à 13:56
donc le print_r de la fonction Banni() me retourne le membre avec toutes ses colonnes
ça devarit me retourner
[actif] => 0 en principe
mais ça me retourne juste [actif] =>
alors que dans ma BDD j'ai pour ce membre [actif] => 1
ça devarit me retourner
[actif] => 0 en principe
mais ça me retourne juste [actif] =>
alors que dans ma BDD j'ai pour ce membre [actif] => 1
jordane45
Messages postés
38381
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 janvier 2025
4 727
4 mars 2015 à 14:01
4 mars 2015 à 14:01
Ben oui mais dans ta requête tu as filtré sur UNIQUEMENT actif = 1 ...
Il te suffit de faire :
Il te suffit de faire :
SELECT actif FROM tb_adherent WHERE pseudo = :pseudo
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
4 mars 2015 à 14:08
4 mars 2015 à 14:08
ça me retourne avec cette requète
SELECT actif FROM tb_adherent WHERE pseudo = :pseudo
Array ( [id_adherent] => [prenom] => [pseudo] => gilbertchia [aucune_gestion] => [membre] => [sortie] => [cours] => [calendrier] => ) ? Array ( [actif] =>
jordane45
Messages postés
38381
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 janvier 2025
4 727
Modifié par jordane45 le 4/03/2015 à 14:47
Modifié par jordane45 le 4/03/2015 à 14:47
Ca ce n'est pas le print du BANNI à mon avis....
Pour en être sûr .. modifie encore la fonction ainsi :
Pour en être sûr .. modifie encore la fonction ainsi :
private function Banni() { $sql = "SELECT actif FROM tb_adherent WHERE pseudo = :pseudo "; $requete = $this->bdd->prepare($sql); $requete->execute(array('pseudo' => $this->pseudo)); $result = $requete->fetch(); // le temps des tests: echo "<pre> BANNI ==>" . $result? '' : "aucun resultat pour ce user :". $this->pseudo ."<br>"; print_r($result); echo "</pre>"; //---------- return($result['actif'] == 0) ? true : false; }
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
4 mars 2015 à 14:19
4 mars 2015 à 14:19
j'ai juset une erreur de syntax je ne là vois pas
Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';' in /home/cliquede/www/classes/Connexion_class.php on line 44
jordane45
Messages postés
38381
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 janvier 2025
4 727
Modifié par jordane45 le 4/03/2015 à 14:25
Modifié par jordane45 le 4/03/2015 à 14:25
Un copier/coller de ton code actuel de ton fichier Connexion_class.php nous aiderait à situer l'erreur........
EDIT : J'ai trouvé
il manquait un point devant le $result
EDIT : J'ai trouvé
echo "<pre> BANNI ==>" . $result? '' : "aucun resultat pour ce user :". $this->pseudo ."<br>"; print_r($result); echo "</pre>";
il manquait un point devant le $result
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
4 mars 2015 à 14:39
4 mars 2015 à 14:39
tout le même message
Ton compte a été supprimé
ca me retourne tout les champs correspondant au membre mais pour le champ actif toujour vide alors qu'il devrait être à 0 enfin je crois
[actif] =>
Ton compte a été supprimé
ca me retourne tout les champs correspondant au membre mais pour le champ actif toujour vide alors qu'il devrait être à 0 enfin je crois
[actif] =>
jordane45
Messages postés
38381
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 janvier 2025
4 727
Modifié par jordane45 le 4/03/2015 à 15:38
Modifié par jordane45 le 4/03/2015 à 15:38
Tu ne peux pas avoir que ça comme message venant du code que je t'ai fait mettre dans ta fonction Banni().
Ce n'est pas possible.
Es-tu sûr de tout avoir bien copier/coller ???
ta fonction Banni() doit ressembler à ça actuellement :
(je vais encore y faire une petite modification au cas où)
Ce n'est pas possible.
Es-tu sûr de tout avoir bien copier/coller ???
ta fonction Banni() doit ressembler à ça actuellement :
(je vais encore y faire une petite modification au cas où)
private function Banni() { $sql = "SELECT actif FROM tb_adherent WHERE pseudo = :pseudo"; $requete = $this->bdd->prepare($sql); $requete->execute(array('pseudo' => $this->pseudo)); $result = $requete->fetch(); // le temps des tests: echo "<pre> BANNI ==>" . ($result) ? "ok" : "aucun resultat pour ce user :". $this->pseudo ."<br>"; print_r($result); echo "</pre>"; //---------- return($result['actif'] == 0) ? true : false; }
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
4 mars 2015 à 14:55
4 mars 2015 à 14:55
voilà la totalité du message comme je tedisais il y a toutes les colonnes
Array ( ) ? okArray ( [id_adherent] => 23 [nom] => [prenom] => Nicolas [email] => [naissance] => 0000-00-00 [fixe] => [mobile] => [adresse] => [lieu_dit] => [code_postal] => [ville] => [pseudo] => nicolasfalq [password] => 2131b4ad78e24566535955bfd3c76b4316756e9a [actif] => [debut] => 1991 [fin] => )
jordane45
Messages postés
38381
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 janvier 2025
4 727
4 mars 2015 à 15:35
4 mars 2015 à 15:35
Peux tu... nous montrer ton code ( celui que tu utilises actuellement et que je t'ai fait modifier) ?????
Car ce n'est pas possible au vu des modifs que j'y ai mis que tu ais ce message !!!
N'as tu rien d'autre qui s'affiche dans ta page ? (un peu plus haut ??)
Car ce n'est pas possible au vu des modifs que j'y ai mis que tu ais ce message !!!
N'as tu rien d'autre qui s'affiche dans ta page ? (un peu plus haut ??)
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
4 mars 2015 à 15:36
4 mars 2015 à 15:36
c'est quand même fou en local tout fonctionne super avec les mêmes fichiers que sur mon serveur et la même BDD
Array ( [id_adherent] => 60 [prenom] => Gilbert [pseudo] => gilbertchia [aucune_gestion] => 0 [membre] => 1 [sortie] => 1 [cours] => 1 [calendrier] => 1 )
jordane45
Messages postés
38381
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 janvier 2025
4 727
4 mars 2015 à 15:37
4 mars 2015 à 15:37
<blcok> et la même BDD </block>
Je ne pense pas que tu ais exactement la même chose en local ET sur le serveur....
la preuve ...
[id_adherent] => 60 # [id_adherent] => 23 .... rien que là .. tu as déjà une différence .....
Je ne pense pas que tu ais exactement la même chose en local ET sur le serveur....
la preuve ...
[id_adherent] => 60 # [id_adherent] => 23 .... rien que là .. tu as déjà une différence .....
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
4 mars 2015 à 15:40
4 mars 2015 à 15:40
donc si je désactive la methode Bann() j'arrive à me connecter mais j'ai pas les Sessions
j'arrive bien sur mon compte avec toutes mes infos
c'est juste pour faire un rappel en fait
Array ( [id_adherent] => 60 [prenom] => Gilbert [pseudo] => gilbertchia [aucune_gestion] => [membre] => [sortie] => [cours] => [calendrier] =>
j'arrive bien sur mon compte avec toutes mes infos
c'est juste pour faire un rappel en fait
jordane45
Messages postés
38381
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 janvier 2025
4 727
Modifié par jordane45 le 4/03/2015 à 15:43
Modifié par jordane45 le 4/03/2015 à 15:43
Donc... je te redemande .....
Peux tu nous poster TON CODE modifié que l'on essaye de voir ce qui ne fonctionne pas ?????
Peux tu nous poster TON CODE modifié que l'on essaye de voir ce qui ne fonctionne pas ?????
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
4 mars 2015 à 15:43
4 mars 2015 à 15:43
Array ( ) ? okArray ( [actif] =>
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
4 mars 2015 à 15:46
4 mars 2015 à 15:46
ci-dessus ce que ça m'a retourné avec cette class
class Connexion_class { private $pseudo; private $password; private $actif; private $bdd; public function __construct($pseudo, $password, $actif) { $password = Security::hash($password); $this->pseudo = $pseudo; $this->password = $password; $this->actif = $actif; $this->bdd = bdd(); } private function ChampsVide() { return(empty($this->pseudo) || empty($this->password)) ? true : false; } private function PseudoExist() { $sql = "SELECT * FROM tb_adherent WHERE pseudo = :pseudo AND actif = 1"; $requete = $this->bdd->prepare($sql); $requete->execute(array('pseudo' => $this->pseudo)); $result = $requete->fetch(); return ($result) ? $result['password'] : false; } private function Banni() { $sql = "SELECT actif FROM tb_adherent WHERE pseudo = :pseudo"; $requete = $this->bdd->prepare($sql); $requete->execute(array('pseudo' => $this->pseudo)); $result = $requete->fetch(); // le temps des tests: echo "<pre> BANNI ==>" . $result ? "ok" : "aucun resultat pour ce user :". $this->pseudo ."<br>"; print_r($result); echo "</pre>"; //---------- return($result['actif'] == 0) ? true : false; } private function Session() { $sql = "SELECT * FROM tb_gestion_admin INNER JOIN tb_adherent ON tb_adherent.id_adherent = tb_gestion_admin.rid_adherent WHERE pseudo = :pseudo AND actif = 1"; $requete = $this->bdd->prepare($sql); $requete->execute(array('pseudo' => $this->pseudo)); $result = $requete->fetch(); $_SESSION['id_adherent'] = $result['id_adherent']; $_SESSION['prenom'] = $result['prenom']; $_SESSION['pseudo'] = $this->pseudo; $_SESSION['aucune_gestion'] = $result['aucune_gestion']; $_SESSION['membre'] = $result['membre']; $_SESSION['sortie'] = $result['sortie']; $_SESSION['cours'] = $result['cours']; $_SESSION['calendrier'] = $result['calendrier']; } public function VerifConnexion() { if($this->ChampsVide()) { $erreur = 'Veuillez remplir tous les champs'; } else if($this->PseudoExist()) { if($this->password == $this->PseudoExist()) { if(!$this->Banni()) { $erreur = 'success'; $this->Session(); } else { $erreur = "Ton compte a été supprimé"; } } else { $erreur = "Mauvais mot de passe...ou Mauvais login...Merci de recommencer.</br> Peut-être n'êtes vous pas membre de la Clique ? Dans ce cas désolé..."; } } else { $erreur = "Ce compte n'existe pas"; } return $erreur; } }
jordane45
Messages postés
38381
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 janvier 2025
4 727
4 mars 2015 à 15:58
4 mars 2015 à 15:58
Tes variables de session sont encore dedans ?
Tu n'as donc pas procédé à toutes les modifications que je t'ai donné...........
Tu n'as donc pas procédé à toutes les modifications que je t'ai donné...........
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
4 mars 2015 à 15:57
4 mars 2015 à 15:57
je pourrais partir comme ça par exemple
avec cette fonction modifié je peux me connecter
en faisant comme ça il y a juste si le login et le mot de passe on met n'importe quoi la condition est
Ton compte a été supprimé
alors que ça devrait être
Ce compte n'existe pas
private function Banni() { $sql = "SELECT * FROM tb_adherent WHERE pseudo = :pseudo AND actif = 1"; $requete = $this->bdd->prepare($sql); $requete->execute(array('pseudo' => $this->pseudo)); $result = $requete->fetch(); return($result['actif'] == 1) ? true : false; }
avec cette fonction modifié je peux me connecter
public function VerifConnexion() { if($this->ChampsVide()) { $erreur = 'Veuillez remplir tous les champs'; } else if($this->PseudoExist()) { if($this->password == $this->PseudoExist()) { if(!$this->Banni()) { $erreur = 'success'; $this->Session(); } else { $erreur = "Ce compte n'existe pas"; } } else { $erreur = "Mauvais mot de passe...ou Mauvais login...Merci de recommencer.</br> Peut-être n'êtes vous pas membre de la Clique ? Dans ce cas désolé..."; } } else { $erreur = "Ton compte a été supprimé"; } return $erreur; }
en faisant comme ça il y a juste si le login et le mot de passe on met n'importe quoi la condition est
Ton compte a été supprimé
alors que ça devrait être
Ce compte n'existe pas
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
4 mars 2015 à 16:18
4 mars 2015 à 16:18
Donc voilà pour tout reprendre
ma class
mon fichier de connexion
ma class
<?php class Connexion_class { private $pseudo; private $password; private $actif; private $bdd; public function __construct($pseudo, $password, $actif) { $password = Security::hash($password); $this->pseudo = $pseudo; $this->password = $password; $this->actif = $actif; $this->bdd = bdd(); } private function ChampsVide() { return(empty($this->pseudo) || empty($this->password)) ? true : false; } private function PseudoExist() { $sql = "SELECT * FROM tb_adherent WHERE pseudo = :pseudo AND actif = 1"; $requete = $this->bdd->prepare($sql); $requete->execute(array('pseudo' => $this->pseudo)); $result = $requete->fetch(); return ($result) ? $result['password'] : false; } private function Banni() { $sql = "SELECT actif FROM tb_adherent WHERE pseudo = :pseudo"; $requete = $this->bdd->prepare($sql); $requete->execute(array('pseudo' => $this->pseudo)); $result = $requete->fetch(); // le temps des tests: echo "<pre> BANNI ==>" . ($result) ? "ok" : "aucun resultat pour ce user :". $this->pseudo ."<br>"; print_r($result); echo "</pre>"; //---------- return($result['actif'] == 0) ? true : false; } public function VerifConnexion() { $result=array(); if($this->ChampsVide()) { $result['error'] = 'Veuillez remplir tous les champs'; } else if($this->PseudoExist()) { if($this->password == $this->PseudoExist()) { if(!$this->Banni()) { $result['error'] = 'success'; $result['session'] = $this->Session(); } else { $result['error'] = "Ton compte a été supprimé"; } } else { $result['error'] = "Mauvais mot de passe...ou Mauvais login...Merci de recommencer.</br> Peut-être n'êtes vous pas membre de la Clique ? Dans ce cas désolé..."; } } else { $result['error'] = "Ce compte n'existe pas"; } return $result; } } ?>
mon fichier de connexion
<?php if(isset($_POST['pseudo']) && isset($_POST['password'])) { $pseudo = isset($_POST['pseudo']) ? Security::clean($_POST['pseudo']) : ''; $password = isset($_POST['password']) ? Security::clean($_POST['password']) : ''; $actif = isset($_POST['actif']) ? $_POST['actif'] : ''; $connexion = new Connexion_class($pseudo, $password, $actif); $verif = $connexion->VerifConnexion(); //------------------------------------------------------------------------ // Le temps des tests //------------------------------------------------------------------------ echo " verif =<br>"; print_r($verif ); //------------------------------------------------------------------------ if($verif['error'] == 'success') { $_SESSION['id_adherent'] = $verif['session']['id_adherent']; $_SESSION['prenom'] = $verif['session']['prenom']; $_SESSION['pseudo'] = $pseudo; $_SESSION['aucune_gestion'] = $verif['session']['aucune_gestion']; $_SESSION['membre'] = $verif['session']['membre']; $_SESSION['sortie'] = $verif['session']['sortie']; $_SESSION['cours'] = $verif['session']['cours']; $_SESSION['calendrier'] = $verif['session']['calendrier']; //redir("./index.php?body=compte_profil&type=compte"); } else { $erreur[] = $verif['error']; } } if (isset($erreur)) { echo output_errors($erreur); } ?>
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
4 mars 2015 à 16:19
4 mars 2015 à 16:19
ca me retourne
Array ( ) ? okArray ( [actif] => ) verif = Array ( [error] => Ton compte a été supprimé )