Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
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 22/09/2007, 00h47   #1
Invité régulier
 
Inscription : janvier 2006
Messages : 20
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 20
Points : 5
Points : 5
Par défaut [SQL] fichier log.txt capricieux et bdd sql !

salut !
j'ai commencé a coder un modeste fichier log pour mon site, ce qui donne ca :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
function historique($qui, $quoi, $sur) 
	{ 
		$jour = date("d");
		$mois = date("m");
		$annee = date("Y");
		$heure = date("H");
		$minute = date("i");
		$ip = get_ip();
		$fichier = fopen("historique.txt", "a");
		fputs($fichier, "[IP : $ip] $qui $quoi $sur a $heure:$minute le $jour/$mois/$annee \n");
		fclose($fichier);
	}
et ensuite sur chaque page a surveiller, je met par exemple :

Code :
historique($_SESSION['pseudo'], 'supprime l article : ', $titr);
ca fonctionne mais pas top, car certaines fois et sans raison apparente, l'enregistrement ne se fait pas. (je vois par exemple ma connection au site, une retouche d'article mais pas la suppression d'un autre)

à votre avis mon code parait correct ou il y a des chance que ca vienne de là? (le chmod est à 777 acuellement sur le txt)

deuxieme petite question : vu les problemes avec un .txt et si il n'y a pas de solution visible, je pensais faire un log avec une base SQL (je rentre une ligne a chaque fois) mais je trouve ca beaucoup moins bien, qu'en pensez vous?
winston44 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2007, 01h50   #2
Rédacteur/Modérateur
 
Avatar de N1bus
 
Inscription : janvier 2003
Messages : 2 018
Détails du profil
Informations personnelles :
Âge : 47
Localisation : France, Charente Maritime (Poitou Charente)

Informations forums :
Inscription : janvier 2003
Messages : 2 018
Points : 1 992
Points : 1 992
Bonjour,

Tu as probablement une erreur de syntaxe dans la partie du code qui n'écrit pas dans le fichier log. Tu peux mettre ton code qui ne fonctionne pas ici ?

Comme ton code écrit déjà, ce n'est pas un problème de droits.

Enfin,
Mysql te permettrait de classer , supprimer , rechercher etc dans tes logs plus facilement que dans un fichier texte.

1 champ datetime, 1 champ user, 1 champ action (enum : connexion, deconnexion, écriture, suppression, etc...) 1champ commentaire où tu mets le type de documment supprimé, créé ou un commentaire.

ça te permettra d'effacer aussi les logs anciens et ne conserver que les plus récents en te basant sur la date. Et ça ne t'empêche pas de créer un fichier log quand tu en as besoin en récupérant les entrées dans la Bdd ou de les afficher dans ton backoffice.Tu pourras même appliquer des filtres pour ne récupérer que les logs de connexion ou que les logs concernant les actions sur les articles etc...
N1bus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2007, 11h38   #3
Invité régulier
 
Inscription : janvier 2006
Messages : 20
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 20
Points : 5
Points : 5
dans le reste du code il n'y a aucun probleme, il fonctionne tres bien !
je trouvais que faire une bdd sql pour un log etait un peut démesuré...

mais bon, vu que je ne vois pas du tout d'ou ca vient pour le txt je commence a la faire !

merci !
winston44 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2007, 11h56   #4
Rédacteur/Modérateur
 
Avatar de N1bus
 
Inscription : janvier 2003
Messages : 2 018
Détails du profil
Informations personnelles :
Âge : 47
Localisation : France, Charente Maritime (Poitou Charente)

Informations forums :
Inscription : janvier 2003
Messages : 2 018
Points : 1 992
Points : 1 992
Citation:
ca fonctionne mais pas top, car certaines fois et sans raison apparente, l'enregistrement ne se fait pas.
Citation:
dans le reste du code il n'y a aucun probleme, il fonctionne tres bien !
Faudrait savoir !?
N1bus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2007, 12h01   #5
Invité régulier
 
Inscription : janvier 2006
Messages : 20
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 20
Points : 5
Points : 5
désolé j'ai pas été tres clair !

Le code AUTOUR focntionne tres bien, seul la fonction historique(); à des ratées. par exemple, si à un moment j'enregistre un article :

Code :
1
2
mysql_query("INSERT INTO articles VALUES('', '$type', '$titre', '$article', '$pseudo', '1')");
historique($_SESSION['pseudo'], 'cree un nouvel article titre :', $titre);
l'enregistrement fonctionne parfaitement, l'article est créé, mais la fonction historique n'enregistre rien dans le fichier txt.

je trouve ca assez étrange...
winston44 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2007, 12h05   #6
Rédacteur/Modérateur
 
Avatar de N1bus
 
Inscription : janvier 2003
Messages : 2 018
Détails du profil
Informations personnelles :
Âge : 47
Localisation : France, Charente Maritime (Poitou Charente)

Informations forums :
Inscription : janvier 2003
Messages : 2 018
Points : 1 992
Points : 1 992
Tu n'aurais pas une apostrophe dans le $titre que tu envoies à historique() ?
N1bus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2007, 12h16   #7
Invité régulier
 
Inscription : janvier 2006
Messages : 20
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 20
Points : 5
Points : 5
J'ai tout passé sur une BDD SQL pour l'historique et ca marche impeccablement bien ! merci !
winston44 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h04.


 
 
 
 
Partenaires

Hébergement Web