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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 412
    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 éclairé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 412
    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
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    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.

  4. #4
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    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 986
    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'])) ?

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    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.

  6. #6
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    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 986
    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 ?.

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