XHTMLforum

XHTMLforum (http://xhtmlforum.de/index.php)
-   Serveradministration und serverseitige Scripte (http://xhtmlforum.de/forumdisplay.php?f=80)
-   -   error_reporting(E_ALL); (http://xhtmlforum.de/showthread.php?t=52110)

paracelsus 03.06.2008 21:11

error_reporting(E_ALL);
 
Im Titel stehende Funktion schmeisst bei mir glatt über 100 solcher Notice´s aus:
PHP-Code:

Notice:  Undefined variablenavihead in xampp/htdocs/cms/inc.php on line 248

Notice
:  Undefined index:  nav3 in xampp/htdocs/cms/inc.php on line 258

Notice
:  Undefined variablenavihead in xampp/htdocs/cms/inc.php on line 283 

all das sind innerhalb von Funktionen definierten Variablen oder Array Schlüssel. Diese werden auch nur innerhalb dieser Funktionen benötigt.
Funktionieren tut alles.
Wie ist das, ist es nun ein unsauberes php, oder kann man das ignorieren (möglicherweise Fehlerquelle)?

LordShadow 03.06.2008 21:26

Hy,

also die bekannteste Fehlerursache für einen "Notice: Undefined variable" ist, das du zwar eine Variable hast, ihr aber noch keinen Wert/Typ zugewiesen hast - oder keiner noch keiner existiert!

schau mal hier: FAQ der Newsgroups de.comp.lang.php.* - 28.16.*Notice: Undefined variable ...

vg
LordShadow

Timo 03.06.2008 22:20

um das zu vermeiden musst du einfach mit isset() arbeiten.

Also anstatt
PHP-Code:

if($abc 19) { 

einfach
PHP-Code:

if(isset($abc) && $abc 19) { 


paracelsus 03.06.2008 22:22

Sop verstehe ich das ja noch.
Beispiel:

Zitat:

Notice: Undefined variable: flag in E:\xampp\htdocs\cms\inc.php on line 475
wird hier erzeugt:
PHP-Code:

function get_lang() {
    global 
$multi_lang$default_lang$language$lang_icon;
    if ( 
$multi_lang == true ) {
        
$pre array_keys ($language);
        
$control 0;
        foreach ( 
$language as $val ){
            
$lang $pre[$control];
            
$flag .= '<div class="skiplink right"><a href="'.$lang.'-main---.html" class="lang"><img src="'.$lang_icon.$val['icon'].'" alt="" title="'.$val['title'].'" width="24" height="24" class="flag" /></a></div>';
            
$control++;
        }
    }
    return 
$flag

Um die Notice wegzu kriegen müsste ich nun $flag einen Wert zuweisen ($flag = NULL;) das läuft auch, hab es grade gemacht.

Meine Frage ist: ist das sehr wichtig, soll man das so machen? Ich finde es nur umständlich - auch wenn es wellformed ist - wenn ich beispielsweise:
PHP-Code:

if (  isset($_SESSION['isAdmin']) && $_SESSION['isAdmin'] == "einName" ) { 

schreiben, statt wie bisher einfach
PHP-Code:

if ($_SESSION['isAdmin'] == "einName" ) { 

Ist ja auch ein wenig mehr Arbeit für den Parser, oder?
Sinnvoll?

Timo 03.06.2008 22:24

Ja so sollte man das machen (siehe meine Antwort :))

paracelsus 03.06.2008 22:25

Ja, das hab ich kapiert.
Aber ist es wichtig?
Ist es eine mögliche Fehlerquelle?
Oder einfach nur unsauber Programmiert?

Timo 03.06.2008 22:27

Es ist meiner Meinung nach unsauber wenn man das nicht macht, und es geht glaube auch schneller.

Also ich Programmier immer mit E_ALL und hör erst auf wenn alle weck sind.

paracelsus 03.06.2008 22:33

Jesus, da hab ich eine lange Nacht vor mir.
Hey, Frau, mach mal die Kaffekanne scharf, und vergiss den Schuss nicht, ja ... sei so lieb. Danke, Süsse!

Willste was sehen Timo?

Zitat:

Notice: Undefined variable: flag in E:\xampp\htdocs\cms\inc.php on line 476
Notice: Undefined variable: navi in E:\xampp\htdocs\cms\inc.php on line 266
Notice: Undefined variable: navihead in E:\xampp\htdocs\cms\inc.php on line 282
Notice: Undefined variable: navi in E:\xampp\htdocs\cms\inc.php on line 280
Notice: Undefined variable: navihead in E:\xampp\htdocs\cms\inc.php on line 288
Notice: Undefined variable: navihead in E:\xampp\htdocs\cms\inc.php on line 247
Notice: Undefined index: nav2 in E:\xampp\htdocs\cms\inc.php on line 257
Notice: Undefined variable: navi in E:\xampp\htdocs\cms\inc.php on line 280
Notice: Undefined variable: navihead in E:\xampp\htdocs\cms\inc.php on line 247
Notice: Undefined index: nav3 in E:\xampp\htdocs\cms\inc.php on line 257
Notice: Undefined variable: navi in E:\xampp\htdocs\cms\inc.php on line 280
Notice: Undefined variable: navi in E:\xampp\htdocs\cms\inc.php on line 266
Notice: Undefined variable: navihead in E:\xampp\htdocs\cms\inc.php on line 282
Notice: Undefined variable: inhalt in E:\xampp\htdocs\cms\inc.php on line 394
Notice: Undefined index: empfaenger in E:\xampp\htdocs\cms\kontakt.php on line 106
Notice: Undefined index: empfaenger in E:\xampp\htdocs\cms\kontakt.php on line 108
Notice: Undefined index: name in E:\xampp\htdocs\cms\kontakt.php on line 114
Notice: Undefined index: strasse in E:\xampp\htdocs\cms\kontakt.php on line 119
Notice: Undefined index: plz in E:\xampp\htdocs\cms\kontakt.php on line 124
Notice: Undefined index: ort in E:\xampp\htdocs\cms\kontakt.php on line 129
Notice: Undefined index: tel in E:\xampp\htdocs\cms\kontakt.php on line 134
Notice: Undefined index: mail in E:\xampp\htdocs\cms\kontakt.php on line 139
Notice: Undefined index: betreff in E:\xampp\htdocs\cms\kontakt.php on line 144
Notice: Undefined index: nachricht in E:\xampp\htdocs\cms\kontakt.php on line 149
Notice: Undefined variable: inhalt in E:\xampp\htdocs\cms\inc.php on line 463
Notice: Undefined variable: skip_up in E:\xampp\htdocs\cms\inc.php on line 360
Notice: Undefined variable: inhalt in E:\xampp\htdocs\cms\inc.php on line 547
Notice: Undefined variable: inhalt in E:\xampp\htdocs\cms\cal\maxCalendar.class.php on line 52
Notice: Undefined variable: inhalt in E:\xampp\htdocs\cms\cal\maxCalendar.class.php on line 52
Notice: Undefined variable: inhalt in E:\xampp\htdocs\cms\cal\maxCalendar.class.php on line 52
Notice: Undefined variable: inhalt in E:\xampp\htdocs\cms\cal\maxCalendar.class.php on line 52
Notice: Undefined variable: inhalt in E:\xampp\htdocs\cms\cal\maxCalendar.class.php on line 52
Notice: Undefined variable: inhalt in E:\xampp\htdocs\cms\cal\maxCalendar.class.php on line 52
Notice: Undefined variable: inhalt in E:\xampp\htdocs\cms\cal\maxCalendar.class.php on line 52
Notice: Undefined variable: inhalt in E:\xampp\htdocs\cms\cal\maxCalendar.class.php on line 52
Notice: Undefined variable: inhalt in E:\xampp\htdocs\cms\cal\maxCalendar.class.php on line 52
Notice: Undefined variable: inhalt in E:\xampp\htdocs\cms\cal\maxCalendar.class.php on line 52
Notice: Undefined variable: inhalt in E:\xampp\htdocs\cms\cal\maxCalendar.class.php on line 52
Notice: Undefined variable: inhalt in E:\xampp\htdocs\cms\cal\maxCalendar.class.php on line 52
Notice: Undefined variable: inhalt in E:\xampp\htdocs\cms\inc.php on line 604
Notice: Undefined offset: 0 in E:\xampp\htdocs\cms\inc.php on line 612
Notice: Undefined offset: 1 in E:\xampp\htdocs\cms\inc.php on line 612
Notice: Undefined offset: 2 in E:\xampp\htdocs\cms\inc.php on line 612
Notice: Undefined offset: 3 in E:\xampp\htdocs\cms\inc.php on line 612
Notice: Undefined offset: 4 in E:\xampp\htdocs\cms\inc.php on line 612
Notice: Undefined offset: 5 in E:\xampp\htdocs\cms\inc.php on line 612
Notice: Undefined offset: 6 in E:\xampp\htdocs\cms\inc.php on line 612
Notice: Undefined offset: 7 in E:\xampp\htdocs\cms\inc.php on line 612
Notice: Undefined offset: 8 in E:\xampp\htdocs\cms\inc.php on line 612
Notice: Undefined offset: 9 in E:\xampp\htdocs\cms\inc.php on line 612
Notice: Undefined index: isAdmin in E:\xampp\htdocs\cms\inc.php on line 368

Das ist nur ein Drittel ...

Also werter Leser dieses Posts, so, soll es nciht aussehen. Natürlich hab ich das hier nur zu studien Zwecken geposted, ich würde so niemals programmieren. Das ist Teigware!

Gute Nacht. Und Danke.

Timo 03.06.2008 22:35

Sind doch nur 204 Zeilen :lol:

Viel Spaß noch Thomas :D

Du solltest dich von einer Kaffee Firma sponsern lassen

paracelsus 03.06.2008 22:38

Ot
Gnagnagnagna
/ot


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:08 Uhr.

Powered by vBulletin® Version 3.8.11 (Deutsch)
Copyright ©2000 - 2019, vBulletin Solutions, Inc.

© Dirk H. 2003 - 2019