Tom: Notice unitialized String..

Beitrag lesen

Hello Tom,

$f=auslesen($db, $sql);

if (!isset ($f) or $f[0]!=""){...

Das liegt daran, dass PHP die Variablen eben nicht "klassisch" anlegt, sondern mehrschichtig.
In der einen Schicht wird der Typ vermerkt
In der anderen Schicht der "Wert", der durchaus auch ein "Zeiger" sein kann

Angenommen, die Funktion auslesen() liefert 'false', wenn sie keinen gültigen Rückgabe_wert_ erzeugen konnte, dann ist die Variable zwar in der Namenstabelle angelegt, und ein Typ festgelegt, aber es existiert kein Wert und daher auch keine Ausdehnung in der Wert-Achse. $f[0] wäre aber schon das erste Element in der Wertachse und wurde gar nicht angelegt.

Die richtigte Abfrage müsste also lauten

if(!isset ($f) or $f===false)

oder

if(!isset ($f) or strlen($f)==0)   ## die benutze ich immer..., ggf. ergänzt durch trim()

Harzliche Grüße aus http://www.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau