php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.12.2006, 21:12  
Erfahrener Benutzer
 
Registriert seit: 17.06.2008
Beiträge: 125
squig befindet sich auf einem aufstrebenden Ast
Standard php.ini & error_*

Frohe Feiertage,

wollte die ruhige Zeit mal nutzen und ein bisschen an meiner PHP - Installation schrauben, das Error - Handling sollte dran glauben.

Dies sind die momentanen Einstellungen in meiner "php.ini".
Code:
error_reporting  =  E_ALL & E_STRICT & E_NOTICE

display_errors = On

log_errors = On

error_log = "/var/log/php/php.log"
Mit Hilfe von "phpinfo" konnte ich feststellen, dass die Einstellungen übernommen werden bzw. in der Ausgabe von "phpinfo" werden diese Einstellungen auch so angezeigt.

Nun zum Test mit folgendem Stück Code:
PHP-Code:
<?php

   
echo "test: " $test;

?>
Nun würde ich erwarten, dass mich im Browserfenster eine Warnung begrüsst und mir mitteilt, dass ich eine uninitialisierte Variable nutze und dies auch in den Logfile geschrieben wird. Leider passiert nichts, nur ein "test: " lässt sich blicken.

Änder ich den Code wie folgt ab:
PHP-Code:
<?php

   ini_set
("display_errors""1");
   
error_reporting(E_ALL);

   echo 
"test: " $test;

?>
Erscheint die gewünschte Meldung und in den Logfile wird auch geschrieben.
Code:
Notice: Undefined variable: test in /home/molten/projects/sandbox/source/index2.php on line 6
Werden meine Einstellungen aus der "php.ini" nun doch nicht übernommen, trotz Anzeige in der "phpinfo" - Ausgabe?
Auf meinem System existiert auch nur diese einzige "php.ini", so dass ich mir auch 100% sicher bin die richtige zu editieren.

Jemand vll. eine Idee, die mich wieder aus dem Wald holt, den ich vor lauter Bäumen nicht mehr sehe?

Danke Euch.

Bis dääähne.
squig ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 25.12.2006, 22:03  
Erfahrener Benutzer
 
Registriert seit: 17.06.2008
Beiträge: 125
squig befindet sich auf einem aufstrebenden Ast
Standard

Hola,

gleich mal nen Nachtrag *duck*

Hab ein wenig mit "ini_get" rumgespielt und dabei folgendes festgestellt:

Setze ich nur "error_reporting = E_ALL" in der "php.ini" werden die Fehler auch richtig angezeigt und ein "ini_get("error_reporting")" liefert "6143".

Setze ich nun "error_reporting = E_ALL & E_STRICT" werden keine Fehler mehr angezeigt und "ini_get("error_reporting")" liefert "0".

Wo liegt den nun das Problem im Zusammenspiel von "E_ALL" und "E_STRICT"? Dürfen die beiden nicht zusammen verwendet werden? Sie würden ja zusammen alle möglichen Fehlerfälle abdecken.

Bis dääähnne.
squig ist offline  
Alt 25.12.2006, 22:18  
Erfahrener Benutzer
 
Registriert seit: 17.06.2008
Beiträge: 125
squig befindet sich auf einem aufstrebenden Ast
Standard

So, der letzte und entscheidende Nachtrag, danach kann ein Mod hiermit nach Belieben verfahren.

Das Problem war im Endeffekt, dass sich das bitweise "&" vom logischen "&" unterscheidet.

Ich habe bei der Angabe "error_reporting = E_ALL & E_STRICT" das "&" verwendet weil ich dachte dieses verknüpft die beiden Angaben als logisches "&". "error_reporting" erwartet aber binäre Verknüpfungen, da ja auch der Wert für "error_reporting" direkt als Binärzahl angegeben werden kann.

Zitat:
Das bitweise UND (&) ist ein logischer Operator mit folgendem Rechenschema:

0 & 0 = 0
0 & 1 = 0
1 & 0 = 0
1 & 1 = 1.

Das Ergebnis zweier mit UND verknüpfter binärer Zahlen ergibt eine Ergebnis-Bit-Kette. Man kann sich das so vorstellen: Nur an den Stellen, an denen die beiden Vergleichszahlen übereinstimmend eine Eins aufweisen (siehe Rechenschema), steht im Ergebnis ebenfalls eine Eins.
Da die Binärwerte für "E_ALL" und "E_STRICT" verschieden sind, hat der binär verknüpfte Ausdruck "error_reporting = E_ALL & E_STRICT" auch richtigerweise eine "0" geliefert.

Zitat:
Die bitweise ODER Operation (|) hat das Rechenschema:

0 | 0 = 0
0 | 1 = 1
1 | 0 = 1
1 | 1 = 1.

Hier wird im Ergebnis also dann eine Eins gesetzt, wenn in der Binärdarstellung wenigstens einer der beiden Zahlen eine Eins an dieser Stelle vorkommt. Also: Nur wenn beide Zahlen an dieser Stelle 0 sind, ist auch das Ergebnis an dieser Stelle 0.
Der mit Hilfe des bitweisen Oders verknüpfte Ausdruck "error_reporting = E_ALL | E_STRICT" liefert nun einen Bitwert != 0 und das Melden und Loggen der Fehler funktioniert ohne Probleme.

Entschuldigung, dass ich so schnell die Pferde scheu gemacht habe.

Wünsch Euch was, bis dääähne.

Quelle: http://www.teialehrbuch.de/JASC/1269...peratoren.html
squig ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
php.ini extensions problem... lomtas Server, Hosting und Workstations 10 18.06.2009 23:36
Auslesen der PHP.INI Till-grisu PHP Tipps 2008 2 20.02.2008 13:54
Abgeschnittene Email - php.ini Problem? bentobento PHP Tipps 2008 15 23.08.2007 15:32
ne "gute" php.ini für php5? brian johnson PHP Tipps 2006 4 04.12.2006 08:28
Was sind Voraussetzungen für eine locale php.ini stani PHP Tipps 2006 1 07.10.2006 14:42
Problem: Zeitstempel in error log ueber php.ini moeglich? little_holly PHP Tipps 2006 2 07.09.2006 12:38
Pfadangabe zur php.ini imported_Loki PHP Tipps 2006 10 09.06.2006 11:09
suPHP erkennt php.ini nicht Sundriver Server, Hosting und Workstations 0 29.04.2006 18:14
PHP.ini wird nicht gefunden PHP Tipps 2006 5 03.01.2006 17:29
upload_limit der php.ini umgehen? PHP Tipps 2005-2 12 02.08.2005 20:05
Aufbau php.ini Faebe PHP-Fortgeschrittene 3 31.03.2005 19:25
Pfadangabe in php.ini funktioniert nicht PHP Tipps 2005 10 29.03.2005 15:16
php.ini bearbeiten Juuro Server, Hosting und Workstations 13 01.02.2005 22:51
[Erledigt] Server lokal - php.ini Timeout einstellen PHP-Fortgeschrittene 7 28.12.2004 12:05
Riesenproblem mit meinen VServer und PHP.ini PHP Tipps 2004-2 7 26.11.2004 14:11

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php.ini error_reporting, error_reporting php.ini, php ini error_reporting, php error_reporting 6143, php.ini e_all, php.ini error reporting, php error_reporting php.ini, php ini error reporting, error_reporting 6143, e_all binär, error_reporting 6143, php fehler 6143, php error_reporting, error reporting php.ini, php.ini error_reporting e_all, php.ini, php error reporting 6143, php.ini error_reporting aus, error_reporting = 6143, e_all php.ini

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:39 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.