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 :

Connexion Mysql ne fonctionne pas [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 185
    Points : 79
    Points
    79
    Par défaut Connexion Mysql ne fonctionne pas
    Bonjour à toutes et tous, merci par avance de votre aide.
    J'ai développé un site en local, je le mets en ligne et je voulais modifier mon fichier de connexion de la manière suivante:
    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
    25
    26
     
    if( getenv("HTTP_HOST") == "localhost" || getenv("HTTP_HOST") == "127.0.0.1" )
    {
    	//connexion locale
    	$hostname = "XXXX";
    	$database = "XXXX";
    	$username = "XXXX";
    	$password = "XXXX";
    }	
    else { 
    	//connexion distante
    	$hostname = "XXXX";   
    	$database = "XXXX";
    	$username = "XXXX";
    	$password = "XXXX";
    }
    try {
    	$strConnection = 'mysql:host='.$hostname.';dbname='.$database.';charset=utf8';
    	$arrExtraParam= array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8");
    	$pdo = new PDO($strConnection, $username, $password, $arrExtraParam);
    	$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }
    catch(PDOException $e) {
    	$msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
    	die($msg);
    }
    Et bien ça ne fonctionne pas (alors que la connexion "classique" fonctionne) ! Je ne trouve pas mon erreur. Une idée ?

  2. #2
    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
    Qu'est ce qui "ne fonctionne pas" ? Qu'obtiens-tu ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 185
    Points : 79
    Points
    79
    Par défaut
    Bonjour Sabotage, merci de ton aide.
    En fait je n'obtiens rien. le login 'boucle' et revient à la page de login comme si le couple utilisateur/mot de passe était refusé.
    Si je remplace les champs concaténer par leur valeur et $username, $password par leur valeur la connexion fonctionne sans problème.

  4. #4
    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
    As-tu contrôlé ce que valait getenv("HTTP_HOST") ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 185
    Points : 79
    Points
    79
    Par défaut
    Oui, "localhost" dans mon cas

  6. #6
    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 nous parles d'une page de login, mais dans le code que tu nous montres les valeurs sont écrites en dur non ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 185
    Points : 79
    Points
    79
    Par défaut
    Si je parle d'une page de login c'est parce que je me connecte à la base si un utilisateur tente de se connecter (et vérifie le couple identifiant mot de passe).
    Mais d'après toi il n'y a pas d'erreur dans cette partie de code ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    try {
    	$strConnection = 'mysql:host='.$hostname.';dbname='.$database.';charset=utf8';
    	$arrExtraParam= array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8");
    	$pdo = new PDO($strConnection, $username,$password, $arrExtraParam);
    	$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }
    parce que si je remplace $hostname, $database, username et password par mes valeurs alors la connexion fonctionne en local ou à distance. Donc à mon avis le problème vient soit de là : ligne $strConnection ou de là ligne $pdo = new PDO... ou des deux à la fois ;-) parce que en plus ma condition fonctionne, je l'ai testée en local et sur le serveur distant pour voir la valeur de getenv("HTTP_HOST")... donc par élimination... Qu'en penses tu ? ou si tu préfères, écrierais tu ces deux lignes comme moi ?

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 185
    Points : 79
    Points
    79
    Par défaut
    JE RÊVE ...

    Bon je te donne la réponse ... j'ai trouvé grâce à la coloration syntaxique du forum developpez
    il manque un espace entre $username,$password -> $username, $password et c'est tout !
    Bon après midi et encore merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/10/2008, 10h08
  2. [MySQL] Connexion mysql ne fonctionne plus
    Par sophie_var_83 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 05/03/2008, 16h24
  3. [MySQL] La connexion à mysql ne fonctionne plus
    Par charliejo dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 05/07/2007, 19h57
  4. La fonction "source" de MySQL ne fonctionne pas
    Par muad'dib dans le forum JDBC
    Réponses: 14
    Dernier message: 15/01/2007, 17h25
  5. Icone systray de connexion wifi ne fonctionne pas bien ?
    Par elitost dans le forum Windows XP
    Réponses: 5
    Dernier message: 24/02/2006, 09h43

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