Page avec login 2ème partie (Can't connect to MySQL server...)

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Page avec login 2ème partie (Can't connect to MySQL server...)

par Cyrano » 14 mai 2008, 15:51

Ouais, je connais le Québec, j'y ai vécu pendant 12 ans ;)

Bon : pourquoi développer en local ? Je l'ai expliqué dans une réponse précédente. En local, tu configures ton environnement en mode développement, ce qui signifie que tu fais afficher systématiquement toutes les erreurs en ayant dans ton php.ini deux lignes particulières comme ceci :

Code : Tout sélectionner

display_error = ON error_reporting = E_ALL | E_STRICT
Si tu es en PHP4, oublie le "| E_STRICT".

Pourquoi ça ? Parce que la configuration de ton hébergeur est celle d'un environnement de production et non de développement. Or dans ce cas, le display_error est le plus souvent à OFF : donc si tu as des erreurs dans ton code, tu ne le sauras pas forcément contrairement à ton environnement local.

Pour faire fonctionner ton environnement sous Vista, là je sais pas trop, en tous cas pas pour EasyPHP. Je crois avoir vu passer un sujet ici pour WampServer + Vista, fais une petite recherche. Tu ne devrais pas avoir de difficultés particulières même avec un pare-feu.

Reviens avec les messages d'erreur au cas où.

par Danny » 14 mai 2008, 15:33


Bon courage, tu vas y arriver ;)
Merci pour ton aide Cyrano mais rien ne va de mon côté:

- Apache ne veut pas démarrer parce que soi-disant j'ai un pare-feu (pourtant désactivé pour l'occasion)
- Vista refuse que je place mon site sous EasyPHP/www prétextant que je n'ai pas les droits d'administrateur alors que tout est OK de ce côté
- je ne comprends toujours pas pourquoi il faut TESTER autrement qu'en uploadant sur le serveur puis vérifiant directement en ligne si tout fonctionne (j'ai posé la question plusieurs fois mais pas eu de réponse)

bref je suis un peu écoeuré et je songe à apprendre le mandarin pour relaxer.

Ou je vais faire venir chez moi un programmeur php que je paierai pour quelques heures afin qu'il me parte dans le bon sens. Pas faciles à trouver par ici (Québec) les programmeurs disponibles cependant... :-(

par Cyrano » 13 mai 2008, 23:02

Ok, va pour EasyPHP : si tu ouvres l'explorateur Windows, regarde dans EasyPHP et tu devrais trouver un répertoire www. Mets ton site dedans et ensuite dans ton navigateur, mets l'url http://localhost/repertoire-de-ton-site : là, tu es en local et tout devrait fonctionner à une différence près : si tu es configuré en mode développement, tu vas peut-être voir des messages d'avertissement, warning ou Notice que tu ne verrais pas forcément en ligne parce qu'un serveur d'hébergement de production es en général configuré pour masquer ces erreurs.

Là, tu vas pouvoir tester tout ce que tu voudras dans les pires situations, si ça marche bien sur ta machine, ça marchera bien en ligne. Le problème est que tu devras peut-être avoir une configuration en local pour MySQL : utilise les commandes dont je t'ai parlé pour créer un utilisateur qui ait les mêmes login et mot de passe que ce que tu as sur le serveur d'hébergement pour te connecter : ça te simplifiera la tâche.

Voilà, je te laisse le reste de ta veillée pour tester tout ça, ici il est tard, et je vais aller dormir, je verrai demain si tu laisses un message, je trouverai bien une minute ou deux au bureau pendant un break pour te répondre au besoin.

Si tu as du mal avec EasyPHP, vire-le et mets WampServer à la place. Tu trouveras sur le site www.wampserver.com un tuto vidéo tout neuf qui explique très bien les bases essentielles pour l'utiliser.

Bon courage, tu vas y arriver ;)

par Danny » 13 mai 2008, 21:52

Je croyais que tu travaillais en local : laisse-moi deviner : tu tentes de te connecter à ta base chez ton hébergeur à partir de DW sur ta machine ?
Si c'est ça, c'est normal que ça ne fonctionne pas, la directive skip_networking est certainement activée et ça interdit les connexion depuis l'extérieur. En d'autre termes, tu pourras te connecter dessus avec le code PHP qui sera sur le serveur de l'hébergeur, mais pas depuis ton ordinateur chez toi.

Donc la mieux à faire pour tester ton code, c'est d'avoir un environnement de développement installé sur ton ordinateur avec Apache, PHP et MySQL. Installe WampServer, tu verras que c'est beaucoup plus facile et rationnel de développer comme ça.
J'ai EasyPhP installé, mais je ne voyais pas l'utilité et surtout je ne sais pas comment l'utiliser.

La façon dont je fonctionne est la suivante:

1- je code sur DW
2- j'upload la page sur le serveur de l'hébergeur
3- je vais sur le web pour voir si ça marche.

C'est pas bon cette façon de tester ?

Le code PHP il est sur le site de l'hébergeur puisque j'ai uploadé la page. Non ?

