Endlosschleife nach switch-Anweisung
gemeindekind
- php
0 wahsaga0 gemeindekind0 Cheatah0 gemeindekind0 Cheatah0 gemeindekind0 Cheatah0 gemeindekind0 Cheatah
Hi,
irgendwie will mein Script nicht so wie ich will, es läuft immer in eine Endlosschleife rein.
Als default-Wert ist der header auf index (in die die function.php includiert wird) mit dem Parameter action=show gesetzt! So jetzt schaut Euch das Script selbst an. Bei mir endet es im Nirvana!
index.php
PHP-Code:
...
include("include/function.php");
...
function.php
PHP-Code:
switch ($action) {
case "show":
if(!isset ($_GET['page'])) {
$page_id = "1";
} else {
$page_id = $_GET['page'];
}
$result_navi = mysql_query("SELECT id, position, content_id, content FROM wde_navi_content WHERE status = '$status_online' ORDER BY position ASC");
echo mysql_error();
if(!$result_navi) {
die("Datenbank konnte nicht abgefragt werden. - wde_navi_content");
}
$result_content = mysql_query("SELECT id, status, content FROM wde_content WHERE id = '$page_id' AND status = '$status_online'");
echo mysql_error();
if(!$result_content) {
die("Datenbank konnte nicht abgefragt werden. - wde_content");
}
break;
...
...
...
default:
$START_URI = get_script_path("");
header("Location: ".$START_URI."?action=show");
break;
}
Besten Dank für Eure Hilfe im Vorfeld!
Gruß ... Simon
hi,
switch ($action) {
was _ist_ $action?
if(!isset ($_GET['page'])) {
den GET-parameter page fragst du über $_GET ab,
header("Location: ".$START_URI."?action=show");
wieso machst du das bei action nicht?
btw: berücksichtige bitte, dass ein location-header einen absoluten URL erfordert.
gruß,
wahsaga
Hi,
was _ist_ $action?
$action ist das was weiter unten als ?action=show kommt, logisch oder?
den GET-parameter page fragst du über $_GET ab,
Da der GET-Parameter als array übergeben wird, wie das eigentlich immer der Fall ist, muss ich ja wohl auch das gewünschte array angeben. An dieser Anweisung liegt das alles aber nicht!
wieso machst du das bei action nicht?
Diese Frage verstehe ich nicht so ganz, was meinst Du damit?
btw: berücksichtige bitte, dass ein location-header einen absoluten URL erfordert.
Der location-header bekommt eine absolute URL das sie durch die Funktion get_script_link() aufgerufen wird.
Jetzt bin ich aber immer noch nicht weiter! :-)
Gruß ... Simon
Hi,
was _ist_ $action?
$action ist das was weiter unten als ?action=show kommt, logisch oder?
nein, das ist absolut unlogisch. Aus welchem Grund sollte eine Variable namens $action existieren, nur wenn irgendein URL-Parameter zufällig so heißt? Das ergibt keinen Sinn.
den GET-parameter page fragst du über $_GET ab,
Da der GET-Parameter als array übergeben wird, wie das eigentlich immer der Fall ist, muss ich ja wohl auch das gewünschte array angeben. An dieser Anweisung liegt das alles aber nicht!
Nein, aber dort machst Du es _richtig_,
wieso machst du das bei action nicht?
Diese Frage verstehe ich nicht so ganz, was meinst Du damit?
bei action jedoch _falsch_.
Cheatah
Hi,
nein, das ist absolut unlogisch. Aus welchem Grund sollte eine Variable namens $action existieren, nur wenn irgendein URL-Parameter zufällig so heißt? Das ergibt keinen Sinn.
Wie übergebe ich dann bei einem header eine Variable mit, um dann in einer switch-Anweisung mit der Variable weiter zu arbeiten?
Gruß ... Simon
Hi,
Wie übergebe ich dann bei einem header eine Variable mit,
gar nicht, in HTTP existiert nichts, das auch nur im Ansatz mit einer Variable zu tun hätte. Du kannst nur Parameter übergeben. Und wie Du auf diese zugreifen musst, hast Du mit dem Parameter 'page' bereits selbst demonstriert.
Cheatah
Hi,
Und wie Du auf diese zugreifen musst, hast Du mit dem Parameter 'page' bereits selbst demonstriert.
Und wie sollte da der Code aussehen? - Kann mir gerade nix darunter vorstellen? So etwa?
der default-Wert:
default:
$SCRIPT_URL = get_script_path("");
$action = "show";
header("Location: ".$SCRIPT_URL.");
break;
der Anfang der switch-Anweisung:
switch ($_GET['action'] {
case 'show':
...
...
break;
...
...
Kann mir aber nicht vorstellen, dass das funzen soll!
Gruß ... Simon
Hi,
Und wie sollte da der Code aussehen? - Kann mir gerade nix darunter vorstellen? So etwa?
hast Du es ausprobiert?
der default-Wert:
default:
$SCRIPT_URL = get_script_path("");
$action = "show";
header("Location: ".$SCRIPT_URL.");
break;
Die Variable $action wird hier deklariert, aber nicht benutzt.
Kann mir aber nicht vorstellen, dass das funzen soll!
Soll es ja auch nicht. Es soll funktionieren.
Cheatah
Hi,
hast Du es ausprobiert?
Ja habe aber den Umweg über $_SESSION gewählt, bin aber nicht zufrieden damit darum:
Die Variable $action wird hier deklariert, aber nicht benutzt.
Würde ich mich freuen, wenn Du mir mal ein Scriptbsp. für das nutzen geben würdest ohne den Umweg das in eine SESSION reinzuschreiben!
Gruß ... Simon
Hi,
hast Du es ausprobiert?
Ja habe aber den Umweg über $_SESSION gewählt,
äh? Ich verstehe nicht, was Du Dir da für komische Gedanken machst. Das Zugreifen auf einen URL-Parameter ist absolut simpel, und Du hast es auch bereits völlig richtig durchgeführt. Wo ist jetzt das Problem, Dein vorhandenes Wissen auch zu nutzen?
Cheatah