connexion bdd avec require

Eléphanteau du PHP | 16 Messages

25 oct. 2007, 11:36

bonjour à tous et toutes

je rencontre un p'tit soucis pour me connecter à la base mysql en mettant les valeurs de connexion dans un fichier , lui meme dans un répertoire different protégé par un .htacces

lorsque je mets en "clair" en debut de fichier par de probleme , ca fonctionne ,

mais lorsque je fais appel au fichier avec require dans l autre repertoire , ben la les valeurs de connexion ne sont plus valides ( reconnu )
mysql_connect($host,$user,$passwd); 
renvoit une erreur de connexion comme quoi il reconnait pas le pass , la bdd ......

je fais comme cela ;
$app_path = '/';
$prg_file_path = __FILE__;
$prg_path = dirname(__FILE__).$app_path;
require $prg_path.'/secret/connect.php';
conteneur de connect.php
<?
//------------- CONNECTION A LA BASE -------------------
global $bdd = "la bassexx" ;
global $user = "xFF" ;
global $passwd = "FFFx" ;
global $host = "localhost" ;


?>
j'ai testé avec global et sans global ....

ben ca marche pas ????

comment faire pour récupérer les valeurs qui sont dans le fichier connect.php depuis l'ensemble du programme avec un require ???

j'ai exploré l'idée des sessions , mais j'ai pas trouvé d'exemple ....

merci de votre aide

FL

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

25 oct. 2007, 12:20

bizare... le htaccess ne devrait pas intervenir dans l'ouverture d'un fichier via le système de fichier...
et si tu n'as pas d'erreur sur le require(), c'est que le fichier a été correctement intégré... fait un echo de $host par exemple juste après le require pour voir s'il t'affiche qqch...

Ca ne vient probablement pas de là, mais tu devrais revoir le chemin utilisé pour l'inclusion, il y a au moins deux "/" consécutif tel qu'il est présenté ici.

Et à priori le mot clé global ne s'utilise pas ainsi, mais à l'intérieur d'une fonction pour spécifier que la variable - théoriquement locale - correspond en fait à la variable éponyme présente dans le reste du code.

Les sessions n'ont rien à voir avec le problème d'inclusion et la récupération des variables à l'intérieur de ton script
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 443 Messages

25 oct. 2007, 12:38

Salut,

Tu peux filer le code complet de la page qui fait le require
(au moins du début jusqu'au mysql_connect) ?


Tracker.

Eléphanteau du PHP | 16 Messages

25 oct. 2007, 14:24

Salut,

Tu peux filer le code complet de la page qui fait le require
(au moins du début jusqu'au mysql_connect) ?


Tracker.
ben voila , c'est du simple :-))

Code : Tout sélectionner

<H3>Traitement de votre demande</H3> <hr /> <?php ////23.10.2007 17:43 $app_path = '/'; $prg_file_path = __FILE__; $prg_path = dirname(__FILE__).$app_path; require $prg_path.'/secret/connect.php'; ///require("secret/connect.php"); $var_adresseurl = strip_tags($_POST['url']); $motss = strip_tags($_POST['mots']); if (empty($var_adresseurl)) { printf( "Url Vide ! ..." ) ; return; } if ($var_adresseurl == "http://") { printf( "Url Vide ! ..." ) ; return; } if (empty($motss)) { printf( "Mots Vide ! ..." ) ; return; } $originedocument = $_SERVER['DOCUMENT_ROOT'] ; $origineserveur = $_SERVER['DOCUMENT_ROOT']; $adresse_ip_user = strip_tags($_SERVER['REMOTE_ADDR']) ; $adresse_ip_serveur = $_SERVER['SERVER_ADDR']; $nom_serveur = $_SERVER['SERVER_NAME'] ; $nom_nagigateur = $_SERVER['HTTP_USER_AGENT']; $langage_navigateur = $_SERVER['HTTP_ACCEPT_LANGUAGE'] ; mysql_connect($host,$user,$passwd); mysql_select_db($bdd) or die("erreur de connexion a la base de donnees"); $requete=mysql_query("SELECT adresseurl FROM adresse WHERE adresseurl='$var_adresseurl'"); $num_rows = mysql_num_rows($requete); if ($num_rows > 0) { echo "L Adresse du site est DEJA dans la base "; exit; } else { mysql_query("BEGIN"); mysql_query("INSERT INTO adresse (adresseurl) VALUES ( '$var_adresseurl' )") ; mysql_query("COMMIT"); printf("Ok"); mysql_error() . "\n"; }
Modifié en dernier par FABL le 25 oct. 2007, 14:33, modifié 1 fois.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

25 oct. 2007, 14:31

Modération :
FABL, afin d'améliorer la lisibilité de ton message,
merci d'éditer et d'utiliser les balises [code] ou [php] (selon le langage utilisé).
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 16 Messages

25 oct. 2007, 14:32

bizare... le htaccess ne devrait pas intervenir dans l'ouverture d'un fichier via le système de fichier...
et si tu n'as pas d'erreur sur le require(), c'est que le fichier a été correctement intégré... fait un echo de $host par exemple juste après le require pour voir s'il t'affiche qqch...
ben justement , j'ai pas d erreur de l'incusion


mais une erreur lors de l'appel des variables ....

Notice: Undefined variable: host in C:\Program Files\EasyPHP 2.0b1\www\my_annu_1000mots\action_ajouter.php on line 49

a +++++

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

25 oct. 2007, 14:36

Et si tu vires le htaccess, ça fonctionne mieux ou pas ? histoire de savoir dans quelle direction il faut chercher :)
Le require("secret/connect.php") que tu as passé en commentaire fonctionnait ou pas plus ?

(pis les balises [ php ] pour la coloration syntaxique eut été plus judicieux ;))
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 16 Messages

25 oct. 2007, 14:46

Et si tu vires le htaccess, ça fonctionne mieux ou pas ? histoire de savoir dans quelle direction il faut chercher :)
Le require("secret/connect.php") que tu as passé en commentaire fonctionnait ou pas plus ?

(pis les balises [ php ] pour la coloration syntaxique eut été plus judicieux ;))
Re ,

le aaa.htaccess est déactivé par les aaa ( pour les tests )

non avant le require("secret/connect.php") ne fonctionnait pas non plus , c'est pour cela que j'ai fait le code suivant
$app_path = '/';
$prg_file_path = __FILE__;
$prg_path = dirname(__FILE__).$app_path;

require $prg_path.'/secret/connect.php';
est inspiré de doclear


PS j'ai pas précisé , je suis en local avec easyphp version 2.0.0.0

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

25 oct. 2007, 14:55

Hum... et si dans ton fichier inclu tu utilises "<?php" au lieu des shorts open tags "<?" ça marcherait pas mieux (ceux-ci ayant été désactivés par défaut dans easyphp2.0) ?

Sinon... bah à vérifier le contenu de $prg_path, et tester avec un include voir si ça change quelque chose :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 16 Messages

25 oct. 2007, 15:03

Hum... et si dans ton fichier inclu tu utilises "<?php" au lieu des shorts open tags "<?" ça marcherait pas mieux (ceux-ci ayant été désactivés par défaut dans easyphp2.0) ?
ben , voila ca fonctionne !!!!!!!!! MDR pourtant je le sais que le <? ca marche mal :oops:

ce qui est etonnant c'est que ca fonctionne ailleur :?:

merci de votre aide

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

25 oct. 2007, 16:36

Modération :
FABL, si ta question est résolue, pense à ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.
Tu peux réaliser cette opération en cliquant sur le bouton Image en haut à gauche de ce sujet.
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 2 Messages

28 oct. 2007, 17:22

Hum... et si dans ton fichier inclu tu utilises "<?php" au lieu des shorts open tags "<?" ça marcherait pas mieux (ceux-ci ayant été désactivés par défaut dans easyphp2.0) ?
ben , voila ca fonctionne !!!!!!!!! MDR pourtant je le sais que le <? ca marche mal :oops:

ce qui est etonnant c'est que ca fonctionne ailleur :?:

merci de votre aide
Tu aurais remarquer ce probleme si tu avait regarder le code source de ta page html genere, avant de chercher dans ton script php :roll: :wink: