SetaPDF
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 05.09.2002, 22:48   #1
TP-Member
 
Benutzerbild von Rabauke
 
Registriert seit: May 2001
Ort: mir raus.
Rabauke macht alles soweit korrekt

Menü mit PHP? Anfängerfrage...


Hallo Traumprojektler,

also, folgendes: Ich sehe oft das auf einer Homepage die einzelnen Sections mit folgendem Link aufgerufen werden: www.besipiel.de/index.php?section=test (Oder so ähnlich) ... Ich bin noch ein ziemlicher PHP-Anfänger, aber ich schliesse daraus, da die Varialble Section ja nun den Wert "Test" hat, das die Variable nun mit einer If-Funktion ausgwertet wird und nun entweder extern (mit "includen" oder so ) oder im gleichen Dokument (index.php) nun der Quelltext für die Section aufgerufen wird. Ist das so richtig, und wenn ja hat da mal jemand ein Quelltext-Beispiel? Auch wenn nein, hat da mal jemand ein Beispiel ?

Danke für die Hilfe, Coppola
__________________
Liebe Grüsse, Rabauke

Das Herz des Traum-Projekt
Und hier die Leber
Rabauke ist offline   Mit Zitat antworten


Alt 05.09.2002, 23:20   #2
TP-Insider
 
Benutzerbild von NeTHippie
 
Registriert seit: Feb 2001
Ort: Rand-Berlin
NeTHippie macht alles soweit korrekt
ich werde dir mal versuchen, das zu erklären:
PHP-Code:
<html>gedöns
<head>
<
body>
// Links-Menü

<table>
<
tr><td// Menü-steuerung
<a href="index.php?content=menu1">punkt1</a><br>
<
a href="index.php?content=menu2">punkt2</a><br>
// damit sagst du php, beim ersten Link soll er Punkt1 includen usw. , Variable content wird beim Klick auf Link übergeben


<td// Linkes Menü ENDE
</tr>
<
td// Inhalt -Beginn

switch($_GET[content]) // $_GET wir in neueren PHP-Versionen zur Übergabe verwendet  ,Syntax: $_GET[variable--ohne $]
{
case 
"menu1"         : include("menu1.inc.php");break;
case 
"menu2"        : include("menu2.inc.php");break;
default                   : include (
"default.inc.php");
}
// Inhalt -Ende
</td>
</
tr>
</
table>
?>

<html-gedöns aus> 
ich hoffe, dass hilft dir erst einmal mit dem Includen von anderen Dateien
NeTHippie ist offline   Mit Zitat antworten
Alt 05.09.2002, 23:55   #3
TP-Veteran
 
Benutzerbild von holunda
 
Registriert seit: Oct 2001
Ort: Oberau
holunda macht alles soweit korrekt
oder so:

PHP-Code:
<table>
<
tr>
  <
td><a href="index.php?page=seite1">Seite 1</a><br><a href="index.php?page=seite2">Seite 2</a></td>
  <
td>

if (!
$page){
     
$page "start.php" // wenn $page noch keine wer hat dann = start.php
} else {
$page $page.".php"// Endung .php an den wert anhängen
}
include (
$page); // dann holt man sich den Content herein.

</td>
</
tr>
</
table
Kurze Erläuterung:
erstelle eine page index.php. SChreibe diesen Code rein. Dann benötigst du noch eine start.php, eine seite1.php und eine seite2.php. Das kannst du dann natürlich erweitern.

bin selbst nicht so der PHP Checker, aber das funzt bei mir.

Alexander
__________________
Gruß vom holu
holunda ist offline   Mit Zitat antworten
Alt 12.09.2002, 23:27   #4
TP-Insider
 
Benutzerbild von NeTHippie
 
Registriert seit: Feb 2001
Ort: Rand-Berlin
NeTHippie macht alles soweit korrekt
huhu Coppelius, mich würde interessieren, welche Variante du jetzt bevorzugst ?
NeTHippie ist offline   Mit Zitat antworten
Alt 13.09.2002, 15:08   #5
TP-Member
 
Benutzerbild von Rabauke
 
Registriert seit: May 2001
Ort: mir raus.
Rabauke macht alles soweit korrekt
Zitat:
Original geschrieben von NeTHippie
huhu Coppelius, mich würde interessieren, welche Variante du jetzt bevorzugst ?
Also erstmal nochmal danke, an euch beide. Ich hab die Scripts verstanden, das von Holunder jedoch erst nach ein bischen Rätselraten. :P
Ich habe aber deins benutzt NeTHippie, weil das auch mein Ursprungs-Gedanke war.

Coppelius!
__________________
Liebe Grüsse, Rabauke

Das Herz des Traum-Projekt
Und hier die Leber
Rabauke ist offline   Mit Zitat antworten
Alt 13.09.2002, 15:12   #6
TP-Veteran
 
Benutzerbild von holunda
 
Registriert seit: Oct 2001
Ort: Oberau
holunda macht alles soweit korrekt
stimmt, jetzt wo dus sagst hab ich deine Frage falsch verstanden, aber im Prinzip isses ja das gleiche

Gruß Alexander
PS: Es heißt holundA
__________________
Gruß vom holu
holunda ist offline   Mit Zitat antworten
Alt 22.10.2002, 08:47   #7
TP-Specialist
 
Benutzerbild von Paco
 
Registriert seit: Sep 2001
Ort: Rhein-Main
Paco macht sich hier sehr viel Mühe
Zitat:
Original geschrieben von NeTHippie
ich werde dir mal versuchen, das zu erklären:
PHP-Code:
<html>gedöns
<head>
<
body>
// Links-Menü

<table>
<
tr><td// Menü-steuerung
<a href="index.php?content=menu1">punkt1</a><br>
<
a href="index.php?content=menu2">punkt2</a><br>
// damit sagst du php, beim ersten Link soll er Punkt1 includen usw. , Variable content wird beim Klick auf Link übergeben


<td// Linkes Menü ENDE
</tr>
<
td// Inhalt -Beginn

switch($_GET[content]) // $_GET wir in neueren PHP-Versionen zur Übergabe verwendet  ,Syntax: $_GET[variable--ohne $]
{
case 
"menu1"         : include("menu1.inc.php");break;
case 
"menu2"        : include("menu2.inc.php");break;
default                   : include (
"default.inc.php");
}
// Inhalt -Ende
</td>
</
tr>
</
table>
?>

<html-gedöns aus> 
ich hoffe, dass hilft dir erst einmal mit dem Includen von anderen Dateien


auch wenn ich hier alte Themen aufwühle - aber ich würde gerne den Sinn verstehen. was ist content und was ist hier die Menüführung? Kann das einer mit einfachen Worten erklären?
Paco ist offline   Mit Zitat antworten
Alt 22.10.2002, 10:50   #8
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
siehst du, doch bei uns gelandet

deiner frage nach zu schliessen, denke ich, du hast mit php nit viel am hut.

also eigentlich ist das script gut beschrieben hier nochmal im einzelnen
PHP-Code:
// Links-Menü

<table>
<
tr><td// Menü-steuerung
<a href="index.php?content=menu1">punkt1</a><br>
<
a href="index.php?content=menu2">punkt2</a><br>
// damit sagst du php, beim ersten Link soll er Punkt1 includen usw. , Variable content wird beim Klick auf Link übergeben 
das ist dein menü - fesch verpackt in tabellen. Das wichtige daran ist der teil '?content=menu2' -> hier teilst du dem webserver mit,
dass im aufgerufenen file (index.php) eine variable content vorhanden ist und den wert 'menu2' hat. ansprechen tust du das ganze in neuPHP mit $_GET[variablenname].
willst du jetzt weitere links einbauen kopierst du nur einen bestehenden und gibst dem content einen neuen eindeutigen wert
Code:
<a href="index.php?content=menu3">punkt3</a><br>
zu 'deinem' problem mit dem highlighting komm ich später.

der main-teil:

PHP-Code:
</tr>
<
td// Inhalt -Beginn

switch($_GET[content]) // $_GET wir in neueren PHP-Versionen zur Übergabe verwendet  ,Syntax: $_GET[variable--ohne $]
{
case 
"menu1"         : include("menu1.inc.php");break;
case 
"menu2"        : include("menu2.inc.php");break;
default                   : include (
"default.inc.php");
}
// Inhalt -Ende
</td>
</
tr
mittels des multi-verzweigungsbefehls switch wird die von uns übergebene variable 'content' abgefragt und je nach enthaltenem wert auf den gewünschten content verwiesen.
zum verständnis:

PHP-Code:
switch(variablenname)
{
variablenwert1:
machwas
break;

variablenwert2:
machwas
break;

default:
wenn nichts passt mach das

willst du jetzt den link von oben miteinbauen, dann reicht

menu3:
machwas
break;

in den switch einzubauen.

noch ein wort zu 'machwas'

hier kannst du gott und die welt reinstellen.
am einfachsten - so wie im script gemacht - baust du dir für die verschiedenen unterpunkte jeweils ein eigenes file in das du dann sämtliche dinge reinpackst, die zwischen dem '<td></td>' stehen sollen.
alternativ kannst du weiteren code, html oder nix einbauen.
letzteres macht aber keinen sinn

break: ist wichtig und bedeutet: raus mit dir. hast du kein break, so wird der nachfolgende teil des switch beinhart ausgeführt. kann in manchen fällen sinnvoll eingesetzt werden, in der regel ist aber das break zwingend um die logik zu wahren.

so. war ein bissl ausladend. aber ich hoffe, du verstehtst jetzt den ablauf.

zurück zu deinem problem mit dem highlighting.

PHP-Code:
<tr><td// Menü-steuerung
<a href="index.php?content=menu1">punkt1</a><br>
<
a href="index.php?content=menu2">punkt2</a><br>
// damit sagst du php, beim ersten Link soll er Punkt1 includen usw. , Variable content wird beim Klick auf Link übergeben 
dieser code steht ebenfalls in der index.php und durch den link wird dieselbe datei immerwieder aufgerufen.
somit weisst du durch die variable content auch, welche seite gerade aktiv ist.

well. was geniales fällt mir grad nit ein, aber du musst im prinzip entscheiden, der aktuellen seite einen anderen style zuzuweisen. das machst du in einer bedingung und zwar für jeden link:

PHP-Code:
<tr><td> // Menü-steuerung
<?

$class
= ($_GET[content]=='menu1')?"class=\"highlighting\":"";
echo "
<a $class href="index.php?content=menu1\">punkt1</a><br>";
$class= ($_GET[content]=='menu2')?"class=\"highlighting\":"";
echo "
<a $class href="index.php?content=menu2\">punkt2</a><br>";
...
?>
Code:
$class= ($_GET[content]=='menu1')?"class=\"highlighting\":"";
sagt nix anderes als, dass - wenn content=menu1 ist - der variable $class der wert class="highlighting" zugewiesen wird. wenn nicht, dann bleibt $class leer. wichtig dabei ist das ausquoten (\) der anfürhrungszeichen auch im link. sonst funzt es nicht da " <- steuerzeichen.
Code:
<a $class href="index.php?content=menu2">punkt2</a>
füllt dann die klassenbeschreibung an der position von $class ein.

hast du auch eine defaultklasse für deine links, dann musst du dein if ein bissl abwandeln:
Code:
$class= ($_GET[content]=='menu1')?"class=\"highlighting\":"class=\"defaultclass\"";
hoffe ich hab alle klarheiten ausgeräumt...
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Alt 22.10.2002, 10:55   #9
TP-Member
 
Registriert seit: Jun 2002
matuk macht alles soweit korrekt
@HOLUNDA:

PHP-Code:
<table>
<
tr>
  <
td><a href="index.php?page=seite1">Seite 1</a><br><a href="index.php?page=seite2">Seite 2</a></td>
  <
td>

if (!
$page){
     
$page "start.php" // wenn $page noch keine wer hat dann = start.php
} else {
$page $page.".php"// Endung .php an den wert anhängen
}
include (
$page); // dann holt man sich den Content herein.

</td>
</
tr>
</
table
Was ist aber wenn jemand zum Beispiel in der Adressleiste eingibt:

index.php?page=http://www.seinedomain.de/seinscript

Dann includet der ohne Probleme ein bösartiges Skript und kann eine Menge arbeit verursachen / zerstören.
matuk ist offline   Mit Zitat antworten
Alt 22.10.2002, 11:28   #10
TP-Moderator
 
Benutzerbild von Stuck Mojo
 
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
Stuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKE
Das ist tatsächlich so!!! Wenn auf dem fremden Server das Parsen von .php-Dateien ausgeschaltet ist, kann man tatsächlich ohne Probs sein "böses" Script includen und damit ganz schön böses Zeuchs anstellen ...tsts... ansowas denkt man tatsächlich nicht so schnell Aber es ist tatsächlich so. Ich habs eben auch nochmal ausprobiert. Im Glücksfall ist vielleicht das includen von http-Adressen verboten (wie auf meiner Windows-Kiste) und es klappt nicht... aber auf meinem Linux-Rechner funzt es echt "super" ...

Gruss Jan
Stuck Mojo ist offline   Mit Zitat antworten
Alt 22.10.2002, 12:32   #11
TP-Specialist
 
Benutzerbild von Paco
 
Registriert seit: Sep 2001
Ort: Rhein-Main
Paco macht sich hier sehr viel Mühe
@longfang

ooohhhhh Jesus , Maria und Josef...
Wenn ich jetzt sagen würde das ich es eigentlich doch nicht verstanden habe, tut es mir in der Seele weh, da du dir hier eine Menge Mühe für mich gemacht hast.
Vielleicht muss ich auch noch 23 mal durchlesen, bis ich wirklich alles verstanden habe. Teiel verstehe ich ja, jedoch nicht als Gesamtpaket.
Aber deine Kombinationsgabe ist verblüffend, da du eigentlich gleich wußtest worauf ich hinaus möchte.

Also ich erkläre mal kurz was ich machen möchte und du sagst mir ob ich das mit deinen Erklärungen verwirklichen kann?

Ich habe eine seite, die besteht auf mehreren tabellen - links Menü, mitte hauptteil, rechts statistiken, bilder bla,bla, bla....
okay, aber alles in einer Seite. um mit dem Menü und Bildern später immer flexibel zu bleiben include ich diese aus einer Datei heraus.

Was ich gerne möchte ist ein menü mit php, das auch bei gewissen Punkten ein Untermenü mit z.B. 3 weiteren Punkten aufklappt. Will aber kein javascript, sollte schon php sein.
naja, und dann halt das mit dem highlighting, damit der user sieht wo er sich immer momentan befindet.

Also wie stehen meine Chancen dies umzusetzen mit deinen ausführlichen Erklärungen? Soll ich mir das so lange reinpfeifen bis ich es schnalle? Wenn ich dadurch mein Ziele erreiche mache ich das auch!
Paco ist offline   Mit Zitat antworten
Alt 22.10.2002, 13:01   #12
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
Zitat:
Aber deine Kombinationsgabe ist verblüffend, da du eigentlich gleich wußtest worauf ich hinaus möchte.
na - soweit is es dann auch wieder nicht her- schliesslich hab ich 'da drüben' bei den puristen auch mitgepostet

zum code:
wenn du ein einstufiges menü aufbauen willst, dann kommst du eigentlich ganz gut mir der beschreibung durch.
dort wo du varianz haben willst, musst du den switch einbauen und die passenden dateien je nach menüpunkt includen.

mehrstufiges menü wird da schon more tricky, da du es ja aufklappen willst und somit dem script mitteilen musst auf welcher ebene es sich gerade befindet.
= noch eine var mitübergeben.

ich würd mal sagen, du baust einmal das grundgerüst deiner seite mit den positionen vom menü, content, bilder und dann dynamisieren wir das ganze mit entsprechenden includes.

wennst willst, können wir das auch als workshop tarnen.
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Alt 22.10.2002, 14:00   #13
TP-Specialist
 
Benutzerbild von Paco
 
Registriert seit: Sep 2001
Ort: Rhein-Main
Paco macht sich hier sehr viel Mühe
@ longfang - das Grundgerüst und die images und pipapo steht schon alles. habe auch schon alles images, menü etc. entsprechend via php included.

Deswegen verstehe ich einfach den Sinn nicht in den ganzen Programmierungscode. ich habe immer nur den include Befehl eingegeben - was das jetzt noch mit content und so besser ist - habe ich null Ahnung!
Aber ich denke es kann nur gut sein - aber der genau Sinn, Hintergrund warum das so gemacht wird und nicht nur einfach der include-Befehl, - das weiß ich nicht!

Workshop? Wie meinst du das?
Paco ist offline   Mit Zitat antworten
Alt 22.10.2002, 14:27   #14
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
also: seite fertig - nur nix dynamisch geht. richtig?

well - workshop wär im prinzip sowas wie der funktionen-workshop mit dem thema 'aufbau einer seitenstruktur mit einem dynamischen menü' oder so...
dannach sollte der geneigte teilnehmer sich ein bissl besser in der thematik auskennen.
als grundlage könnten wir dann deine seite nehmen.
voraussetzung dafür: dein einverständnis und allgemeinses interesse.

wenn nicht, dann meld dich via pm und wir schauen, wie wir das hinbekommen - falls es dich interessiert.
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Alt 22.10.2002, 16:01   #15
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
@paco:
hab kurz mal gebastelt:
sowas in der richtung brauchst du, richtig?
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Menü mit PHP? Anfängerfrage... Menü mit PHP? Anfängerfrage...
« PHP Variable an JS übergeben, die [] stören aber das ganze, wie denn????? | Text im echo mit FONT oder mit CSS formatieren »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten: