Navigation über PHP statt iframe

Kracky

Mitglied
Hallo ^^ ich bins wieder "der neue"

Ich erklär am besten erstmal kurz den Aufbau:

Es gibt eine Index.php in dieser befinden sich die div's mit denen die Seite strukturiert ist.
Es gibt eine navigation.php in der die Links definiert sind.
Die navigation.php habe ich mit include in die index.php eingebunden.
Desweiteren hat die index seite noch einen Content Bereich.

Früher habe ich es immer über eine iFrame realisiert das die Links es entsprechend in der iframe geöffnet haben.

Jetzt möchte ich es aber so realisieren das PHP den inhalt je nach Link im Content ändert.

Ich könnte mir da etwas mit if vorstellen und include, so nach dem Schema
Wenn der link angeklickt wird öffne dieses oder jenes File.

Jetzt weiß ich aber auch nicht so genau wie ich die "if" bedingung in dem sinne definiere und außerdem wäre das ja dann für jeden Link eine eigene if bedingung.

Hat das jetzt jemand verstanden?!

Jedenfalls sollte dann z.B. wenn man Forum anklickt oben erscheinen "index.php?id=forum" oder sowas in der Art ^^

Bitte schlagt mich nicht für mein unwissen ich bin gerade am lernen ^^

Den ganzen Infos aus google kann ich schon einige nützliche Infos entnehmen stoße aber nie auf das was mich gerade betrifft

Edit: Zum thema GET finde ich immer nur methoden es über ein Formular zu senden also <form method="get">
 
Zuletzt bearbeitet:
Hi Kracky

Alle Infos die du als Link mitlieferst kommt mit GET

Etwa so könnte dein index.php aussehen
PHP:
<?php

//Links definieren. Die Keys des Array verwenden wir als id
$sites['home'] 	 = array('title' => 'Home', 	'link' => 'home.html';
$sites['seite1'] = array('title' => 'Seite 1', 	'link' => '/seiten/seite1.html';
$sites['seite2'] = array('title' => 'seite 2', 	'link' => '/seiten/seite2.html';
// Links ausgeben
foreach($sites as $key => $site){
	echo "<a href='?id={$key}'>{$site['title']}</a><br />\n";
}

//GET auswerten
//Prüfen ob eine ID übergeben wurde
if(isset($_GET['id'])){
	$id =$_GET['id']
}else{
	//Es wurde keine ID mitgegeben - Wir setzen einen Standart
	$id = 'home';	
}
//prüfen ob die ID vorhanden ist
if(array_key_exists($id, $sites)){
	//Seite einbinden
	include($sites[$id]['link']);
}else{
	//Bei ungültiger ID einen Text ausgeben
	echo "Keine Seite zur ID {$id} gefunden";
}
?>
 
Zuletzt bearbeitet:
Habe mir das Tutorial von PHP-Einfach.de angeschaut und durchgearbeitet das ist zum größten teil gut erklärt und hilft einem echt gut einzusteigen.

Allerdings fehlen mir wichtige Grundinformationen wofür eine Funktion jetzt genau da ist.
Meistens hilft da php.net.

Aber was GET angeht bin ich doch irgendwie noch nicht so ganz dahinter gestiegen ^^

Trozdem danke für die Information ich werd das Tutorial da auch nochmal abarbeiten ^^
 
GET ist ganz einfach. GET-Variablen kennst Du von anderen Links, denn sie werden sichtbar an die url angehängt, siehe zB google-Suchmaschine. Der Name der Get-Variable ist fast frei wählbar, ein Beispiel:

Code:
www.webname.de/test.php?name=chmee

Jene Variablen werden an die eigentliche url mit einem ? angehängt, sollen es mehrere sein, so kommt immer ein & dazwischen.

Code:
www.webname.de/test.php?name=chmee&alter=37

in jener php-Datei (hier test.php) kann ich jene Daten mittels $_GET entgegennehmen.
PHP:
$name = $_GET['name'];
$alter = $_GET['alter'];
echo "Ich heiße ".$name." und bin ".$alter." Jahre alt.";

Das ist letztlich alles, was GET macht. Was damit passieren soll, ist der Phantasie des Programmierers überlassen. Die simpelste Form, ein Inhaltsaufruf über GET zu realisieren wäre, mit if() auszuwählen, was angezeigt werden soll und jenes via include() einzubinden.

Code:
www.webname.de/index.php?zeige=news
PHP:
$menu = $_GET['zeige'];

if($menu == "news")
{
   include "news.html";
}

if($menu == "kontakt")
{
   include "kontakt.html";
}

mfg chmee
 
Zuletzt bearbeitet:
Ich würde jetzt gerne eine Überprüfung von einem Regestrierungsscript machen

Dazu habe ich jetzt einfach mal folgendes geschrieben:

PHP:
<?php
$check = array(
	'register'	=>	'register.php',
	'check'		=>	'check_register.php');

include ("$check[$_GET['register']]");

if(!isset($_GET['check'], $check[$_GET['check']]))
	{
	include("$check[$_GET['check']]");
	}
else
	{
	include("$check['register']");
	}
?>

jetzt sagt er mir aber irgendwie immer

Parse error: syntax error, unexpected '[', expecting ']' in F:\xampp\htdocs\register.php on line 6

Ich habe jetzt irgendwie die vermutung das ich vieleicht etwas in der formatierung falsch gemacht habe?

Oder ist der Code irgendwie komplett falsch? xD

Ich denke mal die Aufgabe ist klar ^^ Er soll halt das Regestrierungsformular anzeigen und wenn es ausgefüllt wurde und gesendet wurde dann mit action="?check"

Das ganz normale Script zum eintragen in die mysql tabelle ausführen
 
Zuletzt bearbeitet:
Wenn du das Registrierungsformular über POST abschickst, kannst du es so abfragen

PHP:
if(isset($_POST['formularsubmit']) && !empty($_POST['formularsubmit']))
{
   //do it!
}

Wenn du dein Formular über GET abschickst, was in vielen Fällen unsicher ist, dann kannst du das gleiche mit GET machen!


Theoretisch brauchst du nur eine Datei: register.php
Du kannst es einfach so machen...
PHP:
if(isset($_POST['formularsubmit']) && !empty($_POST['formularsubmit']))
{
   //do it!
} else {
   echo "<form name=\"formular\" method=\"post\" action=\"index.php?page=register\">";
       //formularinhalte...
   echo "</form>";
}
 
Zuletzt bearbeitet:
dann müsste ich das das script aber wieder in eine externe datei auslagern oder was schreibe ich in <form action="****?">?
 
Zurück