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 :

Modification connexion sous PHP 5.4 [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 261
    Points : 125
    Points
    125
    Par défaut Modification connexion sous PHP 5.4
    Soit le script basique de connexion

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     $hostname_conn= 'localhost';
     $database_conn = 'ma_base';
     $username_conn = 'root';
     $password_conn = 'mdp';
     $conn = mysql_connect($hostname_conn, $username_conn, $password_conn);
    Ce script fonctionne très bien sous PHP 5.2
    Lorsque je bascule vers PHP 5.4 le script plante avec le message suivant :

    Warning: mysql_connect(): mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD('your_existing_password'). This will store a new, and more secure, hash value in mysql.user. If this user is used in other scripts executed by PHP 5.2 or earlier you might need to remove the old-passwords flag from your my.cnf file in /homepages/16/d154860034/htdocs/mon_appli/conn.php
    mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD('your_existing_password'). This will store a new, and more secure, hash value in mysql.user. If this user is used in other scripts executed by PHP 5.2 or earlier you might need to remove the old-passwords flag from your my.cnf file


    Visiblement, un problème d'incompatibilité avec la nouvelle version de MySQL livrée avec mon paquet PHP 5.4.... mais je ne comprends pas tout

    Comment dois-je corriger mon script pour qu'il fonctionne dans les deux versions de PHP/MySql ?

    Merci à tous

  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
    Je traduis :
    Retire l'option "old-passwords" dans ton fichier my.cnf
    Tu pourrais aussi abandonner les fonctions mysql_ pour passer à mysqli ou PDO.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    salut,

    faut que tu ré-initilises les mots de passe de tous tes utilisateurs car la fonction de cryptage demots de passe a changé entre les 2 versions
    • soit avec un outils d'adminsiration mysql
    • soit dans phpmyadmin
    • soit la console avec les requêtes qui vont bien...
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 261
    Points : 125
    Points
    125
    Par défaut
    Les utilisateurs installent mon application sur des serveurs qui ne leur appartiennent pas.
    Je suppose qu'ils ne peuvent que lire ce fichier my.cnf et non le modifier.

    Quel code standard dois-je donc écrire dans mon script pour assurer cette compatibilité ?
    Merci encore.

  5. #5
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    je parle là d'utilisateurs mysql pas des utilisateurs de ton application qui ne devraient pas être les même...
    tu as du faire une migration sans faire la mise a jour des tables...
    regarde la doc pour les requêtes sur les utilisateur et mots de passe...
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 261
    Points : 125
    Points
    125
    Par défaut
    ... Pour commencer, sachez que je ne suis pas informaticien.
    Les personnes installant l'application le font sur des serveurs tels que ceux de Free, OVH, 1and1... Le souci évoqué ci-dessous est inérant d'ailleurs à 1and1
    Ces prestataires fournissent un nom de user et un password que les utilisateurs(administrateurs) écrivent en dur dans le script mentionné dans mon premier message pour accéder à leur base.

    J'ai bien compris que le codage du mot de passe à changé. Le prestataire ne leur fournit pas pour autant un nouveau mot de passe. Ils n'ont pas la possibilité de le recrypter ... à moins que sous phpmyadmin... mais je doute que le prestataire leur laisse cette possibilité.

    J'ai trouvé cela mais cela ne m'avance pas dans la mesure ou les administrateurs ne pourront effectuer les commandes

    http://blog.mixu.net/2010/06/06/quic...tion-onphp5-3/

    Mais peut-etre que cela peut se faire depuis mon script PHP ?

  7. #7
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    le problème c'est d'avoir le mot de passe et l'identifiant pour juste faire un update et le flush pour la prise en compte... et que l'utilisateur est le droit de s'auto modifier...

    faut donc avoir accès au php pour lire ça et exécuter les requêtes voulues () partir d'un autre script php , dans la console mysql ou phpmyadmin par exemple...

    normalement ça devrait être fait par le prestataire... ou celui qui sert d'administrateur DB...

    idéalement ça aurait du être fait via l'outil de migration de version...

    bref aucun soucis quand tu as un accès administrateur ou super administrateur sur le serveur sinon... compromis...
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

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

Discussions similaires

  1. connexion telnet sous php
    Par romaricgautier dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 18/03/2014, 18h40
  2. [PostGreSQL] problème de connexion sous PHP-IIS
    Par abambad dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 13/05/2008, 14h44
  3. [Oracle] erreur de connexion oracle php sous server wamp
    Par sarahG dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/04/2008, 12h28
  4. [LDAP] Connexion via PHP à un annuaire LDAP sous un serveur Novell
    Par podz dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 15/06/2006, 14h34
  5. requête mysql sous php
    Par remi59 dans le forum Débuter
    Réponses: 9
    Dernier message: 03/07/2003, 10h39

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