Probleme fopen + plantage... au secours !!!

Résolu
xen16 Messages postés 20 Date d'inscription jeudi 9 juin 2005 Statut Membre Dernière intervention 24 mars 2006 - 24 mars 2006 à 11:50
xen16 Messages postés 20 Date d'inscription jeudi 9 juin 2005 Statut Membre Dernière intervention 24 mars 2006 - 24 mars 2006 à 14:32
Bonjour à tous,

J'ai un souci sur une ouverture de fichier sur serveur, voici mon probleme :
Je veux stocker les caractéristiques de connexion à ma base mysql dans un fichier .ini
Lorsque la page d'accueil s'ouvre elle fait en tout premier lieu appel à ce fichier
Le fichier est bien trouvé par la fonction file_exists mais refuse de s'ouvrir avec fopen et fait planter l'appli, que ce soit en local ou sur le serveur c'est pareil, voici l'erreur que j'ai

Warning: fopen(C:\Program Files\EasyPHP1-7\param_config\config.ini): failed to open stream: Permission denied in c:\program files\easyphp1-7\www\espace_admin\admin\inifiles.php on line 38

Après des recherches j'ai essayé de changer le chmod à 777, même problème.
Chez l'hébergeur j'ai essayé de mettre ce fichier dans un répertoire avec tous les droits en amont du dossier www, même souci.

Je ne sais vraiment plus quoi faire...

----------------------------------------------------------------------------------------------------------------------------------
Voici le code qui doit ouvrir le fichier :

include
'inifiles.php';

$IniFile = new
TIniFile();
$IniFile->Init();
echo( "essai ouverture" ) ;
$IniFile->LoadFromFile('C:\Program Files\EasyPHP1-7\param_config\config.ini');

Fonction LoadFromFile dans inifiles.php :



function LoadFromFile($FileName) {
$this->Ini->Clear();

if(file_exists($FileName)) {
echo "fichier trouve" ;

$fichier = fopen($FileName, 'r+');
if($fichier) {
fseek($fichier, 0);
while (!feof($fichier)) {
$Line = $this ->fgets_line($fichier); if ((substr($Line,0,1)! ';' ) && (<gras>$Line!</gras> '')) {
$this ->Ini->Add($Line);
}
fclose($fichier);
}
}
else
echo "Impossible d'ouvrir le fichier".$FileName.".";
}
else
echo "Impossible de trouver le fichier".$FileName.".";

}

Contenu du fichier de configuration

[BDD]
serveurDB =localhost
portDB=3306
nameDB=test
userDB=root
passwordDB=test
[PARAM]
phpMyAdmin=http://---/phpMyadmin
ftp=ftp://---/www/up/
[mailto:mailAdmin=---@---.com mailAdmin=---@---.com]
repTravailAdmin=/www/espace
repFichiers=/---/upload
adrSiteAdmin=http://---/espace
adrFichiers=http://---/up
redirectDeco=http://www.---

---------------------------------------------------------------------------------------------------------------------------------

Aidez moi je vous en supplie !!!

Merci d'avance...

-- xen16 --

3 réponses

xen16 Messages postés 20 Date d'inscription jeudi 9 juin 2005 Statut Membre Dernière intervention 24 mars 2006
24 mars 2006 à 14:32
bon ben apparemment mon fichier devait être corrompu, j'ai bidouillé la lecture du fichier remarche, maintenant je vais m'attaquer à son écriture

pour ceux qui la même erreur vérifier la présence de lignes vides à la fin de la dernière ligne dans le fichier ini... je les ai supprimées, mais j'ai beaucoup d'autres choses dons c'est peut-être pas ça... lol

merci quand même

-- xen16 --
3
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
24 mars 2006 à 12:21
Hello,

tu ne pourras pas accéder de cette manière à un fichier HORS de ton espace web...je ne pige pas trop ce que tu fais en fait.
Autre chose, tu comptes autoriser la modification d'un fichier de config de ton serveur web, sur ton site web, hébergé par ton serveur web...?


Ahem...
Bref :
fopen ('c:\\Program Files\\...', 'r+');


Si ça plante, vérifié ton open_basedir, aussi.
0
xen16 Messages postés 20 Date d'inscription jeudi 9 juin 2005 Statut Membre Dernière intervention 24 mars 2006
24 mars 2006 à 13:55
Merci de me répondre,

Dans mon appli j'utilise une base de données, donc à l'ouverture de l'appli je me connecte à la base. Pour une meilleure portabilité de l'appli je veux mettre tous les identifiants de la base de données (serveur, nom base, password, user...) dans un fichier de configuration .ini. A l'ouverture de l'appli je dois donc lire les infos de la base dans ce fichier .ini

J'ai un peu avancé depuis tout à l'heure en testant l'appli en local avec easyPHP maintenant j'ai cette erreur :

Warning: feof(): 5 is not a valid stream resource in c:\program files\easyphp1-7\www\espace_admin\admin\inifiles.php on line 41

et ça boucle jusqu'à ce que les 30 secondes d'exécution se soit déroulées. Mon fichier ini est le même que précédemment... je ne comprends pas pourquoi il n'arrive pas à lire les données

En la testant chez mon hébergeur sur le serveur rien ne marche :

Il ne m'affiche rien du tout, la page essaye de se charger mais n'y parvient pas... est ce que les hébergeurs empêchent ce genre de manipulation sur les fichiers (je suis chez OVH), est ce qu'il y a une variable à regarder dans le php_info ?
De plus hier durant les premiers tests la lecture sur le fichier marchait... le fichier ini est-il corrompu ??? J'ai beau le remplacer par un autre rien n'y fait

Pour répondre à ta question, l'intérêt de le mettre dans un dossier en amont de www c'est de pouvoir mettre des droits 777 sur le dossier en question sans les mettre sur www... enfin je crois lol. L'accès au fichier ne pose apparemment pas de problème plusque le file_exits fonctionne avec un chemin du type /home/user/mon_dossier/config.ini . C'est l'ouverture avec fopen qui plante.

open_basedir est à "no value"
0
Rejoignez-nous