DarkCid
Messages postés195Date d'inscriptionmardi 22 février 2005StatutMembreDernière intervention26 octobre 2009
-
29 mai 2006 à 09:19
MrdJack
Messages postés146Date d'inscriptionjeudi 22 avril 2004StatutMembreDernière intervention 8 mars 2008
-
30 mai 2006 à 16:36
Yaoh !
J'essaye de faire sur une page une liste dont le contenu vient d'une bdd mysql. Moi, feignasse de nature, je me suis dis que j'allais pas répéter sur chaque page la connexion, alors hop, g pensé à un include. G mis la connexion dans un fichier .php à part :
<?
$dbhost = "localhost";
$user = "root";
$password = "";
$usebdd = "signanet";
$connexion = mysql_connect($dbhost,$user,$password);
if (!$connexion)
{
echo "Impossible d'effectuer la connexion";
}
$db = mysql_select_db($usebdd, $connexion);
if (!$db)
{
echo "Impossible de sélectionner cette base de données";
}
?>
Ensuite, je l'appelle (je raccourcis le code, ma liste en elle-même marche, donc je vais pas allourdir ce message) :
Notice: Undefined variable: connexion in c:\program files\easyphp1-8\www\tests\listes.php on line 9
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in c:\program files\easyphp1-8\www\tests\listes.php on line 9
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\tests\listes.php on line 10
Pour info, g déjà essayer de remplacer le include par un require, nada. Enfin, g remplacer le include par carrément tout le code de connexion.php, et là sa marche.
Pitié ! Ne me dites pas que je devrais oublié le include et remettre tout le code de connexion.php !!!!!!!!!
DarkCid
Messages postés195Date d'inscriptionmardi 22 février 2005StatutMembreDernière intervention26 octobre 20091 29 mai 2006 à 10:19
dsl mais c'est pire qu'avant, maintenant il m'affiche carrément une partie du code php sans l'interpréter, comme si c'était du texte tout simple (et allez pas me dire qu'il fo ke je vérifie l'extension, toutes mes feuilles son en .php)
steb359842
Messages postés69Date d'inscriptionsamedi 5 juin 2004StatutMembreDernière intervention24 janvier 2008 29 mai 2006 à 10:42
il faut effectivement utiliser des chemin relatifs soit ../connexion.php par ex...
et pour que ton code soit interprété met les balises d'ouverture et de fermeture du php dans la page inclue.
Bonne chance...
*°*°*°*°*°*°*°*°*°*°*°*
Marmotte Joyeuse
Vous n’avez pas trouvé la réponse que vous recherchez ?
coockiesch
Messages postés2268Date d'inscriptionmercredi 27 novembre 2002StatutMembreDernière intervention13 septembre 20134 29 mai 2006 à 10:43
Salut!
Que contient connexion.php?
@++
R@f
www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
DarkCid
Messages postés195Date d'inscriptionmardi 22 février 2005StatutMembreDernière intervention26 octobre 20091 29 mai 2006 à 11:59
g mis le contenu de connexion.php dans le premier message, c'est le premier code.
Le chemin relatif marche mais il y a un truc que je pige pas trop :
je lance mon site depuis la page d'accueil de EasyPHP. Il execute bien mes requêtes dans des pages où g mis include("./connexion.php");
connexion.php est dans le même repertoire. Mais si pour là page que g mis plus haut, elle aussi dans le meme repertoire, je met le même include et que je la lance en "freestyle" (en clair, juste ouvrir comme ça dans un browser), là sa marche plus alors que si les deux pages ne sont pas o même endroit, sa marche avec le chemin relatif.
Mystère non
sidf
Messages postés1216Date d'inscriptionmardi 20 décembre 2005StatutMembreDernière intervention18 octobre 20125 29 mai 2006 à 13:43
moi je mettrais ça dans connexion.php
<?php
$dbhost = "localhost";
$user = "root";
$password = "";
$usebdd = "signanet";
?>
et ça dans ta 2eme page
<?php
include("./connexion.php");
$connexion = mysql_connect($dbhost,$user,$password);
if (!$connexion)
{ echo "Impossible d'effectuer la connexion"; }
$db = mysql_select_db($usebdd, $connexion);
if (!$db)
{echo "Impossible de sélectionner cette base de données";}
...
?>
return "Impossible de sélectionner cette base de données";
}
valid_requete($requete); // fonction qui va bannir
certainnes requetes contenant des mots clés potentiellement dangereux
et qui ne sont pas utilisés dans le site. c'est un plus qui peut etre
utile...
$return = mysql_query($requete,$connexion);
et surtout fermer la connexion apres chaque requete
mysql_close($connexion);
}
et dans le code, on fait $result = requeteSQL("SELECT * FROM categorie");
le truc de bien est deja le fait de fermer la connexion à chaque fois, car c'est mieux pour la rapidité du serveur...
sinon à chaque fois que le serveur php execute du code sasn utiliser mysql, le serveur sql est bloqué
la deuxieme chose de bien c'est que les mots de passe et login sont
effacés apres l'appel de la fonction. il suffit de placer cette page
contenant les fonctions importantes dans un repertoire du ftp qui est
protegé(depuis internet ou des autres utilisateur du ftp(ca peut
arriver qu'il y ai un co-webmaster mais qui ne doit surtout pas
connaitre les infos importantes de la base de donnée.)
c'est en gros les premiers pas vers une classe de gestion de mysql...
coockiesch
Messages postés2268Date d'inscriptionmercredi 27 novembre 2002StatutMembreDernière intervention13 septembre 20134 29 mai 2006 à 14:44
Salut!
" le truc de bien est deja le fait de fermer la connexion à chaque fois, car c'est mieux pour la rapidité du serveur..." >> Heu, ca dépend! Suivant combien tu fais de requêtes dans ta page (une page arrive vite à 5 requêtes) c'est pas super malin non plus de connecter et déco à chaque fois...
@++
R@f
www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
DarkCid
Messages postés195Date d'inscriptionmardi 22 février 2005StatutMembreDernière intervention26 octobre 20091 30 mai 2006 à 12:34
MrdJack, merci pour ton code très intéressant, mais valid_requete n'est pas reconnu.
De plus, si j'utilise ta syntaxe, je ne peux pas utiliser les fonctions mysql comme mysql_num_rows ou mysql_result.
MrdJack
Messages postés146Date d'inscriptionjeudi 22 avril 2004StatutMembreDernière intervention 8 mars 20082 30 mai 2006 à 16:36
valid_requete est une fonction maison, je l'ai codée moi meme
afin de vérifier le contenu des requete sql avant de les envoyer au
serveur sql. c'est un filtrage par expression reguliere que je metterai
peut-etre en source sur phpcs qui sait.
sinon je viens de voir une grosse boullette sur mon post... j'ai fait ca à la va vite et j'ai pas revérifié.
voici donc ce que j'utilise réellement :
function requete_mysql($requete) {
$sql_hote = "localhost";
$sql_user = "root";
$sql_pass = "02440244";
$sql_base = "testdb";
if(valid_requete($requete)) {
$connexion=mysql_connect($sql_hote,$sql_user,$sql_pass) or write_log("connect to $sql_hote $sql_user@$sql_pass\r\n");
if(!mysql_error()) {
$db=mysql_select_db($sql_base) or write_log("select_db : $sql_base\r\n");
if(!mysql_error()) {
$result=mysql_query($requete) or write_log("requete : $requete\r\n");
j'ai intégré un fichier log enregistrant les
erreurs dedans. la partie en rouge est superflu, c'est une fonction
perso qui vérifie le contenu de la requete avec des expressions
regulieres recherchant des mots clés qui ne devrait pas etre utilisés
dasn les requetes du site. c'est pas le plus important. donc je n'ai
pas mis le code de cette fonction.