Offset-Fehler
Reto Strub
- php
0 Sönke Tesch0 Reto Strub0 seth
Hallo Forum
Habe folgendes Problem; wenn ich mein Script öffne, bekomme ich den Fehler (Notice):
Notice: Undefined offset: 10 in D:\wampp2c\htdocs\Member\htaccess.php on line 311
Notice: Undefined offset: 10 in D:\wampp2c\htdocs\Member\htaccess.php on line 307
Kann mir jemand sagen warum ???
-------------------------------------------------------------------
Script:
305> <?PHP
306> $x=1;
307> while($Akt_User[$x] != "")
308> {
309> echo("<b>".$Akt_User[$x] . "</b>");
310> $y = $x + 1;
311> if($Akt_User[$y] != "") echo(" / ");
312> $x++;
313> }
314> ?>
Grüsse aus der Schweiz
Reto--
SELF-Code: (http://emmanuel.dammerer.at/selfcode.html)
sh:( fo:) ch:? rl:? br:$ n4:& ie:| mo:| va:) de:] zu:) fl:{ ss:| ls:[ js:(
Notice: Undefined offset: 10 in D:\wampp2c\htdocs\Member\htaccess.php on line 311
Notice: Undefined offset: 10 in D:\wampp2c\htdocs\Member\htaccess.php on line 307Kann mir jemand sagen warum ???
Gewagte Annahme: Es existiert kein Eintrag an der Position 10 in Deinem Feld, weil Du keinen Eintrag an der Position 10 angelegt hast?
Gruß,
soenk.e
PS: Verschaffe Dir Klarheit über den Inhalt des Feldes mit print_r() oder var_dump() und prüfe, ob etwas überhaupt existiert, bevor Du es benutzt (isset() hilt).
Es gibt keinen Eintrag 10 !!! Der ist = ""
Warum komme ich dann trotzdem in diese Schleife ?
Gruss Reto
hi!
Es gibt keinen Eintrag 10 !!! Der ist = ""
was denn nun? gibts keinen eintrag 10 oder ist er ""? das ist ein unterschied.
Warum komme ich dann trotzdem in diese Schleife ?
ich gehe davon aus, dass Sönke Tesch recht hat, also $Akt_User[10] nicht definiert ist.
dann passiert in etwa folgendes:
angenommen es existiert das array $Akt_User mit 10 elementen 0 bis 9.
bei deinem codeschnipsel wird $x mit 1 initialisiert und dann bei jedem durchlauf um 1 inkrementiert.
...soweit so gut...
sobald $x==9, wird $y (in 311: $y = $x + 1;) auf 10 gesetzt.
somit ist $Akt_User[$y], also $Akt_User[10], undefined, sodass zeile 311 einen fehler verursacht.
anschliessend wird in zeile 307 nochmal $Akt_User[10] abgefragt, was den zweiten fehler begruendet.
prost
seth
Warum komme ich dann trotzdem in diese Schleife ?
sobald $x==9, wird $y (in 311: $y = $x + 1;) auf 10 gesetzt.
somit ist $Akt_User[$y], also $Akt_User[10], undefined, sodass zeile 311 einen fehler verursacht.
anschliessend wird in zeile 307 nochmal $Akt_User[10] abgefragt, was den zweiten fehler begruendet.
Oder in einem Satz: Auch ein Vergleich erfordert das Auslesen der Variable - existiert sie nicht, gibt's einen Fehler.
Gruß,
soenk.e
Besten Dank
Das wars, die Variable hatte am platz 10 keinen Eintrag; habe es mit isset() gelöst.
Grüsse aus der Schweiz
R. Strub