JeuWeb - Crée ton jeu par navigateur
probleme mysql - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : probleme mysql (/showthread.php?tid=559)

Pages : 1 2


probleme mysql - zneman - 21-12-2006

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /mnt/136/sdc/9/9/magusworld/ajout.php on line 187

J'avoue ne plus rien comprendre ?! C'est un probleme de connection a la BDD ca non ?

Voila ma ligne 187 (et celles qui suivent):

Code PHP :
<?php 
mysql_query
("INSERT INTO membres(id,login,pass,email,url,jour,mois,annees,date,prenom,nom,departement,race,conditions ) VALUES ('$id++','$login','$pass','$email','$url','$jour','$mois','$annees','$date','$prenom','$nom','$departement','$race','$conditions')");

Enfin bon... pourtant mon fichier de connection a la BDD est correct oO
Merci de m'éclairer de vos lumieres Big Grin


RE: probleme mysql - PetitMonstre - 21-12-2006

éssai sa :
Code PHP :
<?php 
mysql_query
("INSERT INTO membres
VALUES('',
'"
.$_POST['id']."',
'"
.$_POST['login']."',
'"
.$_POST['pass']."',
'"
.$_POST['url']."',
'"
.$_POST['jour']."',
'"
.$_POST['mois']."',
'"
.$_POST['annees']."',
'"
.$_POST['date']."',
'"
.$_POST['prenom']."',
'"
.$_POST['nom']."',
'"
.$_POST['departement']."',
'"
.$_POST['race']."',
'"
.$_POST['conditions']."')")or die(mysql_error());
//moi je met pas l'id mais bon, puisque tu l'a mit...


<<Injection SQL (s Xenos)>>


RE: probleme mysql - Aramiil - 21-12-2006

Heu, qu'appelles-tu "mon fichier de connexion à la BDD" ?

C'est effectivement un problème de connexion, mais là tu n'en spécifie pas. Si tu fais simplement un fichier avec les variables, c'est sûr que ça n'en créé pas...

Pour rappelle, la fonction mysql_query() prends deux paramètre, le premier étant la requête à executer et le second, optionnel, un lien valide vers une base de donnée, obtenu par un appel à mysql_connect(). Si ce lien n'est pas fourni, la fonction mysql_query() tente d'ouvrir un lien ou utilise le dernier ouvert.

Dans ton problème, elle tente d'ouvrir un lien vu qu'apparement il n'y en a pas d'ouverts. Mais comme elle n'a pas les paramètres pour ça, elle ne peux pas.

Corrige donc en utilisant mysql_connect() et mysql_select_db() pour créer une ressource de lien à la base de données valide, puis passe-la à ta fonction mysql_query() ;-)


RE: probleme mysql - NicoMSEvent - 22-12-2006

ce qui pourrait aussi se passer :
tu ouvre une autre base de données entre le début de ton script php, et ton insertion en db (par exemple pour des stats : j'ai eu le probleme crawltrack).
J'ai résolu le probleme en fermant la db en cours, et en ouvrant un nouveau lien vers ma db.
Si ça ne marche pas, tiens nous au courant Smile


RE: probleme mysql - gtsoul - 22-12-2006

le mysql_query est étrange car il ne comporte pas d'argument renseignant la base de données.

http://fr3.php.net/function.mysql-query

Cette syntaxe est dangeureuse, certes l'argument est optionnel mais il est indispensable.
essaye
mysql_query($sql, $conenction);


RE: probleme mysql - joshua - 22-12-2006

le mieux encore, c'est d'utiliser un mysqli_query qui est moins permissif: l'id est obligatoire.....


RE: probleme mysql - NicoMSEvent - 22-12-2006

Merci gtsoul, ça m'a permis de nettoyer un peu le code php de mon site, et de corriger un bug Wink

Je m'adresse aux novices en php ou ceux qui n'ont pas de bons réflexes :

L'avantage de créer un set de fonction pour accéder a la DB, c'est que je n'ai du changer qu'une ligne de la fonction Request_DB("SELECT...") au lieu de devoir reparcourir tout mon site a la recherche de lignes mysql_query(...);

N'oubliez pas de penser en terme de modularité lorsque vous programmez!


RE: probleme mysql - gtsoul - 22-12-2006

gt content !! ^_^


RE: probleme mysql - zneman - 22-12-2006

xD Gt ^^

Voila mon code entier:

Code PHP :
<?php
require "sql.php";
$email = $_POST['email'];
$prenom = $_POST['prenom'];
$nom = $_POST['nom'];
$jour = $_POST['jour'];
$mois = $_POST['mois'];
$annees = $_POST['annees'];
$login = $_POST['login'];
$pass = $_POST['pass'];
$url = $_POST['url'];
$departement = $_POST['departement'];
$newsletters = $_POST['newsletters'];
$id = 0;
$date = date("d/m/Y");
$race = $_POST['race'];
$conditions = $_POST['conditions'];

if ((
$login=="")||($pass=="")||($email=="")||($race=="")||($conditions==""))
{
if(
$login=="") print ("<p class=\"erreur\">Le champ du pseudo n'est pas remplis</p><br />\n");
if(
$pass=="") print ("<p class=\"erreur\">Le champ du mot de passe n'est pas remplis</p><br />\n");
if(
$email=="") print ("<p class=\"erreur\">Le champ de l'adresse email n'est pas remplis</p><br />\n");
if(
$race=="") print ("<p class=\"erreur\">Vous n'avez pas choisi votre race</p><br />\n");
if(
$conditions=="") print ("<p class=\"erreur\">Il faut accepter les conditions afin de pouvoir s'inscrire !</p><br />\n");
}
else
{
echo
"c parti";
mysql_query("INSERT INTO membres(id,login,pass,email,url,jour,mois,annees,date,prenom,nom,departement,race,conditions ) VALUES ('$id++','$login','$pass','$email','$url','$jour','$mois','$annees','$date','$prenom','$nom','$departement','$race','$conditions')");
mysql_close();
}
?>

Y'a t'il beaucoup de choses a revoir la dedans ? Smile


RE: probleme mysql - Aramiil - 22-12-2006

(1) ne jamais récupérer sans vérification des variables provenent de l'extieur. Type tes variables au maximum (intval()), utilise des expression régulières, modifie les caractères spéciaux (htmlentities() avec le second paramètre à ENT_QUOTES), etc...

(2) tu n'utilises pas de variable pour nommer ton lien à la bdd, et donc tu n'en spécifie pas, et c'est une mauvaise chose ;-)