IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Gestion des buffers dans une fonction


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2004
    Messages : 19
    Points : 12
    Points
    12
    Par défaut Gestion des buffers dans une fonction
    Bonsoir,
    J'essaye de faire un petit script de gestion d'erreur et je suis confronté à une erreur surprenante.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    <?php
    //-----------------------------------------
    // Auteur : Jérôme
    // Email : jijijaco@gmail.com
    // Script : Gestion des erreurs
    // Date début : 26/12/2005
    // Date dernière mise à jour : 26/12/2005
    // Version : 0.1 (BETA)
    //-----------------------------------------
    ############################################
    // Fonction de gestion des erreurs
    ############################################
    function gerreur ($errno, $errstr, $errfile, $errline) {
    	$erreur = "Erreur numero $errno detail : '$errstr' dans le fichier $errfile à la ligne $errline<br />";
    	echo $erreur; // A supprimé
    	global $_iserror;
    	$_iserror = true;
    	ob_end_clean();
    	echo "Une erreur s'est produite, cette page est actuellement innaccessible";
    	exit();
    }
    function gerreurfin () {
    	global $_iserror;
    	if (!$_iserror) {
    		ob_end_flush();
    	}
    }
    ############################################
    // Initialisation
    ############################################
    error_reporting(E_ALL);
    set_error_handler("gerreur");
    $_iserror = false;
    ob_start();
    register_shutdown_function("gerreurfin");
    ?>
    Dans le script, il ne veut pas effectué soit ob_end_flush soit ob_end_clean.
    Il me dit que les buffers sont inexistants... Si je met la fonction
    ob_end_clean hors d'une fonction ca fonctionne sans probleme...

    J'ai consulté la Doc je ne vois aucune note parlant de probleme lorsque ces fonctions sont exécutée dans une fonction...

    Si quelqu'un peut m'éclairé sur le sujet, j'en serais ravis.

    Merci d'avance.
    Cordialement Jerome

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 308
    Points : 15 638
    Points
    15 638
    Par défaut
    le problème est que la fonction appelé par "register_shutdown_function" est lancée après l'envoi des données un navigateur donc à ce moment tu ne peux plus rien modifier sur le code HTML résultat de ton script
    il y a plus d'explications dans la documentation officielle :
    http://php.net/register_shutdown_function

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2004
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    Et il y aurait une solution pour palier ce problème ??

    Merci pour votre aide

Discussions similaires

  1. [VB2005] Gestion des évenement dans une fonction
    Par arnolem dans le forum Windows Forms
    Réponses: 8
    Dernier message: 24/07/2006, 09h07
  2. [AS2] déclarer des variables dans une fonction
    Par ooyeah dans le forum ActionScript 1 & ActionScript 2
    Réponses: 12
    Dernier message: 02/08/2005, 12h50
  3. [Conception] Gestion des accents dans une base de données
    Par MiJack dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 07/07/2005, 11h41
  4. fonction récupérant des valeurs dans une fonction popup...
    Par petitsims dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/01/2005, 14h51
  5. [VB6] Gestion des erreurs dans une dll
    Par zimba-tm dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 02/08/2004, 11h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo