PHP Include und $_GET - Variable kommt nicht an

M

Mr. Snoot

Gast
Hü,

ich habe eine Seite main.php, diese ist das "Herzstück" der Webseite und wird Browser aufgerufen wird. An der URL können verschiedene Parameter angehängt sein (main.php?order=xyz).

In diese main.php werden per include(); andere PHP-Scripte eingebunden: top.php, sub.php, bottom.php.

seite.png

In sub.php will ich jetzt die Parameter von main.php per $_GET bekommen. Aber es klappt nicht, $_GET['order'] ist immer leer. Andererseits klappt $_GET['order'] in top.php einwandfrei.

Ich hab's tausend Mal überprüft, es sind keine Schreibfehler o.ä.; wenn ich per cut'n paste funktionierenden Code aus der main.php in die sub.php verschiebe, kann ich die Variable nicht mehr auslesen.


Google hat mir schon ausgespuckt, dass sowas nicht geht
Code:
<?php
  include("main.php?order=xyz");
?>
aber das will ich ja auch gar nicht.


Vermutlich ist's, wie so oft, nur ein kleiner blöder Fehler. Aber ich sehe nicht, woran es scheitern könnte. Hilfe :heul: :)
 
Mal versucht am anfang der main.php die Variable aus $_GET[] in eine normale (z.B. $order) zu schreiben und diese in sub.php zu benutzen?
 
Was erhoffst du dir denn von der GET Variablen?
Was möchtest Du in der Bedingung tun?
Woher kommt die GET Variable? Werden daran Buttons übergeben, oder die namen der include Dateien?

Mehr Info bitte... ;)

Benutzt Du sessions?
 
@ fi.sh: Ja, ohne Erfolg

@ Riker: Sessions benutze ich nicht. Die Parameter werden einfach durch Links übergeben:
HTML:
<a href="main.php?order=xyz">Tolle Seite</a>
<a href="main.php?order=abc">Blöde Seite</a>
...
..
.
Und die jew. Seite will ich jetzt in sub.php ermitteln:
PHP:
if($_GET['order'] == "xyz")
{
  echo "jetzt bin ich auf der tollen Seite";
}
elseif($_GET['order'] == "abc")
{
  echo "jetzt bin ich auf der blöden Seite";
}
...
..
.
 
steht denn in top, sub und bottom das gleiche?

oder willst du mir mit dem uml klarmachen, dass es sozusagen 1 seite aus 3 teilstücken wird? oder wie soll ich das da verstehen?
 
@ PW-toXic: es sind ca. 500 Zeilen Code, also doch ein wenig mehr ;)

@ Riker: nein, die Seiten sind alle unterschiedlich. main.php ist wie gesagt der Hauptteil mit Inhalt, top/sub/bottom sind Bereiche der Seite, die immer identisch bleiben. Also eine aus 4 Teilen zusammengesetzte Seite.

Habe den Fehler aber jetzt gefunden. Das include() für sub.php war mit absolutem Pfad angegeben - kA wieso, hat mich aber offenbar bisher nicht weiter gestört. Aber genau daran ist es gescheitert: relativer Pfad und es läuft.


Also vielen Dank für die Mühe, die ich gemacht habe :)
 
Hi mr. Snoot,
Edit:
Wie ich doch in diesem Forum die [gelöst]-Buttons vermisse :( ;)


Ich hoffe ich hab deine Struktur richtig verstanden:
main.php
PHP:
<?php
include("top.php");
include("sub.php");
include("bottom.php");
?>
top.php
PHP:
<html>
	<head>
	</head>
	<body>
sub.php
PHP:
<?php
if(!isset($_GET["order"])) {
	echo 'Hänge an den Pfad oben in der Zeile folgendes dran: <br>
			entweder 1.) ?order=abc oder 2.) ?oder=xyz<br>';
} else {

	switch($_GET["order"]) {
		case abc:
		echo 'Order ist auf abc gesetzt';
		break;
		case xyz:
		echo 'Order ist auf xyz gesetzt';
		break;
		default:
		echo 'Order ist gesetzt, hat aber weder den Wert abc noch xyz';
		break;
	}

}
?>
bottom.php
PHP:
	</body>
</html>

So funktioniert es Problemlos. Der Fehler muss also in deinem restlichen Code liegen.
Und um den zu finden, müssten wir wohl den Code kennen.

Edit:
Wie ich doch in diesem Forum die [gelöst]-Buttons vermisse :( ;)


Mfg, Michi.
 
Zuletzt bearbeitet:

Ähnliche Themen

Zurück
Oben