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 :

problème sur une ligne de commande


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 411
    Points : 117
    Points
    117
    Par défaut problème sur une ligne de commande
    Bonsoir à tous

    Voila je gère un site sur un serveur.

    On m'a demandé de m'occuper d'un autre sur un autre serveur et de faire un système d'accès membre.

    Du coup, j'ai repris le mien qui fonctionne très bien mais là c'est la cata j'ai un message d'erreur

    voici le code qui merde

    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
     
     
    <?php
        // Page faisant appel aux sessions
        session_start();
     
     
        // Vérification de l'autorisation
        if (!$_SESSION["login"]) {
            // Si l'utilisateur n'est pas autorisé il est reconduit
            // sur le formulaire d'identification
            header("Location: connexion.php");
            die();
        }   
    	include('db_connect.php');
    	$result=$mysqli->query("SELECT * FROM users WHERE login=".$_SESSION['login']);
    	while($row = $result->fetch_array()){$login=$row['login'];}
    ?>
    il me retourne cette erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Fatal error: Call to a member function fetch_array() on a non-object in /htdocs/Nouveau site/menu.php on line 14
    la ligne 14 correspond a la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    while($row = $result->fetch_array()){$login=$row['login'];}
    je pige pas sur mon autre site cela fonctionne nickel

    merci de votre aide

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 411
    Points : 117
    Points
    117
    Par défaut
    Bon j'ai l'impression que cela vient du WHERE car quand je l'enlève j'ai plus d'erreur mais par contre je n'ai pas le filtre que je veux

  3. #3
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 385
    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 385
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Bonsoir,
    je pense que le SELECT que tu fais à la ligne 16 ne retourne rien d'où le message d'erreur.
    Fais un peu de debug : afficher la valeur de $_SESSION['login'] et afficher le contenu de la table users.
    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

  4. #4
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Une fois de plus: ne fait pas de concaténations et prépare tes requêtes avec un placeholder (un point d'interrogation) à la place de ta variable: https://www.php.net/manual/fr/mysqli.prepare.php

    Aussi, avant de faire des fetch, vérifie que le résultat n'est pas false.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!$_SESSION["login"])
    Ce ne serait pas plutôt: if (!isset($_SESSION['login'])) ?
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  5. #5
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 385
    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 385
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par CosmoKnacki Voir le message
    Une fois de plus: ne fait pas de concaténations et prépare tes requêtes avec un placeholder (un point d'interrogation)
    ou encore mieux : des marqueurs nommés (c'est plus clair)

    Citation Envoyé par CosmoKnacki Voir le message
    Aussi, avant de faire des fetch, vérifie que le résultat n'est pas false.?
    Oui, ça t'éviterait l'erreur fatale.
    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

  6. #6
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    ou encore mieux : des marqueurs nommés (c'est plus clair)
    C'est vrai pour ce qui est de PDO, mais ici UDSP50 utilise l'extension mysqli qui ne supporte que les ?.
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  7. #7
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 385
    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 385
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    OK, ne connaissant pas du tout MySQLi, je savais pas...
    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

Discussions similaires

  1. Réponses: 5
    Dernier message: 20/11/2015, 17h42
  2. problème d'exécution d'une ligne de commande
    Par waelz1 dans le forum Windows
    Réponses: 6
    Dernier message: 25/08/2014, 10h25
  3. [XL-2000] Problème de détermination du nombre de valeurs sur une ligne
    Par juju05 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 01/07/2014, 14h47
  4. [XL-2003] Problème sur une sélection puis séparation par une ligne blanche
    Par korni184 dans le forum Excel
    Réponses: 12
    Dernier message: 08/04/2010, 11h45
  5. Réponses: 2
    Dernier message: 13/06/2008, 11h56

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