Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
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 02/04/2011, 18h21   #1
Membre actif
 
Avatar de xess91
 
Homme
Inscription : octobre 2008
Messages : 407
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2008
Messages : 407
Points : 160
Points : 160
Par défaut header location et error_log

Bonjour à tous,

Je suis en train de faire mon petit système de gestion d'erreurs php, par le biais d'une fonction bien connue:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
function error_handler($error_type, $string_error, $file_error, $line_error)
	{
	$date = date('d/m/Y - H:i:s');
 
	$return_error = $date.": " ;
 
	switch($error_type)
		{
        case E_USER_ERROR:
            $return_error .= "Erreur fatale : ".$string_error ;
            $return_error .= " Dans le fichier : '".$file_error."', à la ligne ".$line_error." \n" ;
        break ;
 
        case E_USER_WARNING:
            $return_error .= "Avertissement : ".$string_error ;
            $return_error .= " Dans le fichier : '".$file_error."', à la ligne ".$line_error." \n" ;
        break ;
        //dans le cas ou une erreur est déclenché volontairement
		/*
		trigger_error() nécessite 2 arguments :
		le message d'erreur ;
		le type d'erreur (optionnel, par défaut E_USER_NOTICE).
		*/
        case E_USER_NOTICE:
            $return_error .= "Note : ".$string_error ;
            $return_error .= " Dans le fichier : '".$file_error."', à la ligne ".$line_error." \n" ;
        break ;
 
        default:
            $return_error .= "Erreur inconnue [".$error_type."] : ".$string_error ;
            $return_error .= " Dans le fichier : '".$file_error."', à la ligne ".$line_error." \n" ;
        break ;
		}
	error_log($return_error, 3, "error/error.log");
	header("location:error_page.php") ;
	exit() ;
	}
 
set_error_handler('error_handler') ;
Dans le cas ou surviendrait une erreur php au cours d'un processus, j'enregistre un message d'erreur dans un fichier .log et je redirige vers une page d'erreur.

Quand une erreur survient dans une page ou il n'y a que du php, pas de problème la fonction exécute ce qui lui est demandé, mais dans le cas ou une erreur survient dans une page ou se mélange html, javascript et php, j'ai le droit au classique : "Cannot modify header information...."

Comment puis-je gérer cette réaction pour le moins normale sans trop de complication mis à part avec une tamporisation de sortie ?

Merci à tous pour vos réponses!
xess91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2011, 22h49   #2
Membre habitué
 
Homme
Inscription : septembre 2008
Messages : 161
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Congo-Kinshasa

Informations forums :
Inscription : septembre 2008
Messages : 161
Points : 139
Points : 139
Envoyer un message via Skype™ à tresorunikin
Toujours appeler la fonction
Code :
Header('Location :http://www.tresorunikin.com');
avant les balises head de html... Vois comment tu peux commencer par appeler cette fonction avant l'envois des entêtes http! donc du php au dessus et le hml viendra en dessous! It works
tresorunikin 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 01h33.


 
 
 
 
Partenaires

Hébergement Web