par Cyrano » 13 mai 2008, 20:44

Je croyais que tu travaillais en local : laisse-moi deviner : tu tentes de te connecter à ta base chez ton hébergeur à partir de DW sur ta machine ?
Si c'est ça, c'est normal que ça ne fonctionne pas, la directive skip_networking est certainement activée et ça interdit les connexion depuis l'extérieur. En d'autre termes, tu pourras te connecter dessus avec le code PHP qui sera sur le serveur de l'hébergeur, mais pas depuis ton ordinateur chez toi.

Donc la mieux à faire pour tester ton code, c'est d'avoir un environnement de développement installé sur ton ordinateur avec Apache, PHP et MySQL. Installe WampServer, tu verras que c'est beaucoup plus facile et rationnel de développer comme ça.

par Danny » 13 mai 2008, 20:35

Fais donc voir la requête utilisée pour faire ça, ce sera plus parlant et j'aurai une meilleure idée de la raison de l'échec s'il y a lieu...
Pour créer l'utilisateur ? J'ai fait ça directement chez l'hébergeur avec phpMyAdmin, pas avec une requête...

par Cyrano » 13 mai 2008, 20:29

Fais donc voir la requête utilisée pour faire ça, ce sera plus parlant et j'aurai une meilleure idée de la raison de l'échec s'il y a lieu...

par Danny » 13 mai 2008, 20:12

Je flaire la confusion : comment as-tu donc créé l'utilisateur ? T'es-tu servi un peu de la doc de MySQL pour voir comment gérer les comptes utilisateurs de MySQL ? :-k
Oui, et je viens d'y retourner pour voir ce que j'aurais pu manquer. Je vois pas. :cry:

par Cyrano » 13 mai 2008, 18:58

Je flaire la confusion : comment as-tu donc créé l'utilisateur ? T'es-tu servi un peu de la doc de MySQL pour voir comment gérer les comptes utilisateurs de MySQL ? :-k

par Danny » 13 mai 2008, 17:34

Tout à fait possible.

Dans ce cas, dans un client MySQL normal (MySQL Query Browser, PHPMyAdmin ou mieux encore en ligne de comande, crée un user genre "DW" en lui assignant un mot de passe mais avec l'option OLD_PASSWORD et ça devrait fonctionner.

Ou encore mieux : change d'éditeur et prends-en un vrai (tout Troll mis-à-part), un Notepad++ sera un bien meilleur outil d'apprentissage que ce truc coûteux et pas spécialisé du tout dans le code optimal. ;)
Question quiz: lorsqu'on insère des données dans la base et qu'on nous propose de choisir une fonction pour chaque colonne (USER, LOWERCASE, OLD_PASSWORD, etc.), est-ce que cela a une incidence sur le code ? Pour 'id' doit-on attribuer une fonction ? (je ne savais pas quoi mettre alors j'ai laissé vide)

par Cyrano » 13 mai 2008, 16:41

Tout à fait possible.

Dans ce cas, dans un client MySQL normal (MySQL Query Browser, PHPMyAdmin ou mieux encore en ligne de comande, crée un user genre "DW" en lui assignant un mot de passe mais avec l'option OLD_PASSWORD et ça devrait fonctionner.

Ou encore mieux : change d'éditeur et prends-en un vrai (tout Troll mis-à-part), un Notepad++ sera un bien meilleur outil d'apprentissage que ce truc coûteux et pas spécialisé du tout dans le code optimal. ;)

par Danny » 13 mai 2008, 16:01

Hé, si tu as une installation neuve, utilise donc MySQL 5 : c'est la dernière version stable et tu y gagneras en performances autant qu'en confort avec des améliorations notables par rapport à la 4.1.
C'est fait.

Maintenant quand on me dit ''consider upgrading MySQL client'', le 'client' c'est Dreamweaver, j'ai bon ? :roll:

par Cyrano » 13 mai 2008, 15:40

Hé, si tu as une installation neuve, utilise donc MySQL 5 : c'est la dernière version stable et tu y gagneras en performances autant qu'en confort avec des améliorations notables par rapport à la 4.1.

par Danny » 13 mai 2008, 15:04

Non, ça vient du mot de passe utilisé pour la connexion : avec la version 4.1, MySQL a changé l'algorithme de hachage des mots de passe des utilisateurs. Si ta base d'origine est antérieure à cette version mais que tu as conservé le même mot de passe, il faut explorer "OLD_PASSWORD" dans la doc de MySQL, tu vas trouver des choses intéressantes.
Bizarre parce que j'ai crée cette base tout récemment et en version 4.1 il me semble bien. Je retourner fouiller...

par Cyrano » 13 mai 2008, 14:51

Non, ça vient du mot de passe utilisé pour la connexion : avec la version 4.1, MySQL a changé l'algorithme de hachage des mots de passe des utilisateurs. Si ta base d'origine est antérieure à cette version mais que tu as conservé le même mot de passe, il faut explorer "OLD_PASSWORD" dans la doc de MySQL, tu vas trouver des choses intéressantes.