Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/12/2010, 17h05   #1
Membre à l'essai
 
Clémentine
Inscription : juin 2006
Messages : 128
Détails du profil
Informations personnelles :
Nom : Clémentine
Âge : 24

Informations forums :
Inscription : juin 2006
Messages : 128
Points : 21
Points : 21
Par défaut données stockées dans un fichier

Bonjour,

Je développe en Php 5 une application. Cette application appelle un programme écrit en fortran.
Ce programme fortran lit des fichiers .txt et il utilise ensuite le contenu en tant que variable lors de son exécution.

Or le contenu de ces fichiers est administrable par certains utilisateurs (ils peuvent modifier le contenu des fichiers, via des scripts php ,et donc des futures variables de l'exécutable fortran).

Ma question est comment gérer cela ?
Car si le fichier est modifié pendant que l’exécutable veut y avoir accès cela peut poser problème

De plus je ne peux pas utiliser de base de données car l'exécutable ne peut pas être modifié.

J'ai bien peur que cela ne soit pas possible.
Mandarine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2010, 17h12   #2
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 817
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 817
Points : 3 442
Points : 3 442
As-tu moyen de savoir quand le programme Fortran est en cours d'exécution ?
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2010, 10h24   #3
Membre à l'essai
 
Clémentine
Inscription : juin 2006
Messages : 128
Détails du profil
Informations personnelles :
Nom : Clémentine
Âge : 24

Informations forums :
Inscription : juin 2006
Messages : 128
Points : 21
Points : 21
Oui car c'est moi qui le lance depuis php (fonction exec)
Mandarine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2010, 13h12   #4
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 817
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 817
Points : 3 442
Points : 3 442
OK dans ce cas pour éviter les accès concurrents tu peux poser un verrou :

Code :
1
2
3
4
5
6
7
if ( file_exists('verrou_fortran') ) { // Verrou posé ?
    echo 'Le prog Fortran est déjà occupé, réessayer plus tard...' ;
} else {
    touch('verrou_fortran') ; // Création du verrou
    exec('prog_fortran') ;
    unlink('verrou_fortran') ; // Suppression du verrou
}
... ainsi seul 1 script PHP à la fois pourra exécuter le programme Fortran.
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2010, 12h06   #5
Membre à l'essai
 
Clémentine
Inscription : juin 2006
Messages : 128
Détails du profil
Informations personnelles :
Nom : Clémentine
Âge : 24

Informations forums :
Inscription : juin 2006
Messages : 128
Points : 21
Points : 21
Bonjour,

Je ne connaissais pas les fonctions touch et unlink.

Ca semble simple à mettre en place.

Avec un petit 'while' pour dire au php d'attendre que le verrou soit enlevé pour lancer le exe fortran automatiquement car je veux que l'utilisateur doive attendre que le fortran soit libre (et non pas lui afficher un message).

Est-ce efficace à grande échelle (site accueillant plusieurs milliers de visiteurs par jours) ou est-ce une solution de "bricolage" ?
Mandarine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2010, 12h49   #6
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 817
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 817
Points : 3 442
Points : 3 442
Citation:
Je ne connaissais pas les fonctions touch et unlink.
Cela ne fait que créer/supprimer un fichier-drapeau.

Citation:
Avec un petit 'while' pour dire au php d'attendre que le verrou soit enlevé pour lancer le exe fortran automatiquement car je veux que l'utilisateur doive attendre que le fortran soit libre (et non pas lui afficher un message).
Attention au temps d'exécution max du script PHP, par défaut 30s.

Citation:
Est-ce efficace à grande échelle (site accueillant plusieurs milliers de visiteurs par jours) ou est-ce une solution de "bricolage" ?
Faut voir si le prog Fortran s'exécute en 1-2s ou 1-2mn.
En tout cas c'est probablement la soluce la plus simple à mettre ne place, donc tu ne perds pas grand chose à tester.
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 10h04   #7
Membre à l'essai
 
Clémentine
Inscription : juin 2006
Messages : 128
Détails du profil
Informations personnelles :
Nom : Clémentine
Âge : 24

Informations forums :
Inscription : juin 2006
Messages : 128
Points : 21
Points : 21
Désolé de ne répondre que maintenant mais j'étais en déplacement sans Internet.

Super je vais utiliser ce système de fichier.

Dernière question:
J'ai peur que le programme mette 20-30sec à s'éxecuter...
Comment récupérer la main en php après ?
Et si possible garder la même session et les mêmes variables de sessions ?
Mandarine est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h48.


 
 
 
 
Partenaires

Hébergement Web