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

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP-MYSQL] J'ai un problème que je n'arrive pas à résoudre SVP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP-MYSQL] J'ai un problème que je n'arrive pas à résoudre SVP

n°380269
dinbougre8​88
Posté le 02-05-2003 à 11:21:48  profilanswer
 

Bonjour voilà j'ai un soucis pour mon site que je suis en train de réaliser. J'ai déjà fait 2 sites et je n'ai jamais eu ce problème et je vois pas du tout à quoi c'est dû.
 
Quand je fais des "SELECT" il n'y a aucun soucis tout s'affiche bien mais le problème c'est quand j'utilise un formulaire qui est censé faire une mise à jour du profil de l'utilisateur. Voilà ce que me retourne le code php quand je click sur le bouton :

Warning: Accès refusé pour l'utilisateur: 'ODBC@localhost' (mot de passe: NON) in c:\easyphp\www\monsite\fonctions.php on line 35
 
Warning: MySQL Connection Failed: Accès refusé pour l'utilisateur: 'ODBC@localhost' (mot de passe: NON) in c:\easyphp\www\monsite\fonctions.php on line 35
 
Warning: MySQL: A link to the server could not be established in c:\easyphp\www\monsite\fonctions.php on line 35


 
 
A la ligne 35 de mon fonctions.php j'ai ce code là :

mysql_query ($maRequete) ;


 
 
Ma variable $maRequete contient :

update t_membre set pseudo = 'toto' where id = 1


 
 
Si je lance cette requête dans mysql elle passe sans problème.
Je vois pas du tout le pb :(
pourtant le user est bien root, le serveur est localhost et il n'y a aucun mot de passe :(
 
Si quelqu'un pouvait m'aider ça serait cool pcq je cherche depuis vendredi.

mood
Publicité
Posté le 02-05-2003 à 11:21:48  profilanswer
 

n°380283
simogeo
j'ai jamais tué de chats, ...
Posté le 02-05-2003 à 11:37:05  profilanswer
 

il faut recharger mysql [:tinostar]


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°380298
backdafuck​up
Back to da old skool
Posté le 02-05-2003 à 11:49:16  profilanswer
 

Dinbougre888 a écrit :

Bonjour voilà j'ai un soucis pour mon site que je suis en train de réaliser. J'ai déjà fait 2 sites et je n'ai jamais eu ce problème et je vois pas du tout à quoi c'est dû.
 
Quand je fais des "SELECT" il n'y a aucun soucis tout s'affiche bien mais le problème c'est quand j'utilise un formulaire qui est censé faire une mise à jour du profil de l'utilisateur. Voilà ce que me retourne le code php quand je click sur le bouton :

Warning: Accès refusé pour l'utilisateur: 'ODBC@localhost' (mot de passe: NON) in c:\easyphp\www\monsite\fonctions.php on line 35
 
Warning: MySQL Connection Failed: Accès refusé pour l'utilisateur: 'ODBC@localhost' (mot de passe: NON) in c:\easyphp\www\monsite\fonctions.php on line 35
 
Warning: MySQL: A link to the server could not be established in c:\easyphp\www\monsite\fonctions.php on line 35


 
 
A la ligne 35 de mon fonctions.php j'ai ce code là :

mysql_query ($maRequete) ;


 
 
Ma variable $maRequete contient :

update t_membre set pseudo = 'toto' where id = 1


 
 
Si je lance cette requête dans mysql elle passe sans problème.
Je vois pas du tout le pb :(
pourtant le user est bien root, le serveur est localhost et il n'y a aucun mot de passe :(
 
Si quelqu'un pouvait m'aider ça serait cool pcq je cherche depuis vendredi.


D'après tes erreurs, on dirait que le serveur ne prend pas en compte les infos de connexion à mysql.
Il te dit que tu ne peux pas te connecter en tant ODBC@localhost etc..
Faut que tu reconnectes à la base :  
mysql_connect("localhost","root","" );

n°380304
simogeo
j'ai jamais tué de chats, ...
Posté le 02-05-2003 à 11:54:58  profilanswer
 

est-ce que tu as donné les droits en INSERT à l'utilisateur que tu utilises sur la base en question ?  :sarcastic:


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°380306
dinbougre8​88
Posté le 02-05-2003 à 12:10:08  profilanswer
 

backdafuckup a écrit :


D'après tes erreurs, on dirait que le serveur ne prend pas en compte les infos de connexion à mysql.
Il te dit que tu ne peux pas te connecter en tant ODBC@localhost etc..
Faut que tu reconnectes à la base :  
mysql_connect("localhost","root","" );


 
mais pk il faut me reconnecter ? puisque si à la suite de ça je fais un click sur un menu ki m'affiche des infos de mysql ça marche sans pb donc la connexion est encore là je pense :(

n°380308
dinbougre8​88
Posté le 02-05-2003 à 12:11:18  profilanswer
 

simogeo a écrit :

est-ce que tu as donné les droits en INSERT à l'utilisateur que tu utilises sur la base en question ?  :sarcastic:  


 
je viens de regarder et tout est coché :(
 

Modifier  Effacer  Autres privilèges  localhost  root  Non  Select Insert Update Delete Create Drop Reload Shutdown Process File Grant References Index Alter  

n°380357
dinbougre8​88
Posté le 02-05-2003 à 13:53:47  profilanswer
 

tiens une question, pk eskil me met :

Accès refusé pour l'utilisateur: 'ODBC@localhost'


 
pk le ODBC?

n°380360
simogeo
j'ai jamais tué de chats, ...
Posté le 02-05-2003 à 13:57:54  profilanswer
 

Dinbougre888 a écrit :

tiens une question, pk eskil me met :

Accès refusé pour l'utilisateur: 'ODBC@localhost'


 
pk le ODBC?  


 
hello ...  
ben c'est plutôt a toi qu'il faut le demander  :heink:  
c'est toi qui gères les utilisateurs.....
t'as des drivers ODBC sur ta machine ?


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°380376
backdafuck​up
Back to da old skool
Posté le 02-05-2003 à 14:13:53  profilanswer
 

Dinbougre888 a écrit :

tiens une question, pk eskil me met :

Accès refusé pour l'utilisateur: 'ODBC@localhost'


 
pk le ODBC?  


ODBC est aussi l'utilisateur mis par défaut sur easyphp (je connais que celui la)

n°380380
simogeo
j'ai jamais tué de chats, ...
Posté le 02-05-2003 à 14:19:39  profilanswer
 

backdafuckup a écrit :


ODBC est aussi l'utilisateur mis par défaut sur easyphp (je connais que celui la)
 


 
 
backdafuckup   [:troa]  
ca serait pas une grosse connerie ça ? :sarcastic:


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
mood
Publicité
Posté le 02-05-2003 à 14:19:39  profilanswer
 

n°380382
backdafuck​up
Back to da old skool
Posté le 02-05-2003 à 14:24:45  profilanswer
 

simogeo a écrit :


 
 
backdafuckup   [:troa]  
ca serait pas une grosse connerie ça ? :sarcastic:  


ben vu que d'habitude c'est root@localhost, et que j'ai eu droit a "impossible gnagnagna ODBC@localhost", j'en ai déduit que, en l'absence du nom d'user, easyphp remplace par ODBC... c'est tout
 
 
 
EDIT:
Dinbougre888> Tu as quoi dans les 5 lignes précédant la ligne 35 ? Si tu pouvais le poster, il y a peut etre une erreur qui t'a échappé et qu'on pourrait déceler...


Message édité par backdafuckup le 02-05-2003 à 14:50:24
n°380433
dinbougre8​88
Posté le 02-05-2003 à 15:01:46  profilanswer
 

function Sql_Maj_Profil($profil_id, $pseudo, $pays, $ville, $dt_naissance, $icq, $msn, $mail, $connexion, $fai) {
 $reqsql = "update t_membre set " ;
 $reqsql = $reqsql . "pseudo = '$pseudo', " ;  
 $reqsql = $reqsql . "pays = '$pays', " ;
 $reqsql = $reqsql . "ville = '$ville', " ;
 $reqsql = $reqsql . "dt_naissance = '$dt_naissance', " ;
 $reqsql = $reqsql . "icq = '$icq', " ;
 $reqsql = $reqsql . "msn = '$msn', " ;
 $reqsql = $reqsql . "mail = '$mail', " ;
 $reqsql = $reqsql . "connexion = '$connexion', " ;
 $reqsql = $reqsql . "fai = '$fai' " ;
 $reqsql = $reqsql . "where obj_id = $profil_id" ;  
 mysql_query ($reqsql) ;
}


 
Ma ligne 35 correspond à  

mysql_query ($reqsql) ;


 
En fait dans ma question j'ai raccourci la requête et voici la requête dans la totalité. Toutes les variables sont bien passés en paramètres pourtant donc pas d'histoire de variable global à déclaré ou quoi que ce soit.
 
ps : dans l'action de mon formulaire j'ai ceci  

<form method="post" action="action.php?page=maj_profil">


 
dans action.php j'ai une condition qui est la suivante

if ($page=="maj_profil" ) {
   Sql_Maj_Profil (...) ;
}


 
et j'ai regardé toutes les variables sont bien passés :(

n°380442
backdafuck​up
Back to da old skool
Posté le 02-05-2003 à 15:10:06  profilanswer
 

Dinbougre888 a écrit :

function Sql_Maj_Profil($profil_id, $pseudo, $pays, $ville, $dt_naissance, $icq, $msn, $mail, $connexion, $fai) {
 $reqsql = "update t_membre set " ;
 $reqsql = $reqsql . "pseudo = '$pseudo', " ;  
 $reqsql = $reqsql . "pays = '$pays', " ;
 $reqsql = $reqsql . "ville = '$ville', " ;
 $reqsql = $reqsql . "dt_naissance = '$dt_naissance', " ;
 $reqsql = $reqsql . "icq = '$icq', " ;
 $reqsql = $reqsql . "msn = '$msn', " ;
 $reqsql = $reqsql . "mail = '$mail', " ;
 $reqsql = $reqsql . "connexion = '$connexion', " ;
 $reqsql = $reqsql . "fai = '$fai' " ;
 $reqsql = $reqsql . "where obj_id = $profil_id" ;  
 mysql_query ($reqsql) ;
}


 
Ma ligne 35 correspond à  

mysql_query ($reqsql) ;


 
En fait dans ma question j'ai raccourci la requête et voici la requête dans la totalité. Toutes les variables sont bien passés en paramètres pourtant donc pas d'histoire de variable global à déclaré ou quoi que ce soit.
 
ps : dans l'action de mon formulaire j'ai ceci  

<form method="post" action="action.php?page=maj_profil">


 
dans action.php j'ai une condition qui est la suivante

if ($page=="maj_profil" ) {
   Sql_Maj_Profil (...) ;
}


 
et j'ai regardé toutes les variables sont bien passés :(


 
La a froid, je ne vois pas d'erreur. Afin d'éviter d'éventuelles erreurs de syntaxe, je préfère ne faire qu'un seul update à la fois (enfin c'est mon choix, bon ou mauvais), mais ca ne résout en rien ton problème.
Il y a deux raisons à ton erreur : erreur de ta requete (mais ca m'étonnerai)
                                   la connexion avec la base n'a pas été correctement établie
 
Pour ce dernier cas, j'avais été obligé, pour mon dernier site, à faire passer les paramètres $user, $mdp, $host $db dans toutes mes pages (c'était avant que je ne découvre les variables de cession). Bref, chaque page a besoin de se connecter à la base...
Après je vois pas

n°380445
simogeo
j'ai jamais tué de chats, ...
Posté le 02-05-2003 à 15:14:43  profilanswer
 

on veut le echo de ta requête .... :bounce:


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°380512
dinbougre8​88
Posté le 02-05-2003 à 16:00:37  profilanswer
 

Voici le echo de la requête :
 

update t_membre set pseudo = 'Dinbougre', pays = 'France', ville = 'Paris', dt_naissance = '', icq = '13511751', msn = 'dinbougre@hotmail.com', mail = 'dinbougre@hotmail.com', connexion = 'ADSL', fai = 'Wanadoo' where obj_id = 1


 
mais il n'y a pas d'erreur dedans j'en suis sûr pcq je l'ai passé sous mysql et la modif se passe sans soucis.
 
Par contre j'avais utilisé une première méthode en utilisant des fonctions génériques.
voici ma fonction de connexion à la base à l'époque :

function m_Sql_OuvreCn($CnStr,$Uid="",$Pwd="",$Db="" ) {
 global $cnx_id ;  
 $cnx_id = mysql_connect($CnStr,$Uid,$Pwd) ;
 if ($Db<>"" ) mysql_select_db($Db,$cnx_id) ;
}


 
et je l'appellai dans mon index.php comme ceci :

m_Sql_OuvreCn($cnx_srv, $cnx_uid, $cnx_pwd, $cnx_db) ;


 
Et sur le site pour mon boulot ça passe sans pb à la différence qu'au lieu d'utiliser mysql_connect j'utilise mssql_connect. Pour mon site perso juste en changeant ça, ça avait l'air de marché jusqu'à ce formulaire :(
 
Et j'avais fait un echo de mon $cnx_id qui normalement me retourne un truc du style "#Ressource 1" et arrivé au formulaire où il plante il était à vide. Je pense que cela signifie qu'il perde la connexion mais je vois pas pk :(

n°380522
backdafuck​up
Back to da old skool
Posté le 02-05-2003 à 16:04:41  profilanswer
 

Dinbougre888 a écrit :

Voici le echo de la requête :
 

update t_membre set pseudo = 'Dinbougre', pays = 'France', ville = 'Paris', dt_naissance = '', icq = '13511751', msn = 'dinbougre@hotmail.com', mail = 'dinbougre@hotmail.com', connexion = 'ADSL', fai = 'Wanadoo' where obj_id = 1


 
mais il n'y a pas d'erreur dedans j'en suis sûr pcq je l'ai passé sous mysql et la modif se passe sans soucis.
 
Par contre j'avais utilisé une première méthode en utilisant des fonctions génériques.
voici ma fonction de connexion à la base à l'époque :

function m_Sql_OuvreCn($CnStr,$Uid="",$Pwd="",$Db="" ) {
 global $cnx_id ;  
 $cnx_id = mysql_connect($CnStr,$Uid,$Pwd) ;
 if ($Db<>"" ) mysql_select_db($Db,$cnx_id) ;
}


 
et je l'appellai dans mon index.php comme ceci :

m_Sql_OuvreCn($cnx_srv, $cnx_uid, $cnx_pwd, $cnx_db) ;


 
Et sur le site pour mon boulot ça passe sans pb à la différence qu'au lieu d'utiliser mysql_connect j'utilise mssql_connect. Pour mon site perso juste en changeant ça, ça avait l'air de marché jusqu'à ce formulaire :(
 
Et j'avais fait un echo de mon $cnx_id qui normalement me retourne un truc du style "#Ressource 1" et arrivé au formulaire où il plante il était à vide. Je pense que cela signifie qu'il perde la connexion mais je vois pas pk :(


 
C'est au niveau du passage de tes paramètres. Ils sont vides à cause de l'en tete de ta fonction (qui met par défaut les paramètres à "" ).
le #ressource1 est le resultat d'une requete de selection :  
 
$var = mysql_query("select * from machin" );
echo $var; // affiche "#Ressource1"

n°380543
dinbougre8​88
Posté le 02-05-2003 à 16:20:17  profilanswer
 

backdafuckup a écrit :


 
C'est au niveau du passage de tes paramètres. Ils sont vides à cause de l'en tete de ta fonction (qui met par défaut les paramètres à "" ).
le #ressource1 est le resultat d'une requete de selection :  
 
$var = mysql_query("select * from machin" );
echo $var; // affiche "#Ressource1"


 
oui mais cette fonction est appelé une fois au début du index.php et c'est tout. A mon travail je fais exactement la même chose et ça passe sans problème.
En plus je lui envoie une valeur donc le pb n'est pas ici. Le pb se trouve o moment où l'on arrive dans la fonction Sql_Modif_Profil où l'on n'a plus la connexion apparement :(

n°380546
backdafuck​up
Back to da old skool
Posté le 02-05-2003 à 16:25:12  profilanswer
 

Dinbougre888 a écrit :


 
oui mais cette fonction est appelé une fois au début du index.php et c'est tout. A mon travail je fais exactement la même chose et ça passe sans problème.
En plus je lui envoie une valeur donc le pb n'est pas ici. Le pb se trouve o moment où l'on arrive dans la fonction Sql_Modif_Profil où l'on n'a plus la connexion apparement :(


 
Sql_Modif_Profil elle est dans index.php ou dans une autre feuille ?
Parce qu'il faut toujours que tes $cnx_blabla soient ou passés en paramètres par un form ou bien des variables de session.

n°380592
dinbougre8​88
Posté le 02-05-2003 à 17:00:30  profilanswer
 

backdafuckup a écrit :


 
Sql_Modif_Profil elle est dans index.php ou dans une autre feuille ?
Parce qu'il faut toujours que tes $cnx_blabla soient ou passés en paramètres par un form ou bien des variables de session.


 
Sql_Modif_Profil est dans une autre page qui s'appel FONCTIONS.PHP.
Je mets

global $cnx_id ;  


dans la fonction Sql_Modif_Profil c'est bien ça?

n°380608
backdafuck​up
Back to da old skool
Posté le 02-05-2003 à 17:06:18  profilanswer
 

Dinbougre888 a écrit :


 
Sql_Modif_Profil est dans une autre page qui s'appel FONCTIONS.PHP.
Je mets

global $cnx_id ;  


dans la fonction Sql_Modif_Profil c'est bien ça?


je ne sais pas, je n'ai jamais utilisé "global".
Moi je faisais des variables de cession, c'est plus simple, et en plus il n'y a besoin ni de les déclarer ni de les faire passer de feuille en feuille (ce qui peut génerer des oublis, donc des corrections incessantes)

n°380610
dinbougre8​88
Posté le 02-05-2003 à 17:08:04  profilanswer
 

Voilà la méthode ci-dessus était l'ancienne méthode.
Je vous mets maintenant le début de mon index.php
 

<?
 $cnx = mysql_connect($url,$u,$p) or die("impossible de se connecter" ) ;      
 mysql_select_db($db) or die("impossible d'accéder à la base de données" ) ;    
 echo "connexion id => " . $cnx;
?>


 
Et mon

echo "connexion id => " . $cnx;


me retourne

connexion id => Resource id #1


quand je click sur une page qui m'affiche des infos qui sont dans la base de données. Et kan je click sur le bouton de mon formulaire qui fait la mise à jour j'ai toujours l'erreur mais mon connexion id me retourne tjrs Resource id #1 donc la connexion est encore là ou koi? :cry:

n°380615
backdafuck​up
Back to da old skool
Posté le 02-05-2003 à 17:11:03  profilanswer
 

Dinbougre888 a écrit :

Voilà la méthode ci-dessus était l'ancienne méthode.
Je vous mets maintenant le début de mon index.php
 

<?
 $cnx = mysql_connect($url,$u,$p) or die("impossible de se connecter" ) ;      
 mysql_select_db($db) or die("impossible d'accéder à la base de données" ) ;    
 echo "connexion id => " . $cnx;
?>


 
Et mon

echo "connexion id => " . $cnx;


me retourne

connexion id => Resource id #1


quand je click sur une page qui m'affiche des infos qui sont dans la base de données. Et kan je click sur le bouton de mon formulaire qui fait la mise à jour j'ai toujours l'erreur mais mon connexion id me retourne tjrs Resource id #1 donc la connexion est encore là ou koi? :cry:


 
Comme je te l'ai dit Ressource id#1 ne renseigne pas sur la connexion, la requete a été effectuée, et ce "Ressource..." est stocké ainsi. Si la requete de connexion avait échoué, $cnx contiendrait ce que tu as mis dans le die();
 
Essaie de faire une connexion dans la fonction qui te pose problème, dans un premier temps avec des variables, et dans un deuxieme temps en rentrant les vraies valeurs entre guillemets

n°380618
dinbougre8​88
Posté le 02-05-2003 à 17:16:21  profilanswer
 

argh ! ça marche :(
 
j'ai rajouté dans ma fonction Sql_Modif_Profil :
 

include("cfg.php" );  
 $cnx = mysql_connect($url,$u,$p) or die("impossible de se connecter" ) ;      
 mysql_select_db($db) or die("impossible d'accéder à la base de données" ) ;  


 
Mon cfg.php contient les valeurs des variables $url, $u, $p, $db
 
Donc c'est bien ça alors il a plus la connexion :(
comment faire pour kil attrape la connexion active? Je trouve ça bof bof de passer ça dans une variable de session :(

n°380623
simogeo
j'ai jamais tué de chats, ...
Posté le 02-05-2003 à 17:18:17  profilanswer
 

Dinbougre888 a écrit :

argh ! ça marche :(
 
j'ai rajouté dans ma fonction Sql_Modif_Profil :
 

include("cfg.php" );  
 $cnx = mysql_connect($url,$u,$p) or die("impossible de se connecter" ) ;      
 mysql_select_db($db) or die("impossible d'accéder à la base de données" ) ;  


 
Mon cfg.php contient les valeurs des variables $url, $u, $p, $db
 
Donc c'est bien ça alors il a plus la connexion :(
comment faire pour kil attrape la connexion active? Je trouve ça bof bof de passer ça dans une variable de session :(


 
ben il faut lui passer l'identifiant de connexion en parametres  [:spamafote]


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°380631
backdafuck​up
Back to da old skool
Posté le 02-05-2003 à 17:26:34  profilanswer
 

Dinbougre888 a écrit :

argh ! ça marche :(
 
j'ai rajouté dans ma fonction Sql_Modif_Profil :
 

include("cfg.php" );  
 $cnx = mysql_connect($url,$u,$p) or die("impossible de se connecter" ) ;      
 mysql_select_db($db) or die("impossible d'accéder à la base de données" ) ;  


 
Mon cfg.php contient les valeurs des variables $url, $u, $p, $db
 
Donc c'est bien ça alors il a plus la connexion :(
comment faire pour kil attrape la connexion active? Je trouve ça bof bof de passer ça dans une variable de session :(


 
moi je trouve ca très pratique [:spamafote]
Car ce sont des valeurs (root, localhost, password, database) qui sont réutilisées dès qu'il y a communication avec la base, donc dans presque toutes les pages !
C'est pour ca que les variables de session sont la !
Sinon faut passer en paramètre de feuille à feuille, de fonction à fonction :/

n°380639
dinbougre8​88
Posté le 02-05-2003 à 17:34:40  profilanswer
 

ahhhhhhhhhhhhhhh j'ai trouvé !
Je sais pk ça marche à mon boulot et pas chez moi :D
 
tin chui trop con putain :fou: j'y suis dessus depuis vendredi !!!
 
En fait sur mon index.php là où je fais le
 

$cnx = mysql_connect($url,$u,$p) or die("impossible de se connecter" ) ;      
 mysql_select_db($db) or die("impossible d'accéder à la base de données" ) ;


 
j'ai oublié de vous précisez ke juste avant ça y a un include de ma page qui fait appel à la fonction Sql_Modif_Profil. En fait fallait faire le include après la connexion :(
chui vrmt trop con pcq c'est logique comme truc !

mood
Publicité
Posté le   profilanswer
 


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

  [PHP-MYSQL] J'ai un problème que je n'arrive pas à résoudre SVP

 

Sujets relatifs
[PHP] Editer le fichier htpasswdodbc vers Mysql
[Javascript ? PhP ?] Comment faire un fondu au chargement des pagesEditeur HTML, PHP, MY SQL
Gros problème de transfert de BDD MySQL ![C/C++] Sockets en UDP, problème d'envoi à une IP
[PHP]Probleme d'execution de script avec Easy Php[PHP]comment submiter un form par header("location :/ main.php") ?
Plus de sujets relatifs à : [PHP-MYSQL] J'ai un problème que je n'arrive pas à résoudre SVP


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