Bonjour à tous,
actuellement en stage dans une petite entreprise, je dois mettre en place un système de logs d'un site en PHP.
En local pas de problème. Mon script php s'éxecute et les logs sont bien enregistrés.
En ligne en revanche le répertoire est bien créé quand cela est nécessaire avec les bons droits (777) vérifié sur le ftp. Mais la création du fichier texte avec les logs ne se fait pas.
Le masque par défaut est à "18" quand j'utilise la fonction umask(). Je l'ai donc changé et rétabli en début et fin de script. Que signifie un mask à 18?
Voici mon bout de code :
$oldmask=umask();
umask(0);
// Si le répertoire n'existe pas je le créé.
if(!(is_dir('_logs/'.date("Y-m" ).'/')))
{
mkdir('_logs/'.date("Y-m" ).'/');
}
// Je créé mon fichier de log.
$filename='_logs/'.date("Y-m" ).'/'.date("d-m-Y" ).'.txt';
$fo=fopen($filename,"a+" );
$phrase='[ '.date("H:i:s" ).' ] '.$_SERVER['REQUEST_URI'].' --> L\'utilisateur '.$_SESSION['login'].' est sur la page d\'accueil.';
//Et j'y ajoute ma phrase...
fputs($fo,$phrase);
fputs($fo,"\n" );
// Je ferme le fichier et je rétabli le masque par défaut.
fclose($fo);
$umask=($oldmask);
VOICI LE RESULTAT EN LOCAL :
[ 12:02:30 ] /home.php?interv=futur --> L'utilisateur jerome est sur la page d'accueil.
[ 12:03:19 ] /home.php?interv=futur --> L'utilisateur jerome est sur la page d'accueil.
[ 12:03:27 ] /home.php?interv=futur --> L'utilisateur jerome est sur la page d'accueil.
[ 12:04:17 ] /home.php?interv=nonsoldees --> L'utilisateur jerome est sur la page d'accueil.
[ 12:13:06 ] /home.php --> L'utilisateur jerome est sur la page d'accueil.
[ 12:13:08 ] /home.php?interv=soldees --> L'utilisateur jerome est sur la page d'accueil.
[ 12:13:11 ] /home.php?taches=afaire --> L'utilisateur jerome est sur la page d'accueil.
[ 12:13:14 ] /home.php?interv=futur --> L'utilisateur jerome est sur la page d'accueil.
[ 14:08:55 ] /home.php?interv=futur --> L'utilisateur jerome est sur la page d'accueil.
Impossible d'avoir ce résultat en ligne. Faut t'il changer quelque chose au niveau des config php.ini ou httpd.conf ?