![]() |
PHP: "Undefined Index" loswerden
Hallo ihr,
zum Testen meiner Seite verwende ich in PHP error_reporting(E_ALL), um eventuelle nicht initialisierte Variablen zu entdecken. Nun habe ich das Problem, dass in einer Datei ein leeres array deklariert wird, welches erst spaeter gefuellt:
Code:
Natuerlich spuckt mir PHP bei dieser Verwendung immer einen Hinweis, dass der Index (also die Foren-ID) nicht vorhanden ist. Ok, E_ALL ist vielleicht etwas zu extrem, allerdings interessiere ich mich dafuer, ob es eine Moeglichkeit gibt, dies zu verhindern. Da die IDs aus der Datenbank kommen, kann ich beim Initialisieren des Arrays noch nicht wissen, welche Foren-IDs vorhanden sind. Weiss jemand Abhilfe? Falls es jemand testen will: phpBB, includes/auth.php, die Schleife die in Zeile 234 beginnt:
$foo = array();
$bar = array(); //$bar wird zweidimensional gefuellt, erster Index = Zeilennummer, zweiter Index = Spaltenname for ($i = 0; $i < count($bar); $i++) { $forum_id = $bar[$i]['forum_id']; $foo[$forum_id] = 0; }
Code:
Nur falls sich jemand die Muehe machen will, es selbst zu probieren ;)
for ($k = 0; $k < count($f_access); $k++)
Greetz alcaeus |
Re: PHP: "Undefined Index" loswerden
moin andreas,
das lässt mir jetzt irgendwie keine ruhe :) ich hab zwar kein phpBB hier, aber wollte es trotzdem mal versuchen:
Code:
ich bekomme keine notice von php. das liegt warscheinlich an meiner "von-hand-ausfüllung", sehe ich das richtig? sprich: ich habe in zeile 8 bis 15 die indizes schon vorgegeben, also kein fehler. wenn die aus deiner datenbank kommen, kennt php die noch nicht und wirft einen fehler aus. auch richtig?
<?php
error_reporting(E_ALL); $foo = array(); $bar = array(); //$bar wird zweidimensional gefuellt, erster Index = Zeilennummer, zweiter Index = Spaltenname $bar[0]['forum_id'] = 0; $bar[0]['test'] = "hallo"; $bar[1]['forum_id'] = 1; $bar[1]['test'] = "moin"; $bar[2]['forum_id'] = 2; $bar[2]['test'] = "huhu"; $bar[3]['forum_id'] = 3; $bar[3]['test'] = "tach"; for ($i = 0; $i < count($bar); $i++) { $forum_id = $bar[$i]['forum_id']; $foo[$forum_id] = 0; } print_r($foo); print_r($bar); ?> wenn ja, könntest du $bar nach dem füllen aus der datenbank doch per hand die 'forum_id' zuweisen. (sorry, falls ich das jetzt falsch vertsanden habe, aber ich hab dne phpBB source nicht...) aenogym |
Re: PHP: "Undefined Index" loswerden
Moin Aeno,
ja, das Beispiel hier war nur eine Demo. Was ich uebersehen hatte, nervt mich jetzt noch mehr: fast am Ende der Zeile (die bei 1024x768 halb versteckt ist) wird noch ein array verwendet, und dort ist dieser Index nicht definiert :wall: Ich werde dann mal sehn woher das Ding kommt, und evtl. mit Default-Werten fuellen. Falls noch jemand einen Vorschlag hat, nur her damit ;) Greetz alcaeus |
Re: PHP: "Undefined Index" loswerden
Mit der Funktion "isset()" kannst Du vorher prüfen, ob ein Index gesetzt ist.
|
Re: PHP: "Undefined Index" loswerden
Hallo Daniel,
Zitat:
Greetz alcaeus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz