IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Cookies] Classe de connexion à l'admin


Sujet :

Langage PHP

  1. #1
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut [Cookies] Classe de connexion à l'admin
    Bonsoir tous le monde,
    j'essaie de me construire une class pour la connections a l'administration des admins et j'aimerai savoir si je suis sur la bonne voie.
    En fait le formulaire sera des plus simpliste:

    1. 2 champs (users et pass)
    2. L'envoi
    3. message d'erreur éventuelle

    Je ne souhaite pas d'inscription donc simplement se connecter a l'administration.
    Cependant j'utilise PDO pour me connecter a la base de donnée et je doit implémenter les sessions + tous ce qui va avec (en gros je devrais me renseigner pour sécuriser tous sa)
    Voici le code pour l'instant sans savoir si cela fonctionnera:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    class UserAuthLogin{
     
    	public $users_login;
    	public $mdp_login;
     
    	function __construct(){
    		$this->users_login = $_REQUEST['users'];
    		$this->mdp_login = sha1($_REQUEST['cryptpass']);
    	}
    	function LoadAuth(){
    		try{
    			$dbh = new PDO('mysql:host=localhost;dbname=madb','root','******');
    			$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    			$stmt = $dbh->prepare("SELECT DISTINCT id_user,users from member where :users and :cryptpass");
    		    $stmt->bindParam(':users',$this->users_login,PDO::PARAM_STR);
    		    $stmt->bindParam(':cryptpass', $this->mdp_login,PDO::PARAM_STR);
    			$stmt->setFetchMode(PDO::FETCH_ASSOC);
    			$stmt->execute();
    			$result = $stmt->fetchAll();
    		}catch(Exception $e) {
    				echo ("Erreur ! : " . $e->getMessage() . "<br/>");
    				echo 'N° : '.$e->getCode();
    		}
    		return $result;
    	}
    	function AuthSession(){
    		if (isset($this->users_login)) {
    			self::LoadAuth();
    			$_SESSION['userid'] = $this->users_login;
    			$_SESSION['username'] = $this->mdp_login;
    			header($page);
    		}
    	}
    }
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

  2. #2
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Points : 2 981
    Points
    2 981
    Par défaut
    Quelques remarques vite fait :
    - $_REQUEST c'est mal, préfère $_GET ou $_POST
    - je mettrais les variable membre login/motdepasse en private
    - faudrait tester avec isset si le login/mdp existe avant de l'affecter à une variable
    - pas de catch dans une classe, c'est pas a ce niveau que tu gère les erreur. (j'ai pas dit pas de try hein )
    - self:: s'utilise pour les classe statique, utilise $this-> plutot dans ce cas

  3. #3
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut
    Bon j'ai corriger , arrêter moi si je me suis trompé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    class UserAuthLogin{
     
    	private $users_login;
    	private $mdp_login;
     
    	function __construct(){
    		if(isset($_POST['users']) || isset($_POST['cryptpass'])){
     
                $this->users_login = $_POST['users'];
    		    $this->mdp_login = sha1($_POST['cryptpass']);
              }
    	}
    	function LoadAuth(){
    		try{
    			$dbh = new PDO('mysql:host=localhost;dbname=madb','root','******');
    			$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    			$stmt = $dbh->prepare("SELECT DISTINCT id_user,users from member where :users and :cryptpass");
    		    $stmt->bindParam(':users',$this->users_login,PDO::PARAM_STR);
    		    $stmt->bindParam(':cryptpass', $this->mdp_login,PDO::PARAM_STR);
    			$stmt->setFetchMode(PDO::FETCH_ASSOC);
    			$stmt->execute();
    			$result = $stmt->fetchAll();
    		}
    		return $result;
    	}
    	function AuthSession(){
    		if (isset($this->users_login)) {
    			$this->LoadAuth();
    			$_SESSION['userid'] = $this->users_login;
    			$_SESSION['username'] = $this->mdp_login;
    			header($page);
    		}
    	}
    }
    faudrait tester avec isset si le login/mdp existe avant de l'affecter à une variable
    Heuu j'ai pas saisi lol, en fait ce sera AuthSession qui sera retourné ou plus précisement assigner a smarty.
    Pas de catch je teste ma connexion a la db a quel niveau
    Au fait pourquoi $_REQUEST est déprécié ? je l'utilise au boulot (pas le choix) comme on est une dizaine de développeur le code est partagé (on me donne que des $REQUEST .
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

  4. #4
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Points : 2 981
    Points
    2 981
    Par défaut
    Je sais pas si $_REQUEST est déprécié mais en tout cas quand tu utilise $_REQUEST tu ne sait pas d'où viennent les données. Est-ce qu'elles viennent d'un POST, d'un GET, d'un Cookie ? Donc il faut prendre l'habitude d'utiliser les bonnes variable globale.

    Pour le catch, il faut le faire tout simplement en dehors de ta classe. Tu lance les exceptions avec throw ou met des bloc try dans ta classe et tu les récupère en dehors de la classe. C'est pas à toi de décider si oui ou non tu veux capturer les erreurs. C'est à celui qui utilise ta classe (bon ici c'est toi dans les 2 cas mais ça change rien).

    Pour le isset t'a bien fait ça. Il faut s'assurer que le $_POST['users'] et l'autre variable $_POST sont bien initialisée sinon tu aura un notice il me semble.

    Je te conseille de mettre un error_reporting(E_ALL | E_STRICT) en début de ton script, juste pendant la phase de création/test/degugging.

  5. #5
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut
    Tu lance les exceptions avec throw ou met des bloc try dans ta classe et tu les récupère en dehors de la classe.
    Vous n'auriez pas un exemple , j'ai fais ceci après le try :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    catch(Exception $e) {
    				throw $e;
    		}
    Ensuite pensez vous qu'un simple assign avec smarty fera l'affaire pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_POST['users'] et $_POST['cryptpass']
    et lancez le script.
    Il faut que je fasse tourner ce script afin de voir si les données sont bien traité ensuite je rajouterai de quoi sécuriser un peux mieux le script, quelques conseil sur ce point serai très apprécié.
    très gentil de votre part de me donner un coup de main
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

  6. #6
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Points : 2 981
    Points
    2 981
    Par défaut
    Je n'ai jamais utiliser smarty donc je ne sait pas s'il fera l'affaire mais niveau sécurité ce qu'il faut faire en gros :
    - se protéger des injection sql (PDO avec requête préparée ou mysql_real_escape_string)
    - se protégé des attaque cross script scripting en parsant l'affichage des donnés (au cas ou tu afficherais le login sur la page, il faut faire attention que le login ne contienne pas de code javascript ect) avec htmlentities().
    - ne jamais faire confiance à des donnée post, get, provenant d'un formulaire, cookies, ... car elles peuvent êtres toute modifiée comme bon nous semble

    Niveau try/catch/throw :
    La classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class MaClasse
    {
        public function __construct()
        {
            if (false) throw new Exception('Pas bon du tout !');
        }
    }
    L'utilisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ...
    try
    {
        $obj = new MaClasse();
    }
    catch(Exception $e)
    {
    	echo $e->getMessage();
    }
    ...
    Bon, l'exemple est complètement débile mais ca illustre assez bien
    Tu peux mettre des try dans la classe il n'y a pas de souci de ce coté.

    Le throw sert à lancer une exception.

    Tu devrais lire quelque article sur les exception pour mieux comprendre, commence par ici peut être : http://be.php.net/manual/fr/language.exceptions.php

  7. #7
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut
    un truc dans ce genre la pour la classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $stmt->execute();
    			$result = $stmt->fetchAll();
    			if ($result == false)
    			throw new Exception('Erreur de chargement');
    			else
    			return $result;
    j'ai repris le code a partir de la fonction execute
    Mais voici la class au complet pour l'instant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    <?php
    class UserAuthLogin{
    	/**
    	 * Request login user
    	 *
    	 * @var string
    	 */
    	public $users_login;
    	/**
    	 * Request login pass
    	 *
    	 * @var string
    	 */
    	public $mdp_login;
    	/**
    	 * Construc class initial for request
    	 *
    	 */
    	function __construct(){
    		if(isset($_POST['users']) || isset($_POST['cryptpass'])){
     
                $this->users_login = htmlentities($_POST['users']);
    		    $this->mdp_login = htmlentities(sha1($_POST['cryptpass']));
              }
    	}
    	/**
    	 * function connect database
    	 *
    	 * @return Array
    	 */
    	function loadAuth(){
     
    			$dbh = new PDO('mysql:host=localhost;dbname=*******','root','*******');
    			$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    			$stmt = $dbh->prepare("SELECT DISTINCT id_user,users from member where :users and :cryptpass");
    		    $stmt->bindParam(':users',$this->users_login,PDO::PARAM_STR);
    		    $stmt->bindParam(':cryptpass', $this->mdp_login,PDO::PARAM_STR);
    			$stmt->setFetchMode(PDO::FETCH_ASSOC);
    			$stmt->execute();
    			$result = $stmt->fetchAll();
    			if ($result == false)
    			throw new Exception('Erreur de chargement');
    			else
    			return $result;
    	}
    	/**
    	 * function Send session and redirect page
    	 *
    	 */
    	function authSession(){
    		if (isset($this->users_login)) {
    			if(count($this->LoadAuth()) == 1){
    				$_SESSION['userid'] = $this->users_login;
    				$_SESSION['username'] = $this->mdp_login;
    				header($page);
    			}
    		}
    	}
    }
    Dite moi si je fais erreur
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

  8. #8
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Points : 2 981
    Points
    2 981
    Par défaut
    Es-tu sur que fetchAll retourne false en cas d'echec ?

    Sinon oui on peux faire quelque chose comme ca.

  9. #9
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut
    j'editais mon message le temps que vous postiez le vôtre lol:
    voici la class au complet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    <?php
    class UserAuthLogin{
    	/**
    	 * Request login user
    	 *
    	 * @var string
    	 */
    	public $users_login;
    	/**
    	 * Request login pass
    	 *
    	 * @var string
    	 */
    	public $mdp_login;
    	/**
    	 * Construc class initial for request
    	 *
    	 */
    	function __construct(){
    		if(isset($_POST['users']) || isset($_POST['cryptpass'])){
     
                $this->users_login = htmlentities($_POST['users']);
    		    $this->mdp_login = htmlentities(sha1($_POST['cryptpass']));
              }
    	}
    	/**
    	 * function connect database
    	 *
    	 * @return Array
    	 */
    	function loadAuth(){
     
    			$dbh = new PDO('mysql:host=localhost;dbname=*******','root','*******');
    			$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    			$stmt = $dbh->prepare("SELECT DISTINCT id_user,users from member where :users and :cryptpass");
    		    $stmt->bindParam(':users',$this->users_login,PDO::PARAM_STR);
    		    $stmt->bindParam(':cryptpass', $this->mdp_login,PDO::PARAM_STR);
    			$stmt->setFetchMode(PDO::FETCH_ASSOC);
    			$stmt->execute();
    			$result = $stmt->fetchAll();
    			if ($result == false)
    			throw new Exception('Erreur de chargement');
    			else
    			return $result;
    	}
    	/**
    	 * function Send session and redirect page
    	 *
    	 */
    	function authSession(){
    		if (isset($this->users_login)) {
    			if(count($this->LoadAuth()) == 1){
    				$_SESSION['userid'] = $this->users_login;
    				$_SESSION['username'] = $this->mdp_login;
    				header($page);
    			}
    		}
    	}
    }
    Mais pour le false je ne sais pas c'est en testant la class que je le verrai
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

  10. #10
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Points : 2 981
    Points
    2 981
    Par défaut
    Tu m'a mal compris pour le htmlentities. Tu ne doit l'utiliser que quand tu affiche des données à l'écran.

    Donc genre à la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo htmlentities($this->users_login);
    Bien que dans ton cas il n'y a même pas besoin car si le login n'est pas bien former ca s'arretera au check login/password.

    Enlève le DISTINCT de ta requête SQL. Si tu as plus que 1 résultat il y a un problème. D'ailleurs c'est WHERE "nom_champ = :nom" normalement.

  11. #11
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut
    je pense que ceci est plus approprié :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id_user,users from member where users=:users and pass=:cryptpass
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

  12. #12
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Points : 2 981
    Points
    2 981
    Par défaut
    Pas la peine de récupérer le login de l'utilisateur, tu l'as déjà.

  13. #13
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut
    Donc j'enleve dans le where :
    je ne récupère que le mots de pass Ben si j'ai bien compris
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

  14. #14
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Points : 2 981
    Points
    2 981
    Par défaut
    Euh le mot de passe je voit pas a quoi il pourrait te server par la suite.

  15. #15
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut
    Donc ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     $stmt->bindParam(':users',$this->users_login,PDO::PARAM_STR);
    	     $stmt->bindParam(':cryptpass', $this->mdp_login,PDO::PARAM_STR);
    ne me sert a rien alors , y compris le where de la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where users=:users and pass=:cryptpass
    C'est suite a votre commentaire disant :
    Pas la peine de récupérer le login de l'utilisateur, tu l'as déjà.
    Je sais je suis en mode ralenti c'est temps-ci
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

  16. #16
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Points : 2 981
    Points
    2 981
    Par défaut
    Ce qui sert à rien c'est le "users" ici : "SELECT DISTINCT id_user,user".

    Il n'est pas nécessaire de récupérer le nom de l'utilisateur car tu l'a déja. Bon j'avoue c'est aller chercher la ptite bête aussi

  17. #17
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut
    ah ok lol j'avais pas compris, j'ai de toute façon modifier la requête afin de faire un * c'est plus simple .
    Comme sa je peux écrire directement une autre fonction pour l'envoi de mots de pass en cas d'oubli qui se baserai sur la fonction qui charge les données dans la base.
    Par contre vous aviez raison sur le "false" dans la fonction de connexion a la sgbd.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ($result == false)
    				throw new Exception('Erreur de chargement');
    			else
    		return $result;
    En faite, dans le formulaire si je tape une donnée correct pas de problème par contre si je l'envoi vide ou avec une donnée incorrect l'exception se mets en route:
    Fatal error: Uncaught exception 'Exception' with message 'Erreur de chargement' in /opt/lampp/htdocs/clashdesign/_scriptroot/backend/admin/login.php:45 Stack trace: #0 /opt/lampp/htdocs/clashdesign/_scriptroot/backend/admin/login.php(55): UserAuthLogin->loadAuth() #1 /opt/lampp/htdocs/clashdesign/_dynamicroot/backend/login.phtml(9): UserAuthLogin->authSession() #2 {main} thrown in /opt/lampp/htdocs/clashdesign/_scriptroot/backend/admin/login.php on line 45
    En gros je voulais simplement une exception si le chargement est impossible et non pour qu'il vérifie les données envoyé a ce niveau.
    Quoi qu'il en soit je doit impérativement faire une série de test
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

  18. #18
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut
    j'ai rien dit tout fonctionne correctement et j'ai grossi ma ptit class
    Je vous remercie de votre aide
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Cookies] Durée de connexion
    Par namstou3 dans le forum Langage
    Réponses: 3
    Dernier message: 02/10/2007, 15h00
  2. pb de creation de classe de connexion
    Par oceane751 dans le forum JDBC
    Réponses: 2
    Dernier message: 30/07/2007, 15h37
  3. Réponses: 6
    Dernier message: 03/07/2007, 19h29
  4. [MySQL] Classe database + connexion multiple + principe mal compris
    Par Rodrigue dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 14/08/2006, 14h06
  5. Petit souci JSP et class de connexion a BdD
    Par LeXo dans le forum Servlets/JSP
    Réponses: 13
    Dernier message: 07/06/2006, 00h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo