Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] track_errors (https://www.delphipraxis.net/155145-%5Bphp%5D-track_errors.html)

Luckie 10. Okt 2010 23:28

[PHP] track_errors
 
Ich habe per .htaccess track_errors eingeschaltet:
Code:
#PHP Settings
php_flag track_errors on
, damit ich die Fehlermeldung mittels $php_errormsg ausgeben kann. Mit einem Testskript funktioniert es:
Code:
<?php

echo "track_errors=".ini_get("track_errors")."\n";
echo "\$php_errormsg=".$php_errormsg."\n";
//@strpos();
@unlink(test.html);
echo "\$php_errormsg=".$php_errormsg."\n";

?>
Es kommt die Fehlermeldung, dass die Datei nicht vorhanden ist.

Im richtigen Code bleibt $php_errormsg leider leer:
Code:
function deleteFile($file) {
      return @unlink($file);
   }

//...;

elseif ($action == 'delete') {
      if (deleteFile($filename)) {
         $h2 = "Datei erfolgreich gelöscht";
         $text = "Die Datei <i>".$filename."</i> wurde erfolgreich gelöscht.";
         htmlOutput($h2, $text);
      }
      else {
         //echo "track_errors=".ini_get("track_errors")."\n";
         $h2 = "Fehler beim Löschen der Datei";
         $text = "Die Datei <i>".$filename."</i> konnte nicht gelöscht werden.<br>".$php_errormsg;
         htmlOutput($h2, $text);
      }
   }
Könnte mir da bitte jemand helfen, wie ich die Fehlermeldung ausgegeben bekomme?
ini_get("track_errors") liefert übrigens eins.

Luckie 11. Okt 2010 19:47

AW: [PHP] track_errors
 
Oder kann es sein, dass der Inhalt der Variable wieder zurückgesetzt wird vor der Ausgabe, weil zwischen zeitlich ein (interner) Funktionsaufruf erfolgreich war?

S2B 11. Okt 2010 20:02

AW: [PHP] track_errors
 
Ich weiß nicht, ob das nur mir so geht, aber ich finde diese $php_errormsg-Methode nicht wirklich elegant. Vielleicht hilft dir ja set_error_handler() weiter. Damit kannst du die Fehlermeldungen mit einer eigenen Funktion abgreifen und ausgeben (bzw. loggen).

Luckie 11. Okt 2010 20:12

AW: [PHP] track_errors
 
Scheint wie vermutet zu sein. So funktioniert es:
PHP-Quellcode:
   function deleteFile($file) {
      global $errorMsg;
      $ret = @unlink($file);
      $errorMsg = $php_errormsg;
      return $ret;
   }
Und $errorMsg kann ich dann später ausgeben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz