dedlfix: Probleme mit $_SESSION - Abfrage

Beitrag lesen

echo $begrüßung;

Warum wird keine ID im Session-Array gefunden?

Debugging gehört zum Programmieren dazu wie die Pechmarie zum Märchen von Frau Holle. Vielleicht fehlt dir nur die passende Fehlersuchstrategie. Zwischen dem, was du dir vorstellst und dem, was wirklich ist, gibt es Differenzen, die zu solchen Fehlern führen. Deshalb ist es als erstes sinnvoll, zu überprüfen, was denn nun wirklich da ist. Dazu kann man sich die Inhalte der Variablen ausgeben lassen, wofür Tools wie echo, print_r(), var_dump() und Browsers Quelltextansicht hilfreich sind. Als nächstes kommen die Ausdrücke - auch in Teilen - dran, ob sie das gewünschte Ergebnis liefern. Ebenfalls ein wichtiges Element beim Entwickeln ist ein auf E_ALL gestelltes error_reporting.

Das/die Leerzeichen am Ende hättest du übrigens mit var_dump($ids[$x]) gesehen.

if ($_SESSION['avail'][$ids[$x]]=='')

Das ist typisch für PHP-Anfänger. Du machst hier einen Zugriff auf etwas, das möglicherweise gar nicht existiert und vergleichst das mit einem Leerstring. Dabei möchtest du gar nicht wissen, ob da ein Leerstring drin ist, sondern ob dieses Array-Element existiert oder nicht. Dafür ist isset() oder array_key_exists() zuständig. Beim Verwenden einer passenderen Funktionen kommt viel deutlicher deine eigentliche Intention zu Ausdruck als der Leerstring-Vergleich.
Wenn du dir außerdem mal ansiehst, dass bei einem var_dump($nichtexistent) als Ergebnis (neben der Notice-Meldung) ein "null" rauskommt, dann tritt die Unsinnigkeit des Vergleich mit einem Leerstring noch deutlicher zu Tage. Dass dieser Vergleich trotzdem funktioniert ist nur der automatischen Typumwandlung von PHP zu verdanken.

echo "$verabschiedung $name";