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

EDI, CMS, Outils, Scripts et API PHP Discussion :

l'authentification ne fonctionne plus [phpMyAdmin]


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 372
    Points : 5 734
    Points
    5 734
    Billets dans le blog
    1
    Par défaut l'authentification ne fonctionne plus
    Bonjour,

    sur ma page principale, il y a une authentification :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	// DEMANDE D'AUTHENTIFICATION
    	if ( ! $auth )
    	{
    	  header( 'WWW-Authenticate: Basic realm="EIS SUPPORT WEBSITE"' );
    	  header("HTTP/1.1 401 Unauthorized");
    	  echo "Accès Restreint...<br/>";
    	  echo "<a href=\"indexpage.php\">Authentification</a>";
    	}
    et dans PHPMyAdmin/Utilisateurs, le nom de l'utilisateur avec le mot de passe (au cas où celui-ci aurait été perdu, je l'ai ressaisi).
    Et pourtant, quand la fenêtre d'authentication s'affiche et que je saisis les identifiants, il ne les accepte pas...Que puis-je faire ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  2. #2
    Membre averti
    Avatar de Kyuudan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2015
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2015
    Messages : 100
    Points : 308
    Points
    308
    Billets dans le blog
    1
    Par défaut
    Salut !

    Il te met quoi comme message d'erreur au moment de la connexion ?

    Cordialement,
    «Soyez la mesure de la qualité. De nombreuses personnes n’ont pas l’habitude d’un environnement où ce qui est attendu, c’est l’excellence.» Steve Jobs

    Pense à mettre un !

    de mettre vos sujets en une fois que vous avez la réponse à votre question !

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Quel est le code qui fait l'authentification ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 372
    Points : 5 734
    Points
    5 734
    Billets dans le blog
    1
    Par défaut
    Le code qui demande l'authentification est celui que je donne dans le post #1 et pas de message d'erreur ; simplement, le champ pour le mot de passe est effacé donc il n'y a qu'à en ressaisir un à nouveau...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  5. #5
    Membre averti
    Avatar de Kyuudan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2015
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2015
    Messages : 100
    Points : 308
    Points
    308
    Billets dans le blog
    1
    Par défaut
    Tu peux tenter de réinitialiser le mot de passe alors.

    Si tu ne sais pas comment faire normalement dans ton dossier phpmyadmin (le dossier ou il a été installé) tu as un fichier 'config.inc.php' , le mot de passe de ton phpmyadmin et celui dans ce fichier doivent être les même.
    Donc tu verifies d'abord que tu trouves bien ce fichier.
    Si tu as "wamp" par exemple le fichier est dans:
    wamp\apps\phpmyadmin3.3.9\config.inc.php

    Tu devrais trouver deux lignes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $cfg['Servers'][$i]['user'] = 'root'; // MySQL user 
    $cfg['Servers'][$i]['password'] = 'mot_de_passe';
    Tu modifies "mot_de_passe" en entrant celui que tu as mis dans phpmyadmin auparavant.

    Voilà en espérant t’avoir aidé.

    Cordialement,
    «Soyez la mesure de la qualité. De nombreuses personnes n’ont pas l’habitude d’un environnement où ce qui est attendu, c’est l’excellence.» Steve Jobs

    Pense à mettre un !

    de mettre vos sujets en une fois que vous avez la réponse à votre question !

  6. #6
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 372
    Points : 5 734
    Points
    5 734
    Billets dans le blog
    1
    Par défaut
    J'ai bien trouvé ce fichier ; comme il y avait "root" et "root", je les ai remplacés par les identifiants habituels, puis pour être sûr qu'ils sont bien pris en compte, ai redémarré le PC, mais rien à faire
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  7. #7
    Membre averti
    Avatar de Kyuudan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2015
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2015
    Messages : 100
    Points : 308
    Points
    308
    Billets dans le blog
    1
    Par défaut
    Hum... Tu as essayé d'accéder à ta base directement en ligne de commande et pas depuis l'interface de phpmyadmin ?
    «Soyez la mesure de la qualité. De nombreuses personnes n’ont pas l’habitude d’un environnement où ce qui est attendu, c’est l’excellence.» Steve Jobs

    Pense à mettre un !

    de mettre vos sujets en une fois que vous avez la réponse à votre question !

  8. #8
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 372
    Points : 5 734
    Points
    5 734
    Billets dans le blog
    1
    Par défaut
    Non, et je ne sais pas le faire ; voici ce que j'ai tenté : j'ouvre une fenêtre DOS puis vais dans le dossier C:\wamp\bin\mysql5.6.17\bin ; je pense qu'il faut lancer un exécutable ici, mais lequel ? Et d'ailleurs, si je suis ton conseil pour modifier config.inc.php, je ne passe pas par PHPMyAdmin...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Le code qui demande l'authentification
    Oui ça merci mais le code qui vérifie l'authentification ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 372
    Points : 5 734
    Points
    5 734
    Billets dans le blog
    1
    Par défaut
    oups, j'avais mal compris

    Code php : 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
    if(isset($_SERVER["PHP_AUTH_USER"])) {
    	$entered_user = $_SERVER["PHP_AUTH_USER"];
    }
    else $entered_user="root"; 	
    if(isset($_SERVER["PHP_AUTH_PW"])) {
    	$entered_pass = $_SERVER["PHP_AUTH_PW"];
    }
    else $entered_pass="root";
    if (isset($entered_user) && isset($entered_pass)) {
    	$auth=false;
    	$sql = 'select * from `users`';
    	$qid = $bdd->prepare($sql);
    	$qid->execute();
    	while ($row=$qid->fetch(PDO::FETCH_ASSOC) ) {		
    		$usr = $row['user']; 
    		$password = $row['password'];   
    		//echo "usr=".$usr."  pwd=".$password."<br/>";
    		if (($usr == $entered_user) && ($password == $entered_pass)) {
    			$auth = true;
    			$_SESSION['user']=$user=$entered_user;
    			$_SESSION['pass']=$pass=$entered_pass;
    		}
    	}
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  11. #11
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Il y a des fois où on aimerait te hacher dans un mixer !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if(isset($_SERVER["PHP_AUTH_USER"])) {
    	$entered_user = $_SERVER["PHP_AUTH_USER"];
    }
    else $entered_user="root"; 	
    if(isset($_SERVER["PHP_AUTH_PW"])) {
    	$entered_pass = $_SERVER["PHP_AUTH_PW"];
    }
    else $entered_pass="root";
    Est-ce que tu saurais expliquer dans quel cas, selon toi, les variables $entered_user et $entered_pass sont susceptibles de ne pas être définies ?
    Et de ce fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (isset($entered_user) && isset($entered_pass)) {
    	$auth=false;
    dans quel cas est-il possible de ne pas entrer dans cette condition ? Condition qui signifie de plus "si l'identifiant et le mot de passe existent (et donc sont logiquement corrects), alors on n'autorise pas l'accès"...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    J'ajouterai de plus que pour faire une authentification, on ne parcoure pas la table des utilisateurs, on fait directement une requête sur le login/pass demandé.

    Et pour ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['user']=$user=$entered_user;
    Je ne sais pas quoi dire ...
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Je n'avais pas eu le courage d'aller au-delà des premières lignes effectivement...
    Je trouve assez amusant aussi le concept de requête préparée pour une requête SELECT * FROM table.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  14. #14
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 372
    Points : 5 734
    Points
    5 734
    Billets dans le blog
    1
    Par défaut
    Bonsoir,

    effectivement, le test sur l'existence des variables $entered_user et $entered_pass n'a aucun sens mais il en avait avant que je modifie le code qui rend leur existence certaines (ajoût des 2 else), néanmoins, il ne nuit pas au fonctionnement du code. Mais je viens de le supprimer :
    Code php : 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
    if(isset($_SERVER["PHP_AUTH_USER"])) {
    		$entered_user = $_SERVER["PHP_AUTH_USER"];
    }
    else $entered_user="root"; 	
    if(isset($_SERVER["PHP_AUTH_PW"])) {
    		$entered_pass = $_SERVER["PHP_AUTH_PW"];
    }
    else $entered_pass="root";
     
    $auth=false;
     
    $sql = 'select * from `users`';
     
    $qid = $bdd->prepare($sql);
    $qid->execute();
    while ($row=$qid->fetch(PDO::FETCH_ASSOC) ) {		
    	$usr = $row['user']; 
    	$password = $row['password'];   
     
    	if (($usr == $entered_user) && ($password == $entered_pass)) {
    	     $auth = true;
    	     //$_SESSION['user']=$user=$entered_user;
    	     //$_SESSION['pass']=$pass=$entered_pass;
    	}
    }
     
     
     
     
    return $auth;

    L'utilisation ici inutile d'une requête préparée, c'est car j'utilise systématiquement ce code pour exécuter des requêtes SQL.

    Enfin, Sabotage, peux-tu préciser ce qui cloche dans cette validation de l'authentification qui a été écrite en 2005 et fonctionne depuis cette époque (sauf dans mon cas où je cherche à modifier le code) ?


    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  15. #15
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu sais des codes mal écrits et qui marchent il y a en plein. C'est comme préparer toutes les requêtes, ça ne sert à rien mais ça fonctionne.
    Ce qui cloche, je te l'ai dit, ça ne sert à rien de parcourir l'intégralité de la table.

    Sinon je ne suis pas bien sur que les mots de passe soient en clair dans la table users.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  16. #16
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 372
    Points : 5 734
    Points
    5 734
    Billets dans le blog
    1
    Par défaut
    Que ça ne sert à rien de parcourir la table users, désolé, mais je ne vois pas pourquoi...

    Et les mots de passe en clair dans la table, sur internet, ça ne serait pas sécuritif du tout (je les hacherais par exemple avec md5 avant de les stocker), mais là, c'est de l'intranet, donc ça ne craint pas grand chose...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  17. #17
    Invité
    Invité(e)
    Par défaut
    Bonjour Laurent,
    voici plusieurs discussions où tu parles de "reprendre un ancien code"... bla bla bla.

    Question :
    Comptes-tu
    • te contenter de le reprendre tel quel et de modifier juste mysql_ en PDO, sans chercher à comprendre ?
      OU
    • traduire mysql_ en PDO, MAIS AUSSI utiliser ton intelligence et ta LOGIQUE pour apporter des AMELIORATIONS notables et OPTIMISER le code ?


    Car depuis un bon moment, tu nous gaves* de codes obsolètes et mal écrits, mais refuse toute amélioration ou conseil qu'on te donne...
    *(dans le sens : "comme on gave des oies")
    On va finir nous aussi par y perdre tout' not' bon sens**...
    **(tabernacle !)

  18. #18
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    cette validation de l'authentification qui a été écrite en 2005 et fonctionne depuis cette époque


    Donc dit autrement, tu nous explique qu'il y a un code qui fonctionne correctement depuis 10 ans.
    Dès que tu essayes d'y toucher, plus rien ne marche.

    Citation Envoyé par laurentSc
    Que puis-je faire ?
    Tu tiens vraiment à ce qu'on réponde à ta question ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  19. #19
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 372
    Points : 5 734
    Points
    5 734
    Billets dans le blog
    1
    Par défaut
    Voici ce que je compte faire : j'interviens sur un site (intranet) qui a été écrit il y a 10 ans. Le but n'est pas de modifier les fonctionnalités (elles conviennent parfaitement), mais de modifier la mise en page (le look)(du style avoir le menu, l'en-tête et le pied de page, en commun sur toutes les pages ce qui n'était pas le cas). J'en profite aussi pour corriger ce qui est mal écrit ou obsolète :
    - fonctions mysql_xxx -> PDO
    - balises html <font> -> balises <span>+CSS
    - attributs des tables html -> CSS
    - bien séparer le html et le PHP : remplacer <?php echo "code html".code PHP."code html";?> par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    code html 
    <?php code PHP ?> 
    code html
    Je pense que c'est l'essentiel. Ca fait des gros changements ce qui explique qu'il y ait des problèmes. Mais en passant encore beaucoup de temps dessus, j'y arriverai...

    Et faut pas croire que j'ignore les conseils...Même si c'est l'impression que je donne.
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  20. #20
    Invité
    Invité(e)
    Par défaut
    Code php : 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
    function authentificate()
    {
    	// 1/ récupération des données
    	$entered_user = ( isset($_SERVER["PHP_AUTH_USER"]) )? $_SERVER["PHP_AUTH_USER"] : '';	
    	$entered_pass = ( isset($_SERVER["PHP_AUTH_PW"]) )? $_SERVER["PHP_AUTH_PW"] : '';
     
    	$_SESSION['user'] = '';
    	$auth = false;
     
    	if(  !empty($entered_user) && !empty($entered_pass) )
    	{
    		// 2/ vérification de la présence en BdD
    		$sql = "SELECT id_user FROM users WHERE user = :user;";
    		$qid = $bdd->prepare($sql);
    		$qid->bind_param( ':user', $entered_user);
    		$qid->execute();
    		$rowAll = $qid->fetchAll(PDO::FETCH_ASSOC); // on obtient un array()
     
    		$nbre_result = count($rowAll); // on compte le nombre de ligne
    		if( $nbre_result == 1 ) // on a bien un seul résultat
    		{
    			// 3/ vérification du mot de passe
    			if( $entered_pass == $rowAll->password ) // c'est le bon mot de passe
    			{
    				 $auth = true;
    				 $_SESSION['user'] = $entered_user;
    			}
    		}
    	}
    	return $auth;
    }
    Remarque :
    Si je n'ai pas mis $entered_pass directement dans la requête, c'est que le mot de passe peut être (ou DOIT être hashé).
    La vérification devient alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    			if( fonction_de_hashage_utilisee_pour_l_enregistrement_du_mot_de_passe($entered_pass) == $rowAll->password ) // c'est le bon mot de passe

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/03/2017, 07h18
  2. Réponses: 0
    Dernier message: 02/08/2007, 14h20
  3. [PHPMailer] Mails sans authentification ne fonctionnent plus
    Par matpal dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 15/05/2006, 16h47
  4. mes requetes sous access ne fonctionnent plus
    Par trialrofr dans le forum ASP
    Réponses: 12
    Dernier message: 04/12/2004, 21h52
  5. [JSP][Tomcat]Changement de context -> JSP fonctionne plus
    Par mathieu dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 01/03/2004, 08h01

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