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 :

Erreur de connexion


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé Avatar de rems033
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    513
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2007
    Messages : 513
    Par défaut Erreur de connexion
    Salut à tous.
    Je teste un site en local avec easyphp 2.0.0
    J'ai défini un fichier connexion.php :
    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
     
    function connect()
    {
     // paramètres de connexion
     $hostname = "localhost"; // nom de votre serveur
     $database = "myotis_site"; // nom de votre base de données
     $username = "root"; // nom d'utilisateur 
     $password = ""; // mot de passe (aucun par défaut mais il est conseillé d'en mettre un)*/
     
     mysql_connect($hostname, $username, $password);
     mysql_select_db($database) or die(mysql_error());
    }
     
    function close()
    {
     mysql_close();
    }
    Le probleme c'est qu'il ne me trouve pas la base de données et me renvoie l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Warning: mysql_query() [function.mysql-query]: Accès refusé pour l'utilisateur: 'ODBC'@'@localhost' (mot de passe: NON) in C:\Program Files\EasyPHP 2.0b1\www\Myotis\scripts\fonctions.php on line 145
    
    Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\Program Files\EasyPHP 2.0b1\www\Myotis\scripts\fonctions.php on line 145
    Accès refusé pour l'utilisateur: 'ODBC'@'@localhost' (mot de passe: NON)
    J'avoue que je suis entrain de devenir fou !
    Je ne vois absolument pas d'ou peux provenir le problème !

    Merci pour votre aide

    PS : J'ai testé quand meme sous Wamp et même probleme. je vous joint le fichier qui lève l'erreur :
    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
     
    // Fonction enregistrant une nouvelle session pour statistiques
    function add_session($id_user)
    {
     connect();
     
     // Construction des variables
     $date = date('Y-m-d');
     $time = date("H:i:s");
     
     $data = get_user($id_user);
     
     $id_site = $data['id_site'];
     $id_role = $data['id_role'];
     
     // Insertion de la nouvelle session
     $sql = "INSERT INTO sessions ( id_user , id_site , id_role , date , time ) VALUES ('$id_user','$id_site','$id_role','$date','$time')" ;
     $req = mysql_query($sql) or die(mysql_error());
     
     close();
    }
    Merci pour toute aide précieuse !

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 294
    Par défaut
    Salut,

    Juste comme sa, dans le fichier dans lequel tu execute tes requetes tu à bien penser à faire un include de ton connexion.php

  3. #3
    Membre éclairé Avatar de rems033
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    513
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2007
    Messages : 513
    Par défaut
    as un include mais un require('connexion.php');
    Devrais-je mettre un include à la place ? J'essaye !

  4. #4
    Membre éclairé Avatar de rems033
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    513
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2007
    Messages : 513
    Par défaut
    Meme probleme avec l'include !

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 294
    Par défaut
    je crois avoir trouver, le probleme viens de ton mysql_select_db, il te faut deux argument, le premier le nom de la base que tu utilises le second la connection que tu utilises pour selectionner cette base en gros il faut que tu mettes :


    $maconnection=mysql_connect($hostname, $username, $password);
    mysql_select_db($database,$maconnection) or die(mysql_error());

  6. #6
    Membre éclairé Avatar de rems033
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    513
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2007
    Messages : 513
    Par défaut
    Je perd vraiment la boule là !
    Ce n'est pas ça non plus !
    Je ne vois vraiment pas d'ou peux provenir le problème !

  7. #7
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 294
    Par défaut
    Et bien j'avoue que je ne vois plus vraiment d'où sa peut venir, essaye de mettre ta connection et ta selection de base directement dans ta fonction, à la place du connect(), et regarde si sa marche

  8. #8
    Invité de passage
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 1
    Par défaut
    As-tu vérifié les droits de ton utilisateur sur la table en question?
    La ligne 145 correspond à quoi exactement?

  9. #9
    Membre éclairé Avatar de rems033
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    513
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2007
    Messages : 513
    Par défaut
    Lorsque j'utilise ta solution Sebastien14, no soucy tout se passe nickel !
    D'ou peux venir le problème de le mettre dans un fichier de config externe !

    Pour info Patrick_g, la ligne 145 correspond à la ligne mysql_query($req) dans le dernier fichier laisser en code sur mon premier post

  10. #10
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    Moi je dirais que tu close ta base dans ta fonction... tu l'appel, en include dès le départ, es-ce qu'à ce moment la te close ta base avant même que tu ne fasse tes traitement derrière?...

    Donc essaye de faire ça:

    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
    function connect()
    {
     
    // paramètres de connexion
     $hostname = "localhost"; // nom de votre serveur
     $database = "myotis_site"; // nom de votre base de données
     $username = "root"; // nom d'utilisateur 
     $password = ""; // mot de passe (aucun par défaut mais il est conseillé d'en mettre un)*/
     
     $connect=mysql_connect($hostname, $username, $password);
     mysql_select_db($database,$connect) or die(mysql_error());
    }
     
    return $connect;
    }

  11. #11
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 294
    Par défaut
    Bah apparement oui, peut etre ton include qui ne fonctionne pas. Dans ton fichier connexion.php et dans ta fonction connect(), fais un echo, par exemple :
    echo 'test', cela te permettra de voir si oui ou non le include fonctionne.

  12. #12
    Membre éclairé Avatar de rems033
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    513
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2007
    Messages : 513
    Par défaut
    Citation Envoyé par obito Voir le message
    Moi je dirais que tu close ta base dans ta fonction... tu l'appel, en include dès le départ, es-ce qu'à ce moment la te close ta base avant même que tu ne fasse tes traitement derrière?...

    Donc essaye de faire ça:


    Code php :
    function connect()</p><p>{</p><p>&nbsp;</p><p>// paramètres de connexion</p><p> $hostname = "localhost"; // nom de votre serveur</p><p> $database = "myotis_site"; // nom de votre base de données</p><p> $username = "root"; // nom d'utilisateur </p><p> $password = ""; // mot de passe (aucun par défaut mais il est conseillé d'en mettre un)*/</p><p>&nbsp;</p><p> $connect=mysql_connect($hostname, $username, $password);</p><p> mysql_select_db($database,$connect) or die(mysql_error());</p><p>}</p><p>&nbsp;</p><p>return $connect;</p><p>}
    A quoi correspond ta dernière accolade ?
    Je voudrais mettre les deux fonctions connect et close dans le même fichier externe...est-ce vraiment possible?
    Je précise que cela fonctionnait à merveille ce matin encore!

  13. #13
    Membre éclairé Avatar de rems033
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    513
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2007
    Messages : 513
    Par défaut
    l'include à l'air de fonctionner car il m'affiche 4 fois le mot test juste avant les erreurs

  14. #14
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 294
    Par défaut
    Il te l'affiche 4 fois?!! c'est byzarre sa. Tu fais appel combien de fois à ta fonction add_session?

  15. #15
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    Pour la dernière accolade... C'est juste une boulette de ma part la dernière après le return et bonne celle avant ne sert à rien... :S Désolé pour ce manque d'attention...

    Sinon oui tu peux faire un deux fonction dans une fichier php, l'un pour ouvrir la base et l'autre pour la fermer simplement tu n'uilisera la fonction (qu'on appelera fermeture ici^^) qu'à la fin de tous les traitements à faire.


    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
    <?php
     
    $host_db = ""; // nom de votre serveur
    $user_db = ""; // nom d'utilisateur de connexion 
    $password_db = ""; // mot de passe de connexion 
    $bdd_db = ""; // nom de  bdd
     
    function connect()
    {
    global $host_db,$user_db,$password_db,$bdd_db;
    $connect_db = mysql_connect($host_db,$user_db,$password_db);
    mysql_select_db($bdd_db,$connect_db);
    return $connect_db;
    }
     
    function fermeture()
    {
    global $connect_db;
    mysql_close($connect_db);
    }
     
    ?>
    Puis dans ta page appelante:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php include("fonctions.php"); 
     
    $connect_db = connect(); 
     
    //Tous les traitements
     
    fermeture(); ?>

  16. #16
    Membre éclairé Avatar de rems033
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    513
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2007
    Messages : 513
    Par défaut
    Je n'y fais appel qu'une seule fois à la connexion sur la page d'accueil !
    Je crois que j'ai une piste.
    J'exécute 2 fonctions à la suite qui font appel à cette fonction connect()...je pense que le problème viens de là...
    Je valide quelques tests et je serai de retour d'ici 1heure...
    Merci à tous et je posterai ma réponse dès mon retour

  17. #17
    Membre éclairé Avatar de rems033
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    513
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2007
    Messages : 513
    Par défaut
    Beinh je viens pas aux bonnes nouvelles....
    Je pète un cable je crois...

    Je viens de tester le tout chez mon hébergeur et que nenii !
    Sauf que la en plus, le message d'erreur me marque :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in D:\www\net-productions.fr\htdocs\clients\myotis\scripts\fonctions.php on line 142
     
    Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in D:\www\net-productions.fr\htdocs\clients\myotis\scripts\fonctions.php on line 142
    Access denied for user 'ODBC'@'localhost' (using password: NO)
    Je remarque que la tentative de connexion se fait avec ODBC sur localhost !!! Alors que c'est chez mon hébergeur !
    Evidemment j'ai bien remis les nouveaux identifiants et bases de données, rassurez-vous !

    SI quelqu'un peut m'aiguiller se serait super sympa !

    Merci à tous !

  18. #18
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    Citation Envoyé par obito Voir le message
    Pour la dernière accolade... C'est juste une boulette de ma part la dernière après le return et bonne celle avant ne sert à rien... :S Désolé pour ce manque d'attention...

    Sinon oui tu peux faire un deux fonction dans une fichier php, l'un pour ouvrir la base et l'autre pour la fermer simplement tu n'uilisera la fonction (qu'on appelera fermeture ici^^) qu'à la fin de tous les traitements à faire.


    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
    <?php
     
    $host_db = ""; // nom de votre serveur
    $user_db = ""; // nom d'utilisateur de connexion 
    $password_db = ""; // mot de passe de connexion 
    $bdd_db = ""; // nom de  bdd
     
    function connect()
    {
    global $host_db,$user_db,$password_db,$bdd_db;
    $connect_db = mysql_connect($host_db,$user_db,$password_db);
    mysql_select_db($bdd_db,$connect_db);
    return $connect_db;
    }
     
    function fermeture()
    {
    global $connect_db;
    mysql_close($connect_db);
    }
     
    ?>
    Puis dans ta page appelante:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php include("fonctions.php"); 
     
    $connect_db = connect(); 
     
    //Tous les traitements
     
    fermeture(); ?>
    Désolé de me répéter mais as tu essayer ça? Parce que si ça marche pas.. . Je vois pas... Déjà ça devrait jamais se connecter via ODBC ça n'a pas vraiment de sens... Vu que tu travail sous mySQL...

Discussions similaires

  1. Erreur de connexion en mode ssh
    Par okoax dans le forum Réseau
    Réponses: 3
    Dernier message: 23/02/2005, 13h36
  2. Erreur de connexion au serveur SQL 3
    Par NeHuS dans le forum Langage SQL
    Réponses: 3
    Dernier message: 28/01/2005, 13h55
  3. Erreur de connexion à ma base sur serveur Debian - Apache
    Par GLDavid dans le forum Installation
    Réponses: 4
    Dernier message: 24/09/2003, 10h29
  4. Pgsql : erreur de connexion 'too many clients ...'
    Par petitmoosse dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 21/08/2003, 14h03
  5. Erreur de connexion à PostGresql via pgAdminII
    Par LS dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 21/08/2003, 09h51

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