AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

PHP: "Undefined Index" loswerden

Ein Thema von alcaeus · begonnen am 7. Jul 2005 · letzter Beitrag vom 8. Jul 2005
Antwort Antwort
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#1

PHP: "Undefined Index" loswerden

  Alt 7. Jul 2005, 23:48
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:
$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;
}
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:
Code:
for ($k = 0; $k < count($f_access); $k++)
Nur falls sich jemand die Muehe machen will, es selbst zu probieren

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: PHP: "Undefined Index" loswerden

  Alt 8. Jul 2005, 00:53
moin andreas,

das lässt mir jetzt irgendwie keine ruhe ich hab zwar kein phpBB hier, aber wollte es trotzdem mal versuchen:

Code:
<?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);

?>
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?
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
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#3

Re: PHP: "Undefined Index" loswerden

  Alt 8. Jul 2005, 08:55
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
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
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: PHP: "Undefined Index" loswerden

  Alt 8. Jul 2005, 08:58
Mit der Funktion "isset()" kannst Du vorher prüfen, ob ein Index gesetzt ist.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#5

Re: PHP: "Undefined Index" loswerden

  Alt 8. Jul 2005, 09:01
Hallo Daniel,

Zitat von Daniel:
Mit der Funktion "isset()" kannst Du vorher prüfen, ob ein Index gesetzt ist.
das wusste ich schon, allerdings kommt es mir fuer den Moment ein bisschen umstaendlich vor, jeden einzelnen Index zu pruefen und evtl. auf 0 zusetzen bevor er in die Schleife wandert. Ansonsten lass ich die Notices in auth.php drin...phpBB ist sowieso voll davon

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:08 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