Wie initialisierer ich eine Variable die Ihren Wert per Übergabe erhält

14/06/2014 - 07:54 von Heiko Rompel | Report spam
Moin,

wenn ich folgendes habe:

index.php?id=belegung

wie initialisiere ich "id"?

Wenn ich im Quelltext ein $id = "" mache, wird ja der Inhalt von "id"
gelöscht und ich erfahre nie was übergeben wurde.
bei einem $id = $_POST["varname"] oder
$id = $HTTP_POST_VARS["varname"]
Werden $_POST bzw. $HTTP_POST_VARS als unfiniert gemeldet.

Ich habe nicht die große PHP-Ahnung und versuche die fehlenden
Intialisierungen in einem Script zu beseitigen.

Gruß HEiko
 

Lesen sie die antworten

#1 k
14/06/2014 - 10:59 | Warnen spam
Heiko Rompel writes:

Moin,

wenn ich folgendes habe:

index.php?id=belegung

wie initialisiere ich "id"?

Wenn ich im Quelltext ein $id = "" mache, wird ja der Inhalt von "id" gelöscht
und ich erfahre nie was übergeben wurde.
bei einem $id = $_POST["varname"] oder
$id = $HTTP_POST_VARS["varname"]
Werden $_POST bzw. $HTTP_POST_VARS als unfiniert gemeldet.




Hallo,
$HTTP_POST_VARS solltest du am besten gleich vergessen.

$_GET, bzw. $_POST sind deine Freunde.

Bei deinem Beispiel (in dem die Variable als Teil des GET requests
übergeben wird), könntest du $id folgendermaßen initialisren:

$id = isset($_GET['id']) ? $_GET['id'] : 23;

Das ist aber noch nicht wirklich schön, weil noch keine Überprüfung auf
Validitàt des Variableninhaltes stattgefunden hat.

Wenn id zB nur Integer sein kann, dann solltest du den Wert nur
übernehmen, wenn $_GET['id'] eine Zeichenkette enthàlt, die nur die
Ziffern 0-9 enthàlt und im Wertebereich eines Integer wertes liegt, wie
du ihn erwartest (z.B. postive 32/64 Bit Ganzzahl).

Deshalb solltest du dir Funktionen schreiben, die die Eingaben zuerst
prüfen und nur nach erfolgreicher Prüfung die Werte nutzen, ansonsten
eine entsprechende Fehlerbehandlung auslösen.

Wie das am besten erfolgt, hàngt von deinen Skripten ab.

Du könntest dir zB mal
http://de2.php.net/manual/en/filter...dation.php bezüglich
der Prüfung und
http://de2.php.net/manual/en/filter...zation.php wegen der
Initialisierung ansehen.

KP

Ähnliche fragen