Seite 1 von 1
register_globals: var via URL übergeben
Verfasst: 12.03.2004 17:26
von Wuppi
Hi
Es geht um ein Menu welches ich erstellen möchte:
Aufruf index.php?menu=egal ....
gegooglet hab ich schon ... und auch was gefunden:
Code: Alles auswählen
<a href="<?php echo $_SERVER['$PHP_SELF']?Variable=Wert"; ?>">
if ($_GET['Variable'] == Wert) {
echo "Jetzt klappt das";
}
Das hab ich probiert, geht aber nicht:
Parse error: parse error, unexpected '=' in C:\FoxServ\www\menu.htm on line 8
Die sache ist jetzt so:
Ich rufe die index.php auf, hier mach ich ein
Vermute das hier das problem ist?! Wie kann ich das umgehen?
Bis denne
Wuppi
Verfasst: 12.03.2004 17:28
von Xmopf
Hi,
Du hast Anführungszeichen vergessen
Code: Alles auswählen
<a href="<?php echo $_SERVER['$PHP_SELF'] ."?Variable=Wert"; ?>">
if ($_GET['Variable'] == Wert) {
echo "Jetzt klappt das";
}
Gruß
Xmopf
Verfasst: 12.03.2004 17:39
von Wuppi
Hi
thx für die prompte Antwort
Die Fehlermeldung hab ich weg ... aber der Link klappt nicht.
Ich hab ne If-Abfrage drin ... das erste If ist für das Hauptmenu - der wird in der index.php gesetzt
Danach kommt:
Link landet immer im Hauptmenu ...
Wieder was vergessen? ... das mit register_globals ist ganz neu für mich

auf meinem Testsystem ist das on - aufm Produktiv-System nicht
Bis denne
Wuppi
Verfasst: 12.03.2004 17:42
von Dennis63
Haste evtl in Zeile 21 ein ' vergessen? Poste mal nen bisschen mehr bitte als nur diese eine Zeile...
Grüße
Dennis
Verfasst: 12.03.2004 17:48
von Wuppi
Hi
index.php:
Code: Alles auswählen
<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
if (isset($menu)) { }
else {
$menu = menu; // $menu by braucht vorgabewert, sonst error
}
// Hauptmenu
if ($menu == "menu") { require("menu/menu.htm"); }
else if ($_GET['menu'] == "testmenu") { require("menu/testmenu.htm"); } // Zeile 22
// alternativer Ausstieg (bei falschem Menunamen)
else require("menu.htm");
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>
Das ganze soll in nem phpbb2 eingebunden werden (sieht man ja oben/unten an den includes)
menu.htm ... halt
Code: Alles auswählen
<a href="<?php echo $_SERVER['$PHP_SELF'] ."?menu=testmenu"; ?>">
Verfasst: 12.03.2004 17:51
von Xmopf
Hi,
Zeile 16 fehlen wieder Anführungszeichen.
Code: Alles auswählen
<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
if (isset($menu)) { }
else {
$menu = "menu"; // $menu by braucht vorgabewert, sonst error
}
// Hauptmenu
if ($menu == "menu") { require("menu/menu.htm"); }
else if ($_GET['menu'] == "testmenu") { require("menu/testmenu.htm"); } // Zeile 22
// alternativer Ausstieg (bei falschem Menunamen)
else require("menu.htm");
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>
Außerdem würde ich die Abfrage umstellen:
Code: Alles auswählen
if (!isset($menu)) {
$menu = "menu"; // $menu by braucht vorgabewert, sonst error
}
Dann brauchst du die leere Anweisung nicht.
Gruß
Xmopf
Verfasst: 12.03.2004 18:04
von Wuppi
Hi
die " " hab ich gesetzt .... dann hab ich mit $_GET["menu"] und $_GET[
menu'] und $_GET[menu] probiert. Will immer noch net ... ich lande immer auf der Hauptseite
Meine Vermutung: ich require für das Menu mit den Links eine datei ... zudem ist das ganze im phpbb2 eingebettet - hier verträgt sich wohl was nicht? EDIT: phpbb2 ist unschuldig - hab ich gerade mal rausgenommen - gleiches ergebniss ...
Bis denne
Wuppi
Verfasst: 12.03.2004 18:24
von Xmopf
Probier es mal bitte so:
Code: Alles auswählen
<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
if (!isset($_GET['menu'])) {
// Hauptmenu
require("menu/menu.htm");
}
else if ($_GET['menu'] == "testmenu") {
require("menu/testmenu.htm");
}
else {
// alternativer Ausstieg (bei falschem Menunamen)
require("menu.htm");
}
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>
Verfasst: 12.03.2004 18:29
von Wuppi
Hi
habs gerade hinbekommen ... ich bin deiner empfehlung gefolgt und hab das isset entfernt => am ende kommt ja noch nen else wo das menu eh aufgerufen wird. Jetzt klappt es;)
$menu wurde gefüllt durch "menu" und $menu war auch die erste if-Abfrage die dann natürlich erfolgreich war ...
Thx für die hilfe
Wuppi
Verfasst: 12.03.2004 21:33
von Pyramide
Alternativ gibts auch [php:switch]:
Code: Alles auswählen
switch($_GET['foo']) {
case 'hallo': include('foo.php'); break;
case 'irgendwas': include('lalala.php'); break;
default: include('standard.php'); break;
}