Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2758 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Acceder a un fichier depuis n'importe qu'elle page d'un site ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Acceder a un fichier depuis n'importe qu'elle page d'un site ?

n°1758187
stef_dober​mann
Personne n'est parfait ...
Posté le 10-07-2008 à 23:01:41  profilanswer
 

Bonsoir,
 
J'utilise une classe PHP pour me connecter à ma base de données ( centralisation de l'exécution des requêtes, classique ) j'aimerais sauvegarder dans un fichier texte les requêtes d'insertion, de modification et de suppression.
Seul problème, dans mon projet j'appelle ma classe dans différent endroit comment faire pour écrire un fichier dans un répertoire sans devoir modifier tous mes scripts (environ 30  :sweat: )  :??:  :??:  
 
voici le code qui exécute les requêtes :

Code :
  1. // PUBLIC : Envoi d'une requete a la DB
  2. function send_query($query) {
  3.  if ( !$this->connect_id ) $this->connect($this->host,$this->user,$this->pass,$this->base);
  4.  if ( $this->result_id = mysql_query($query, $this->connect_id) ) {
  5.   $this->query = trim($query);
  6.   $this->error = '';
  7.   if ( preg_match('`^(insert|update|delete)`i',$this->query) ) $this->log_query();
  8.   return $this->result_id;
  9.  } else {
  10.   $this->error = mysql_error();
  11.   return FALSE;
  12.  }
  13. }


 
Voici la fonction dans la meme classe qui doit enregistrer les requetes :

Code :
  1. function log_query() {
  2.  $fic = "../../backup/".date("Ymd" ).".sql";
  3.  if ($fp = fopen($fic , "a" ) ) {
  4.   fwrite($fp , $this->query."\n" );
  5.   fclose($fp);
  6.  }
  7. }


 
ma classe mysql ce trouve dans un répertoire type : "/includes/class/"
et le fichier de sauvegarde dans le répertoire "/backup/fichier.sql"
 
en faite le problème ce situe ici :

Code :
  1. $fic = "../../backup/".date("Ymd" ).".sql";


 
dés fois j'accède au log par '../../backup/' et dés fois c'est en faisant '../backup/' comment faire pour avoir une adresse fixe ?
 
Cela ne doit pas être très claire, mais n'hésitais pas à me poser des questions, j'y répondrais du mieux que je peux.


---------------
Tout à commencé par un rêve...
mood
Publicité
Posté le 10-07-2008 à 23:01:41  profilanswer
 

n°1758647
stef_dober​mann
Personne n'est parfait ...
Posté le 11-07-2008 à 18:59:40  profilanswer
 

UP, en gros je voudrais faire un genre de log binaire mais en plus simple.


---------------
Tout à commencé par un rêve...
n°1758757
stef_dober​mann
Personne n'est parfait ...
Posté le 12-07-2008 à 11:30:38  profilanswer
 

UP, on va ce concentrer juste sur le problème  de base:
Comment atteindre un fichier sur un serveur web, quelque soit l'emplacement du script qui est exécuté ?


Message édité par stef_dobermann le 12-07-2008 à 11:31:15

---------------
Tout à commencé par un rêve...
n°1758760
bul3
Posté le 12-07-2008 à 12:16:10  profilanswer
 


bonjour,
 
euh... donne le chemin en absolu ?
'http://www...../chemin.../fichier'
( ou '/chemins.../fichier' )
non ?  enfin , si jai compris la question...
 
Cordialement.


---------------
[mon site] [m'écrire]
n°1758833
stef_dober​mann
Personne n'est parfait ...
Posté le 12-07-2008 à 19:49:08  profilanswer
 

Comment atteindre un fichier sur un serveur web, quelque soit l'emplacement du script qui est exécuté ?
 
J'ai écris un "logiciel" pour gérer un Service Après Vente. Celui-ci utilise une BDD MySQL pour stocker les informations (rien de bien compliqué). Le logiciel est écrit en utilisant les classe de PHP4 (je passerais bientôt en PHP5) et j'ai centralisé l'accès à la BDD en utilisant une classe.
Dans mon arborescence j'ai créé un répertoire qui se nomme "backup" dans lequel je vais stocker les log.  
 
Ma question est la suivantes :
quand j'instencie ma classe mysql, je voudrais atteindre un fichier dans le répertoire "backup" pour stocker les requêtes qui sont exécuté par les utilisateurs.
le fichier en question sera la date du jour avec l'extension SQL.
 
j'ai déjà essayé ta solution (chemin absolu ) mais cela ne fonctionne pas.
j'ai essayé aussi en faisant "../../backup/" cela fonctionne avec certain script, mais pas tous (en fonction de leur emplacement par rapport au répertoire).


---------------
Tout à commencé par un rêve...
n°1758989
stef_dober​mann
Personne n'est parfait ...
Posté le 13-07-2008 à 10:42:55  profilanswer
 

Merci, mais cela ne me donne pas ceux que je recherche.
En revanche je viens de trouver une solution certes un peu archaïque, mais elle fonctionne  
 

Code :
  1. //PRIVATE
  2. function log_query() {
  3.  if ( is_dir("../../backup/" ) ) { $fic = "../../backup/".date("Ymd" ).".sql"; }
  4.  else { $fic = "../backup/".date("Ymd" ).".sql";}
  5.  if ($fp = fopen($fic , "a" ) ) {
  6.   fwrite($fp , $this->query."\n" );
  7.   fclose($fp);
  8.  }
  9. }


 
Bien sur le temps de trouver mieux...


---------------
Tout à commencé par un rêve...
n°1759122
stef_dober​mann
Personne n'est parfait ...
Posté le 13-07-2008 à 23:54:30  profilanswer
 

Oui et non car il n'y a pas d'entré réel sur le site, je n'y accède pas directement à la racine.
Explication :
je travail dans une grande surface, il y a donc 3 parties :
- une pour le rayon,
- une pour la gestion (le technicien qui fait le SAV => moi)
- une autre pour l'administration du site, correction en tout genre sauvegarde de la BD (moi aussi qui le gére),...
 
Mais les classes de gestion SQL ou sortie PDF, sont centraliser à un seul endroit (plusieurs interfaces en fonction du besoin, 1 seul système de mise à jour).
et d'autre partie qui pourront être créé plus tard en fonction des besoins.
 
donc même si moi j'ai le choix entre plusieurs truc, les personne du rayon elles n'ont pas d'autre choix que d'utiliser leur partie et rien d'autre !
et dans ce cas ta solution ne peut être utilisable.
 
mais ca reste une très solution pour d'autre cas.
 
Edit : précision.


Message édité par stef_dobermann le 14-07-2008 à 12:50:30

---------------
Tout à commencé par un rêve...

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Acceder a un fichier depuis n'importe qu'elle page d'un site ?

 

Sujets relatifs
[PHP-MySQL] Problème récupération dernier ID d'une table.[DOS]Tester taille d'un fichier ?
PHP - Galerie Photoexporter depuis php un fichier excel en fichier csv
Fichier binairepb: (PHP) cURL transmission en POST
Question pour le développement d'un siteFFMPEG-PHP récuperer la durée ?
éditeur de site kompozerLister un fichier .tar
Plus de sujets relatifs à : [PHP] Acceder a un fichier depuis n'importe qu'elle page d'un site ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR