-
Log de tracage en php
bonjour
voici un script de tracage dans un repertoire de log :
http://www.linux-pour-lesnuls.com/logsecure.txt (je l'ai mis en .txt afin de debogage )
en gros , ce script examine les ips se connectant sur une des pages du site
et les traitent selon les degré d'erreur qu'ils engendrent
j'inclus ensuite le script dans une page à tester :
http://www.linux-pour-lesnuls.com/astucebash.php
<?
include ("head.php");
include ("connecte.php");
include ("logsecure.php");
?>
je cree au préalable un repertoire log ou seront placées les lignes de log comme indiqué dans le script
if(!defined('repertoire_log'))
{
// alors il l'a défini avec comme valeur log/
// (ce repertoire contiendra le classement des erreurs,
// à vous de le créer)
define ("repertoire_log","log/");
}
je donne a ce repertoire les droits maximaux (chmod 777 chown deny:deny )
,provisoirement a fin de test .
j'oriente mon navigateur sur la page astucebash.php et rien ne s'ecrit dans le rep log ,
comment debugger ?
merci
-
je rajoute quelques precisions quand a ce probleme de non-ecriture dans un fichier log :
le rep en question
chmod o+rwt /home/deny/aide
pas de lignes de log a ce sujet dans
/home/deny/error_log qui correpond aux logs de ce virtualhost
merci
-
toujours avec ce meme probleme
j'ai tracé dans le script ou le probleme peut survenir
mais je ne suis pas plus avancé
la balise d'erreur n3 fonctionne
mais celle n4 n'est plus ecrit dans les logs
//on renvoie la capture à la fonction de traitement
traitement_e($type."[$errno] $errstr\n".
"Ligne:".$errline.
"Fichier:".$errfile."\n");
}
error_log('n3',0);
function traitement_e($erreur)
{
//$erreur contient le message d'erreur
//$info=data:jour-mois-annee heure:minute:seconde + IP du client
$info=date("d/m/Y H:i:s",time())." :".$_SERVER['REMOTE_ADRR'].
//+Serialisation du tableau $_GET, soit toutes les variables
// passées par URL
"\n\t GET:".serialize($_GET).
//+Serialisation du tableau $_POST, soit toutes les variables
// passées par méthode POST
"\n\t POST:".serialize($_POST).
//+ si la variable $_COOKIE est definie alors renvoie
//+Serialisation du tableau $_COOKIE, soit tout le contenu
//du cookie ,sinon renvoie " Undefined".
"\n\t COOKIE:".
(isset($_COOKIE)? serialize($_COOKIE):"Undefined").
//+ si la variable $_SESSION est definie alors renvoie
//+Serialisation du tableau $_SESSION, soit toutes les variables
//contenues dans la session ,sinon renvoie " Undefined".
"\n\t SESSION:".
(isset($_SESSION)? serialize($_SESSION):"Undefined").
//+Serialisation du tableau $_SERVER, soit toutes les variables
//serveurs.
"\n\t SERVER:".serialize($_SERVER)."\n\n";
//$rep= repertoire ou sont contenus les logs concatenes au
// jour-mois-annee actuels
$rep= repertoire_log.date("d-m-Y".time());
//si le repertoire $rep n'existe pas
if(!is_dir($rep))
{
//alors cree le repertoire (crée le repertoire
//jour-mois-annee actuel) S'il echoue , renvoie un message
// et stoppe la fonction.
if(!@mkdir($rep))
{
echo "vérifier l'existence du repertoire"
.repertoire_log;
return FALSE;
}
}
error_log('n4',0);
//$fp ouvre le fichier se trouvant dans $rep du nom de l'heure
//actuelle concaténée à "h" en mode ajout .Si le fichier n'existe pas ,
//il se crée.