"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

php $_get

11Fire01 07.06.2013 - 12:10 1894 5
Posts

11Fire01

Here to stay
Registered: Dec 2002
Location: austria
Posts: 2417
in diese superglobalen variable kommen die url elemente hinein.

nun habe ich eine datei in der links (ala <a href bla bla >;) sind mit homepage?page=xy. davon gibt es mehrere mit unterschiedlichen verlinkungen.

jetzt habe ich da ein script:

Code: PHP
$get_page = "";
if(isset($_GET['page']))
	$get_page = $_GET['page'];
else
	error_show('no_page');

das so aussieht. der inhalt der seite wird erst danach mit funktionen aus anderen scripts hinzugefügt zum html gerüst.

soweit ich das gesehen habe gibt es keine verlinkung zu der datei mit den links.

woher weiß $_GET davon :confused:

kleinerChemiker

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4282
huh? ich verstehe die frage wohl nicht ganz.

Du mußt natürlich die Seite mit"?page=xy" aufrufen, damit du $_GET['page']=xy hast, also auf den Link klicken.

Obermotz

Fünfzylindernazi
Avatar
Registered: Nov 2002
Location: OÖ/RI
Posts: 5262
Ein eindeutigerer Threadtitel und eine überlegtere Beschreibung des Problems würde es uns vermutlich leichter machen, dir zu helfen.
Wenn du php lernen willst, besuch: http://tut.php-quake.net/de/

Zu deinem Problem, eine mögliche Interpretation meinerseits:

Code: PHP
if(isset($_GET['page']))
{
  $get_page = $_GET['page'];
  switch($get_page) {
    case 'xy':
      render seite 1
      break;
    case 'yz':
      render seite 2
      break;
    default:
      render default seite
  }
}
else
 render 404 oder redirect default seite..
Bearbeitet von Obermotz am 07.06.2013, 14:07

11Fire01

Here to stay
Registered: Dec 2002
Location: austria
Posts: 2417
Code: PHP
<?php
#----------------------------------
# Includes:
include_once("linkweb_templates.php");
include_once("linkweb_errors.php");

#------------------------------------
# Inhalt seitenabhängig einlesen:
# das einzige script das im browser aufgerufen wird!
# im gegensatz zu modulscripts wird der code direkt ausgeführt
$get_page = "";
if(isset($_GET['page']))
	$get_page = $_GET['page'];
else
	error_show('no_page');
$page = template_use("standard");
$page = template_set_var($page, "content", file_get_contents($content_files[$get_page]));
$title = template_get_title($page);
$page = template_set_var($page, "title", $title);
template_show($page);
?> 

dieses script ist aus professionelle websites (kapitel 12.2.5) - stefan irgendwas. es ließt alles ein und ersetzt gegebenenfalls die lückenfüller.

nun habe ich noch eine datei mit:

<a class="navi" href="linkweb.php?page=home">
HOME</a>
<a class="navi" href="linkweb.php?page=impressum">
Impressum</a>
<a class="navi" href="linkweb.php?page=themen">
Themen</a>
<a class="navi" href="linkweb.php?page=foren">
Foren</a>
<a class="navi" href="linkweb.php?page=literatur">
Literatur</a>

woher $_GET beim anklicken wohl seine elemente nimmt. diese datei wird jedoch nirgendwo eingebunden als variable. es funktioniert jedoch (liegt im selben ordner wie alle anderen php dateien, bzw inhaltsdateien).

woher hat $_GET beim ersten aufruf das wissen über "page=home"? wenn man dem script ablauf folgt wird das erste mal die seite nach isset erstellt.
somit kann es doch gar nicht wissen welcher inhalt geladen gehört.

wenns noch konkreter sein muss, dann muss ich alles zusammenkratzen :-(

kleinerChemiker

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4282
Zitat von 11Fire01
Code: PHP
<?php
#----------------------------------
# Includes:
include_once("linkweb_templates.php");
include_once("linkweb_errors.php");

#------------------------------------
# Inhalt seitenabhängig einlesen:
# das einzige script das im browser aufgerufen wird!
# im gegensatz zu modulscripts wird der code direkt ausgeführt
$get_page = "";
if(isset($_GET['page']))
	$get_page = $_GET['page'];
else
	error_show('no_page');
$page = template_use("standard");
$page = template_set_var($page, "content", file_get_contents($content_files[$get_page]));
$title = template_get_title($page);
$page = template_set_var($page, "title", $title);
template_show($page);
?> 

dieses script ist aus professionelle websites (kapitel 12.2.5) - stefan irgendwas. es ließt alles ein und ersetzt gegebenenfalls die lückenfüller.

nun habe ich noch eine datei mit:

<a class="navi" href="linkweb.php?page=home">
HOME</a>
<a class="navi" href="linkweb.php?page=impressum">
Impressum</a>
<a class="navi" href="linkweb.php?page=themen">
Themen</a>
<a class="navi" href="linkweb.php?page=foren">
Foren</a>
<a class="navi" href="linkweb.php?page=literatur">
Literatur</a>

woher $_GET beim anklicken wohl seine elemente nimmt. diese datei wird jedoch nirgendwo eingebunden als variable. es funktioniert jedoch (liegt im selben ordner wie alle anderen php dateien, bzw inhaltsdateien).

Du rufst ja die Seite "linkweb.php?page=home" auf und der Server/PHP weiß schließlich, welche Seite du aufrufst.

Zitat von 11Fire01
woher hat $_GET beim ersten aufruf das wissen über "page=home"? wenn man dem script ablauf folgt wird das erste mal die seite nach isset erstellt.
somit kann es doch gar nicht wissen welcher inhalt geladen gehört.

wenns noch konkreter sein muss, dann muss ich alles zusammenkratzen :-(

keine Ahnung, geht aus dem Skript nicht hervor. Sollte eventuell auch eher so sein:

Code: PHP
if(isset($_GET['page']))
	$get_page = $_GET['page'];
else
	$get_page = 'home';

11Fire01

Here to stay
Registered: Dec 2002
Location: austria
Posts: 2417
ich rufe /linkweb.php auf in meinen Browser.

werde selber eines schreiben, dann sehe ichs wohl besser.
ich denke nur so ungern :D
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz