2010-07-09 5 views
2

Pendant que nous exécutons une application Web certaines pages peuvent contenir des erreurs et certaines pages peuvent ne pas contenir d'erreur, Je veux recevoir une notification si la page contient une erreur, S'il y a une erreur, nous pouvons voir l'erreur dans la page, mais nous définissons n'importe quelle valeur à une variable si la page contient une erreur .. de telle sorte que nous puissions obtenir la notification qu'il y a une erreur. Je veux obtenir la notification puisque je veux créer un journal d'erreur, Si nous pouvons placer la variable avec une certaine valeur puis nous pouvons utiliser une condition pour créer un fichier journal Comment pouvons-nous faire cela?Comment obtenir un message dans une variable si la page contient une erreur?

+4

* (référence) * [Manuel PHP sur la gestion des erreurs] (http://de3.php.net/manual/fr/book.errorfunc.php) – Gordon

+0

@Gordon, vous devriez en faire une réponse. – UnkwnTech

Répondre

4

Il y a plusieurs façons de le faire. L'un est à setup a custom error handler. PHP va piéger la plupart des erreurs soulevées lors de l'exécution du script et le passer ensuite à votre gestionnaire personnalisé. Ce que vous faites à l'intérieur du gestionnaire est à vous. Vous pouvez write to a log puis rediriger vers un autre endroit ou ce que vous voulez.

Si vous parlez Exceptions, alors encapsulez le code qui peut casser dans les blocs try/catch. Si une erreur se produit, gérer l'exception le bloc catch. Ce que vous y mettez est encore à vous.

Parcourez les pages liées pour apprendre comment cela fonctionne. Catching an error, setting a variable et writing to a log sont trois choses distinctes. Isolez et résolvez-les un par un.

+0

@Gordon: J'ai eu le résultat mais je n'avais pas idée comment la page avec erreur est reconnue pouvez-vous s'il vous plaît donner quelques exemples si possible – udaya

+0

@Gardon: ce n'est pas pour le projet juste pour savoir ce qui se passe – udaya

+0

@udaya Je ne comprends pas ce que vous entendez par * comment la page avec erreur est reconnue * – Gordon

1

Vous pouvez également utiliser un bloc try {} catch {} et écrire des exceptions au journal des erreurs dans la partie catch {}. Comme ceci:

try { 

    $db = new MyDb('127.0.0.1', 'root', 'root'); 
    if (false === $db) { 
     throw new Exception ('Could not connect to the database.'); 
    } 

    $row = $db->getTable('table_name')->getRowByColumn('id', $_GET['id']); 
    if (null === $row) { 
     throw new Exception ('Row with id ' . $_GET['id'] . ' not found.') 
    } 

    // and so on 

} catch (Exception $e) { 
    $fp = fopen('logs/error.txt', 'w'); 
    fwrite($fp, date('l jS \of F Y h:i:s A') . ': ' . $e->getMessage() . "\n"); 
    fclose($fp); 
} 

Vous avez l'idée. Au lieu d'une simple date d'erreur, vous pouvez également ajouter un identifiant d'utilisateur connecté si le script se trouve dans la zone d'authentification protégée afin que vous sachiez quel utilisateur a cette erreur.

Questions connexes