IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Problème avec fopen


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 32
    Points : 26
    Points
    26
    Par défaut Problème avec fopen
    Bonjour,
    j'ai écris une petite classe contenant 3 variables. (deux qui seront écrites dans un fichier et la dernière qui contient l'adresse du fichier à lire/écrire)

    j'ai fait une fonction pour lire le fichier et une pr l'écriture du fichier.

    Je ne comprend pas le fait que j'arrive systématiquement dans le else du fopen. (j'ai tenté de ne pas vérifier si fopen avait une erreur mais ca marche pas non plus).

    Pourriez-vous m'aider???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    //includes/databasemanagement.php
    define("FILE_NAME","sql/config.ini");
    	class DatabaseManager{
    		var $database_name;
    		var $fn;
    		var $dsn;
     
    		function DatabaseManager(){
    			$database_name = "";
    			$dsn = "";
    			$fn = FILE_NAME;
    		}
     
    		function readConfigFile(){
    			if($fd=fopen($fn,"r")){
    				$config = parse_ini_file(FILE_NAME);
    				if(!isset($config["db_name"]) ||
    					!isset($config["db_host_dsn"])){
    					fclose($fd);
    					header("Location: config.php?error=config_not_formated");
    					exit;
    				}
    				$this->database_name = $config["db_name"];
    				$this->dsn = $config["db_host_dsn"];
    			}else{
    				header("Location: config.php?error=config_not_found");
    				exit;
    			}
    		}
     
    		function writeConfigFile(){
    			if($fd=fopen($fn,"w+")){
    				$dbnconf = 'db_name = '.$this->database_name.'\n';
    				$dsnconf = 'db_host_dsn = '.$this->dsn.'\n';
    				if(!fwrite($fd,$dbnconf)){
    					fclose($fd);
    					header("Location: config.php?error=config_not_writable&cause=1");
    					exit;
    				}
    				if(!fwrite($fd,$dbnconf)){
    					fclose($fd);
    					header("Location: config.php?error=config_not_writable&cause=2");
    					exit;
    				}
    			}else{
    				header("Location: config.php?error=config_not_writable&cause=3");
    				exit;
    			}
    		}
    	}
    j'emploie un simple fichier test pour le moment dont voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    //test.php
    include 'includes/databasemanager.php';
    $cm = new DatabaseManager();
     
    $cm->database_name = "table";
    $cm->dsn = "localhost";
     
    $cm->writeConfigFile();
     
    $cm->readConfigFile();
     
    echo 'db = '.$cm->database_name.'<br/>dsn = '.$cm->dsn.' fn = '.$cm->fn.'</body></html>';
    ps: j'ai mis des droits complets dans mon répertoire d'install de mes scripts.
    dans le cas où je fais un fopen et un fwrite dans mon script test, ca fonctionne parfaitement. Est-ce que c'est celà le problème???

  2. #2
    Membre habitué
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mars 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 251
    Points : 174
    Points
    174
    Par défaut
    Euh, ce ne marcherait pas mieux avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if($fd=fopen($this->fn,"r")){
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if($fd=fopen($fn,"r")){
    ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 32
    Points : 26
    Points
    26
    Par défaut
    ben en fait, non.

    par contre, j'ai décidé de ne plus employé la variable fn mais plutot directement la constante. Et ca fonctionne.

    Merci qd meme pour ton aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème avec fopen
    Par Vincent157 dans le forum Visual C++
    Réponses: 1
    Dernier message: 28/06/2007, 15h14
  2. Problème avec fopen
    Par morgan47 dans le forum Langage
    Réponses: 5
    Dernier message: 21/12/2006, 23h47
  3. problème avec fopen
    Par eoberlin dans le forum C++
    Réponses: 10
    Dernier message: 26/08/2006, 21h26
  4. [FTP] Problème avec fopen sur URL
    Par Biboune2008 dans le forum Langage
    Réponses: 14
    Dernier message: 22/06/2006, 18h00
  5. Problème avec fopen
    Par Binouce dans le forum C
    Réponses: 10
    Dernier message: 15/01/2006, 14h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo