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

PHP & Base de données Discussion :

PHP 7 connexion à l'espace membre


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Femme Profil pro
    Webmaster
    Inscrit en
    Octobre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2011
    Messages : 12
    Par défaut PHP 7 connexion à l'espace membre
    Bonjour à tous.
    Je suis entrain de passer un site de PHP 5.4 à PHP 7.3.
    J'ai cherché un paquet d'heures la solution mais là je craque. Alors je fais appel à votre aide.
    C'est pour l'identification à un espace membre, i.e. : le back off
    J'arrive à me connecter à Mysql mais l'identification avec les identifiants ne fonctionne pas.

    J'ai changé le codage des lignes 10 et 11 mais la 11 ne passe pas.
    J'ai ce message d'erreur :
    Fatal error: Uncaught Error: Call to a member function fetch_assoc() on boolean in /home/soonlinex/www/officiel/gtsconcept/pages/modules/back_off/connexion.php:11 Stack trace: #0 {main} thrown in /home/soonlinex/www/officiel/gtsconcept/pages/modules/back_off/connexion.php on line 11

    Voici le code :

    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
    //Mise en place d'une session
        session_start();
     
        //include des parametres generaux et ceux de la newsletter
        include ('../parametres/parametres.php');
     
     
        //On compte le nombre de fois que l'on trouve le login avec le mot de passe correct (1=existe 0=absent)
        $requete_sql = 'SELECT COUNT(*) FROM ' . $nom_table_membres_back_off . ' WHERE login=\'' . $_POST['login'] . '\' AND pw=\'' . md5($_POST['pw']) . '\'' ;
        $resultat = $link->query($requete_sql); 
        while ($data = $resultat->fetch_assoc()) 
     
        //gestion de la connexion si login et pw correct
        if($data['COUNT(*)'] == 1){
            //login et pw correct donc ajout du login dans la variable de session 'identifiant' (pour gérer le fait d'être connecté) 
            $_SESSION['identifiant']=$_POST['login'];
     
        }
            //redirection vers Accueil back_off
            echo '<script language="javascript" type="text/javascript">window.location="index.php"</script>';
     
        //Fermeture de la connexion à la base de données
        mysql_close($link);
    ?>
    Merci d'avance de votre aide.

  2. #2
    Membre chevronné
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Septembre 2012
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Septembre 2012
    Messages : 416
    Par défaut
    Bonjour, votre requête query() renvoie false et a donc échoué, vérifier ce côté là.

    De plus, il est plus que recommandé d'utiliser les requêtes préparées (ne JAMAIS envoyer des données $_POST directement dans une requête, vous exposez votre base de données aux injections).

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Je suppose que tu utilises mysqli. Pour analyser l'origine du problème, tu peux utiliser mysqli::$error :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $resultat = $link->query($requete_sql); 
    if ($resultat !== false) {
        while ($data = $resultat->fetch_assoc()) 
    // ....
    } else {
    // oups !
    printf("Message d'erreur : %s\n", $link->error);
    }
    Au passage, en plus de protéger la requête, je te signale que hasher les mots de passe en MD est quasiment équivalent à les laisser en clair, tellement il existe de tables de correspondance de nos jours. A moins bien sûr que tes utilisateurs n'utilisent des mots de passe très forts (auquel cas ils ont probablement un post-it sous leur clavier, mais ceci est un autre problème )
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

Discussions similaires

  1. Fonction de connexion d'un espace membre (PHP objet).
    Par Fredodo77 dans le forum Langage
    Réponses: 1
    Dernier message: 08/03/2015, 22h16
  2. Connexion impossible espace membre
    Par torg33 dans le forum Langage
    Réponses: 2
    Dernier message: 24/08/2010, 13h50
  3. [PHP] Probléme de Connexion Espace Membre
    Par Adaeria dans le forum Langage
    Réponses: 3
    Dernier message: 04/12/2009, 11h38
  4. Connexion à l'espace membre
    Par ploufleouf74 dans le forum Langage
    Réponses: 5
    Dernier message: 20/07/2009, 16h02
  5. [MySQL] connexion à un espace membre
    Par Arthezius dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 15/07/2008, 09h49

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