dedlfix: Variablenübergabe

Beitrag lesen

echo $begrüßung;

hat jemand eine Idee warum ich mit diesem Code die Variable $id nur
an das Formular übergeben kann, wenn sie statisch vergebe?
$id=123;    //Das funktioniert
Wenn ich versuche dies über eine Input-Box zu übergeben nimmt er sie nicht.

Es ist schon seit langem nicht mehr so, dass PHP automatisch Variablen für übergebene GET/POST/COOKIE-Parameter anlegt. Und das ist auch gut so, weil zusammen mit schlampiger Programmierung dies zu Sicherheitsproblemen führen kann. Früher war das Feature Register Globals standardmäßig aktiviert und auch bei vielen Providern hielt/hält sich diese Einstellung noch lange/immer, weswegen auch heute noch viele Anfänger und nicht mehr zeitgemäße Tutorials davon ausgehen, dass das bei PHP so üblich sei. Du solltest auch nicht mehr auf dieses Feature setzen, denn, abgesehen von der Sicherheitsproblematik, lässt PHP6 nicht mehr allzu lange auf sich warten und wird dieses Feature nicht mehr kennen.

function edit1_entry($id) {
global $action;

global benötigt man nur innerhalb von Funktionen, um im globalen Adressraum liegende Variablen ansprechen zu können. Das ist aber kein besonders guter Stil, weil idealerweise Funktionen abgeschlossene Gebilde sein sollten, die nur über Parameter und Rückgabewerte mit ihrer Umgebung kommunizieren.

global $HTTP_SERVER_VARS;
global $HTTP_GET_VARS;
global $HTTP_POST_VARS;

$HTTP_*_VARS sind ebenfalls "hornalte Kamellen" die mittlerweile durch die superglobalen $_SERVER, $_GET, $_POST etc. ersetzt wurden. Superglobal bedeutet, dass sie in jedem Kontext zur Verfügung stehen, also auch innerhalb von Funktionen.

echo "$verabschiedung $name";