Erreur de paramètres?

Erreur de paramètres? - PHP - Programmation

Marsh Posté le 08-01-2008 à 21:32:21    

Salut,  
 
J'essaie de créer un petit formulaire dont je veux que les résultats soient encodés dans une base de données.
Le problème est apparemment dans la connexion vers cette base de données.
J'ai fait un include dans chaque page vers les paramètres de connexion, mais rien n'y fait. Je suis chez Lycos, mais table est bien existante et voilà les paramètres de connexion. Est-ce que l'erreur vient de là?

Code :
  1. <?php 
  2. $hostname = "localhost"; 
  3. $database = "monsite_be_2 "; 
  4. $username = "monsite_be"; 
  5. $password = "Musique"; 
  6. $connexion = mysql_pconnect($hostname, $username, $password) or die(mysql_error()); 
  7. mysql_select_db($database, $connexion); 
  8. ?>


Merci de m'éclairer dans mes débuts...
 

Reply

Marsh Posté le 08-01-2008 à 21:32:21   

Reply

Marsh Posté le 08-01-2008 à 23:02:18    

Et qu'elle est l'erreur rencontrée justement ??

Reply

Marsh Posté le 09-01-2008 à 05:23:15    

JE suis pas sûr que la connection persistante soit une bonne idée sur un hébergement mutualisé ;)

Reply

Marsh Posté le 09-01-2008 à 07:49:52    

Y'a-t-il un message d'erreur ? Ca nous aiderait bien

Reply

Marsh Posté le 09-01-2008 à 13:50:23    

leflos5 a écrit :

JE suis pas sûr que la connection persistante soit une bonne idée sur un hébergement mutualisé ;)


même host/user/mdp?[:autobot]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 09-01-2008 à 14:47:11    

skeye a écrit :


même host/user/mdp?[:autobot]


Y comprend pas la question :o

Reply

Marsh Posté le 09-01-2008 à 15:02:42    

leflos5 a écrit :


Y comprend pas la question :o


 
Le pconnect crée une nouvelle connexion si un de ces paramètres est différent, donc quel est le pb avec un mutualisé?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 09-01-2008 à 16:38:01    

En fait, lorsque tout est en ligne, je remplis le formulaire, mais qd j'envoie, tout se passe normalement, sauf que rien ne s'enregistre dans la base de données! Donc, pas de message d'erreur. Cela dit, mon script php est assez simple...
Pour ce qui est du mutualisé, je dois dire que je ne sais pas du tout ce que c'est!
Pour vous, le code ci-dessus devrait fonctionner correctement?
Merci

Reply

Marsh Posté le 09-01-2008 à 16:40:51    

oui.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 09-01-2008 à 16:48:51    

Alors voici le code de mon formulaire:

Code :
  1. <form action="inserer.php" method="post">
  2. <?
  3. include("connexion.php" );   
  4. $perso=$_GET['perso']; 
  5. $structure=$_GET['structure']; 
  6. $groupe=$_GET['groupe']; 
  7. $newperso=$_GET['newperso']; 
  8. $reste=$_GET['reste']; 
  9. ?>
  10.   <p>Perso:
  11.     <input name="perso" type="text" id="perso" value="<? echo $perso ?>">  </p>
  12.   <p>Structure  :
  13.     <input name="structure" type="text" id="structure" value="<? echo $structure ?>"></p>
  14.   <p>Groupe  :
  15.     <input name="groupe" type="text" id="groupe" value="<? echo $groupe ?>"></p>
  16.   <p>Nouvelles  perso :
  17.     <input name="newperso" type="text" id="newperso" value="<? echo $newperso ?>"></p>
  18.   <p>Reste :
  19.     <input name="reste" type="text" id="reste" value="<? echo $reste ?>"></p>
  20.   <p><input type="submit" name="Submit" value="Envoyer" /></p>
  21. </form>


 
Et voici celui de ma page 'inserer.php' qui est censée envoyer le contenu dans la base de données.

Code :
  1. <? 
  2. include("connexion.php" ); 
  3. $perso=$_POST['perso']; 
  4. $structure=$_POST['structure'];
  5. $groupe=$_POST['groupe']; 
  6. $newperso=$_POST['newperso']; 
  7. $reste=$_POST['reste'];   
  8. mysql_query("insert into unites values ('','$perso','$structure','$groupe','$newperso,'$reste')" ); 
  9. echo "Le commentaire a été inséré."; 
  10. ?>


Qui va pouvoir trouver l'erreur?
1000x merci d'avance!

Reply

Marsh Posté le 09-01-2008 à 16:48:51   

Reply

Marsh Posté le 09-01-2008 à 17:05:22    

C'est beau les scripts aussi mal protégé, le moindre ' qui traine dans un élément du formulaire et la requête plante. (mysql_real_escape_string existe pour une bonne raison) En plus, je ne vois pas la moindre vérification du bon déroulement de la requête. Certe la fonction mysql n'a pas planté, mais comme tu ne vérifies pas ce que mysql raconte tu n'as aucune idée de ce qui se passe dans la base de donnée.
Un simple 'mysql_query("ta requette" ) or die(mysql_error())' te donnera déjà plus d'infos.

Message cité 1 fois
Message édité par omega2 le 09-01-2008 à 17:06:02
Reply

Marsh Posté le 09-01-2008 à 17:10:06    

c'est très gentil de m'en apprendre davantage dans mes tous débuts. Je vais essayer ca et on verra la suite.

Reply

Marsh Posté le 09-01-2008 à 19:17:38    

omega2 a écrit :

C'est beau les scripts aussi mal protégé, le moindre ' qui traine dans un élément du formulaire et la requête plante. (mysql_real_escape_string existe pour une bonne raison) En plus, je ne vois pas la moindre vérification du bon déroulement de la requête. Certe la fonction mysql n'a pas planté, mais comme tu ne vérifies pas ce que mysql raconte tu n'as aucune idée de ce qui se passe dans la base de donnée.
Un simple 'mysql_query("ta requette" ) or die(mysql_error())' te donnera déjà plus d'infos.


En effet, voici le message d'erreur qui apparait:
"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'unites' at line 1"
 
Pour être sûr que j'ai bien introduit la vérification, voici ce que j'ai mis dans ma page 'inserer.php '(sachant que ma base s'appelle 'unites'):

Code :
  1. <? 
  2. include("connexion.php" ); 
  3. $perso=$_POST['perso']; 
  4. $structure=$_POST['structure'];
  5. $groupe=$_POST['groupe']; 
  6. $newperso=$_POST['newperso']; 
  7. $reste=$_POST['reste'];   
  8. mysql_query("insert into unites values ('','$perso','$structure','$groupe','$newperso,'$reste')" ); 
  9. mysql_query("unites" ) or die(mysql_error());
  10. echo "Le commentaire a été inséré."; 
  11. ?>


Si jusque là c'est bien correct, merci de m'aider à décoder le message d'erreur, pcq je n'y comprends pas grand chose...
Merci à vous

Reply

Marsh Posté le 09-01-2008 à 19:34:47    

enlever

 
Code :
  1. mysql_query("unites" )
 


=>

 
Code :
  1. mysql_query("insert into unites values ('','$perso','$structure','$groupe','$newperso,'$reste')" ) or die(mysql_error());

Message cité 1 fois
Message édité par art_dupond le 09-01-2008 à 19:35:29

---------------
oui oui
Reply

Marsh Posté le 09-01-2008 à 19:42:23    

art_dupond a écrit :

enlever
 

Code :
  1. mysql_query("unites" )


 
 
=>
 

Code :
  1. mysql_query("insert into unites values ('','$perso','$structure','$groupe','$newperso,'$reste')" ) or die(mysql_error());



On avance je pense...
Voilà le nouveau message d'erreur: "No database selected"
J'ai donc bien mis:

Code :
  1. <? 
  2. include("connexion.php" ); 
  3. $perso=$_POST['perso']; 
  4. $structure=$_POST['structure'];
  5. $groupe=$_POST['groupe']; 
  6. $newperso=$_POST['newperso']; 
  7. $reste=$_POST['reste'];   
  8. mysql_query("insert into unites values ('','$perso','$structure','$groupe','$newperso,'$reste')" ) or die(mysql_error());
  9. echo "Le commentaire a été inséré."; 
  10. ?>


Et je ne dois rien changer dans ma page 'connexion.php'? Tout est bien correct de ce côté là?

Reply

Marsh Posté le 09-01-2008 à 21:56:05    

Code :
  1. mysql_select_db($database, $connexion) or die('Impossible de sélectionner la base de données : ' . mysql_error());


?


---------------
oui oui
Reply

Marsh Posté le 10-01-2008 à 14:05:12    

Voilà maintenant le nouveau message d'erreur:
"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''test3,'')' at line 1"
Test 3 correspond au dernier élément que j'ai encodé dans le formulaire.
Où se situe l'erreur maintenant? Je n'arrive pas à voir dans quel fichier je dois regarder.
En tous cas, merci pour votre aide!!!

Reply

Marsh Posté le 10-01-2008 à 14:08:37    

Y'a un quote qui manque

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed