PHP Fehlermeldung: Undefined offset:
Daniel#
- php
Hallo zusammen,
Folgende Zeile PHP:
echo $userdata[0]." ".$userdata[1]." ".$userdata[2]."<br>";
Die Ausgabe klappt, dennoch habe ich mit error_reporting(E_ALL) folgende Fehlermeldungen (jaja, ich konnte das error_reporting auch rausnehmen...will es jetzt aber wissen :-))
Undefined offset: 1
Undefined offset: 2
Google meint, dass es nicht genug Werte im Array gibt - stimmt aber nicht - es sind 3 Werte vorhanden und diese werden ja auch ausgegeben.
Daniel
Hi,
Google meint, dass es nicht genug Werte im Array gibt - stimmt aber nicht - es sind 3 Werte vorhanden und diese werden ja auch ausgegeben.
Google meint wahrscheinlich eigentlich, dass nicht _die richtigen_ Werte (genauer: Keys) vorhanden sind. Den Index "1" gibt es nicht, sondern vielleicht "01", "eins" oder "42".
Cheatah
hmm ... und das meint? Ich ignoriere die Meldung einfach?
Hello,
hmm ... und das meint? Ich ignoriere die Meldung einfach?
Nein, Du solltest es genauer untersuchen. Gerade die Notices machen meistens auf Sicherheitslücken aufmerksam. Das liegt dann daran, dass trotz Meldung das Script weiterläuft, während es bei echten Fehlern meistens abgebrochen wird, also die Lücke nicht effektiv werden könnte.
Lass Dir das Array mittels
echo "<pre>\n";
print_r($_userdaten);
echo "</pre>\n";
anzeigen.
Dann weißt Du schon ein bisschen mehr.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Lass Dir das Array mittels
echo "<pre>\n";
print_r($_userdaten);
echo "</pre>\n";anzeigen.
Dann weißt Du schon ein bisschen mehr.
Oh, Tatsache:
Undefined variable: _userdaten
Aber wieso ist die Variable nicht definiert?
echo $begrüßung;
print_r($_userdaten);
Undefined variable: _userdaten
Aber wieso ist die Variable nicht definiert?
Stures Abtippen - inklusive Toms Fehler mit dem Unterstrich - bringt dir hier keine Punkte. Verwende das empfohlene print_r() oder var_dump() mit deinen wirklichen Namen der Variablen, die du untersuchen willst.
echo "$verabschiedung $name";
Ok, das var_dump() bringt etwas mehr Licht:
array(3) { [0]=> string(6) "Müller" [1]=> string(9) "pwmueller" [2]=> string(19) "WBVSude-Schaale " }
und
Warning: Cannot modify header information - headers already sent by (output started at login.php:25) in login.php on line 61
Die 2. Meldung besagt wohl, dass ich vorher schon eine Ausgabe habe - das var_dump() ... ist also ok.
Aber die var_dump - Ausgabe an sich sieht doch ok aus... *ratlos
Problem gelöst!
Hole die Array-Werte aus einer txt
$userdata = explode("|", $zeile);)
und in der txt Stand es so:
...
Meier|pwmeier|WAZV Parchim
...
Jetzt habe ich es in
Meier|pwmeier|WAZV Parchim|
geändert und es funktioniert.
Danke allen Helfern!!! :o)
Tach.
hmm ... und das meint? Ich ignoriere die Meldung einfach?
Nein, das meint: Laß dir den Inhalt von $userdata einmal testweise mit var_dump() ausgeben. Dann wirst du sehen, welche Indizes existieren und welche nicht.
Hello,
echo $userdata[0]." ".$userdata[1]." ".$userdata[2]."<br>";
$output = "";
if (isset($_userdata[0]) $output .= $_userdata[0];
if (isset($_userdata[1]) $output .= " ".$_userdata[1];
if (isset($_userdata[2]) $output .= " ".$_userdata[2];
echo htmlentities($output,ENT_QUOTES);
So könnte es gehen.
Du könntest auch eine Schliefe bauen
$output = "";
if (is_array($_userdata)
{
foreach ($_userdata as $key => $val)
{
$output .= " ".$val;
}
}
$output = ltrim($output);
echo htmlentities($output,ENT_QUOTES);
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hallo,
lass die Weisheit sprudeln!
Haha