Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2464 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [résolu] impossible de me connecter à mysql

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[résolu] impossible de me connecter à mysql

n°1315410
tourdball
Posté le 28-02-2006 à 15:45:42  profilanswer
 

Bonjour,
je fais mes premiers pas sur php/mysql
Sur windows, je n'arrive pas à me connecter à mysql ("can't connect to database" )via un script php d'enregistrement d'utilisateur (script correcte puisqu'il fonctionne sur la plateforme linux). J'ai vérfié php.ini, tout semble correctement configuré :
; Directory in which the loadable extensions (modules) reside.
extension_dir = "C:\PHP\extensions\"
extension=php_mssql.dll
extension=php_msql.dll
 
et les deux fichiers se trouvent bien dans la directory...
 
Quelqu'un peut-il m'aider? puis-je faire un autre test? dois-je configurer quelque chose sur apache?
 
Merci d'avance!!!
A+


Message édité par tourdball le 09-03-2006 à 09:30:51
mood
Publicité
Posté le 28-02-2006 à 15:45:42  profilanswer
 

n°1315419
omega2
Posté le 28-02-2006 à 15:54:02  profilanswer
 

pour mysql, il faut utiliser l'extension mysql : php_mysql.dll  
Vu le message d'erreur ce n'est pas une abscence de l'extension (qui se traduit par une "fonction indisponible) mais une erreur dans les informations de login.
Et là, toi seul peut vérifier les adresses, noms et pseudos fournis par ton hébergeur ou demander ces informations à ton hébergeur.
 
Si t'as installé mysql chez toi, alors essaye avec "localhost" comme adresse de serveur "root" comme utiliser, et soiit "root" comme mot de passe soit pas de mot de passe.
 
En fait, vu l'erreur, c'est l'adresse où ce trouve mysql qui n'est pas bonne. T'es sur qu'il y en a un mysql de lancé à l'adresse que t'as indiqué?

n°1317685
tourdball
Posté le 03-03-2006 à 12:15:00  profilanswer
 

Salut omega2,
Bon je dois préciser :
J'ai en fait bien la connection avec la database, un seul problème persiste, l'autentification : je peux ajouter un user(dans la database) via script php sans problème, je peux aussi interroger la database pour afficher des informations. Mais je n'arrive pas à me connecter via un classique login/user (via form php). Chose encore plus étrange, ce problème n'existe pas sur la plateforme Linux. Ce n'est qu'un problème sur Windows (Wamp5). Je flaire déjà d'ou vient le probleme mais je n'ai toujours pas réussi à le résoudre :
 
Comme je l'ai déjà dit, je peux m'enregistrer sans problème (form php, UPDATE dans la database), et en fait quand je vais dans phpmyadmin, les nouveaux utilisateurs sont insérés sans problème. En fait quand j'essaye de me connecter j'ai le message (de mon script php) 'login failure' en gros l'authentification n'arrive pas à associer l' 'user' et son 'password'. C'est surement un problème cryptage du mot de passe mais j'ai déjà essayé un paquet de cryptages différents (PASSWORD(), OLD_PASSWORD(), ENCRYPT(),...) sans que cela ne change rien.
 
Je suis bloqué et je ne plus quoi (à part n'utiliser uniquement que Linux :-))
 
A+ et merci d'avance pour votre aide!

n°1317715
omega2
Posté le 03-03-2006 à 12:52:31  profilanswer
 

Petite idée : récupére "mysql browser" sur le site de mysql et essaye de te conecter en l'utilisant.
Si ca marche, ca vient du code php ou d'un réglage de php.
Si t'y arrive pas, alors c'est soit que ce user n'a pas le droit de se conecter de n'importe où, soit que tu t'es planté au niveau user/mot de passe, soit que mysql n'est pas lancé ou qu'il n'écoute pas sur le port que t'essaye de joindre.

n°1317753
tourdball
Posté le 03-03-2006 à 13:22:27  profilanswer
 

Attention : je me connecte très bien à la database, c'est çà qui ne passe pas :
select * from admin
where username='admin'
and password = password('123456')
En mysql me dit " MySQL n'a retourné aucun enregistrement"
Alors qu'il existe bien dans la table admin un username=admin avec un password=123456 encrypté par password.
 
En fait
select * from admin
where username='admin'
 
mais :
select * from admin
where password = password('123456')
ne me retourne rien...
 
C'est pour cela que je ne comprends pas ayant essayé divers type de cryptage, rien n'y fait...

n°1318030
omega2
Posté le 03-03-2006 à 17:29:08  profilanswer
 

Si je me souviens bien, entre mysql4.0 et mysql 4.1, l'encodage de la fonction password à changer.
L'anciene méthode d'encodage est utilisable grace à old_password() de mysql si je me souviens bien.
 
Si c'est du à ça, alors essaye cette fonction là.
 
PS : Si ca te dit que la fonction n'existe pas, alors cherche dans la doc de mysql.

n°1318031
chaced
Posté le 03-03-2006 à 17:31:35  profilanswer
 

tu appelle un champ password alors que c'est un mot résérvé (d'ailleur tu l'utilises juste apres :D)


---------------
CPU-Z | Timespy | Mes bd
n°1319205
tourdball
Posté le 06-03-2006 à 09:13:03  profilanswer
 

Bonjour à tous,
J'utilise mysql 5.0.18 et j'avais déjà essayé la solution du old_password(). En ce qui concerne le champs "password" comme mot clé, j'ai essayé en modifiant le nom du champ mais sans succès, d'autre part comme je l'ai déjà mentionné, tout fonctionne parfaitement sous linux, je ne pense donc pas que le problème vienne de là...
 
à suivre... à l'aide!!!

n°1319263
newneo2001
Posté le 06-03-2006 à 11:22:22  profilanswer
 

pourquoi tu utilises pas un encodage md5 ou sha1 plutot que password de mysql.
 


---------------
N'oubliez pas de mettre [RESOLU] dans le titre quand c'est fini - Pour poster vos sources : http://paste.clicksources.com/
n°1319289
tourdball
Posté le 06-03-2006 à 11:47:21  profilanswer
 

Salut
 
J'ai déjà essayé (presque tous les types de cryptages) et çà ne marche pas. J'ai aussi fait les tests sans cryptages et là, çà fonctionne! C'est donc inévitablement un problème de cryptage.
Je ne comprends pas pourquoi çà ne marche pas avec le cryptage...  
 
Y a-t-il une option à activer dans la configuration de php ou de mysql?

mood
Publicité
Posté le 06-03-2006 à 11:47:21  profilanswer
 

n°1319297
omega2
Posté le 06-03-2006 à 11:56:52  profilanswer
 

tourdball a écrit :

Salut
 
J'ai déjà essayé (presque tous les types de cryptages) et çà ne marche pas. J'ai aussi fait les tests sans cryptages et là, çà fonctionne! C'est donc inévitablement un problème de cryptage.
Je ne comprends pas pourquoi çà ne marche pas avec le cryptage...  
 
Y a-t-il une option à activer dans la configuration de php ou de mysql?

Heu ... si t'as les mots de passe mis en clair (sans aucun cryptage) dans la base de donnée, tu risques pas de les retrouver en cherchant leur équivalent crypter.
 
En bref, si tu cryptes un mot de passe, il faut utiliser la même méthode de cryptage pour chercher les lignes qui correspondent et si tu les stockes en clair, alors il faut chercher le mot de passe tel quel sans le transformer.

n°1319312
newneo2001
Posté le 06-03-2006 à 12:18:08  profilanswer
 

je pense que c'est parce ton test est mal fait.
 
tu le cryptes avant de l'enregistrer  
 
et apres tu fais ca
 
if ((md5($_POST['password'])) == $result_req['pass en db']  )
 
là ca fonctionnera ou alors tu peux aussi tester directement le pass dans ta req SELECT.
 
 


---------------
N'oubliez pas de mettre [RESOLU] dans le titre quand c'est fini - Pour poster vos sources : http://paste.clicksources.com/
n°1319578
tourdball
Posté le 06-03-2006 à 16:29:00  profilanswer
 

Bon les amis, je resynthétise : Mon code est parfaitement bien écrit, j'en ai pour preuve que tout fonctionne parfaitement sous Linux. Mon problème concerne exclusivement la plateforme Windows!
Il est évident que quand je change le cryptage à l'enregistrement, je le change aussi dans le script du login.  
 
D'autre part, et c'est encore plus étrange, ma connection à la database fonctionne puisque les autres modules qui utilisent une connection à la DB pour l'affichage des pages fonctionnent.
Ma connection à la db, je la fais çà :
 
function db_connect()
{
   $result = @mysql_pconnect('localhost', 'book_sc', 'password');  
   if (!$result)
      return false;
   if (!@mysql_select_db('book_sc'))
      return false;
   return $result;
}
 
Je précise que le mot de passe de book_sc est crypté en password()!!!?
et ma connection en tant que qu'admin je la fais comme çà :
 
function login($username, $password)
{
  // connect to db
  $conn = db_connect();
  if (!$conn)
    return 0;
 
   $result = mysql_query("select * from admin  
                         where username='$username'
                         and password = PASSWORD('$password')" );
  if (!$result)
     return 0;
   
  if (mysql_num_rows($result)>0)
     return 1;
  else  
     return 0;
}
 

n°1320703
tourdball
Posté le 08-03-2006 à 08:56:36  profilanswer
 

on est bloqué? :D

n°1320784
omega2
Posté le 08-03-2006 à 10:55:59  profilanswer
 

Laisse moi deviner : t'as pas changer la taille de la colone du password et du coup il est pas sauvegardé en entié dans ta base.

n°1321549
tourdball
Posté le 09-03-2006 à 09:20:23  profilanswer
 

BINGO!!!
c'était donc çà, j'avais mal défini ma table dans MySQL, le champs "PASSWORD" était défini comme char(16), or le cryptage via password génére un code de 40 caractère, le problème était donc là!
 
Bravo omega2 ;) et merci d'etre resté avec moi jusqu'au bout sur ce coup là....


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [résolu] impossible de me connecter à mysql

 

Sujets relatifs
[Résolu] Problème pour un INSERT INTO d'une base vers une autre[VBScript] [RESOLU] modifier une fonction dans une boucle
[Resolu]selection de ligne d'un tableau dynamique et formulaireProtéger un livre d'or [Résolu]
Php ne peut charger l'extension mysqlMySql : jointure externe
[VBScript] [RESOLU] Boucle Do ... Loop[Résolu]liste de case à cocher
php/mysql[MySQL] Verrous tables MyISAM / InnoDB
Plus de sujets relatifs à : [résolu] impossible de me connecter à mysql


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR