PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Linkproblem aus Unterordner


midgard
02.10.2005, 23:16:26
Hallo,

habe in der index.php folgendes Switch:

$inc=@$_GET['main'];
switch ($inc) {
case 'was_war': include_once('was_war.php'); break;
case 'guestbook': include_once('guestbook.php'); break;
case 'kontakt': include_once('kontakt.php'); break;
case 'links': include_once('links.php'); break;
case 'home': include_once('home.php'); break;
case 'impressum': include_once('impressum.php'); break;

};

echo"<a href='?main=was_war'>Waswar</a>";
echo"<a href='?main=guestbook'>G&auml;stebuch</a>";
echo"<a href='?main=kontakt'>Kontakt</a>";
echo"<a href='?main=links'>Links</a>";
echo"<a href='?main=home'>Home</a>";


In der datei was_war.php habe ich auf eine Seite verlinkt,
die im Unterordner "gallery" liegt. Dieser Link soll einen Ordner mit Partyfotos öffnen
und anzeigen. Leider funkt das nicht, es wird aber auch mit "error_reporting(E_ALL);"
kein Fehler ausgegeben.

so sieht mein Link aus:


$inc=@$_GET['main'];
switch ($inc) {
case '250102': include_once('gallery/gall_create.php?pfad=250102'); break;
};

echo"<a href='?main=250102/'>Hier</a> gehts zu den Bildern unserer Party vom 25.01.2002<br>";

Hab schon es auch schon mit index.php?main=250102 versucht - vergeblich.

Um es nochmal genau zu sagen, mein Ziel ist:

Nach klick in der "index.php" auf "Was war", den Link aus "Was war" angezeigt zu bekommen,
und nach Klick auf diesen Link die entsprechenden Fotos aus dem Ordner "250102".

Was hab ich falsch gemacht bzw. fehlt noch?

Danke für jede Hilfe!!!

Gruss

xabbuh
03.10.2005, 00:24:05
Wenn du eine Datei mit include() / require() einbindest, darfst du hier keine Parameter anhängen. Es muss also so aussehen:

<?php
include_once('gallery/gall_create.php');
?>

midgard
03.10.2005, 22:11:27
@ xabbuh

hallo,

aber ich muss ja irgendwie den Ordner übergeben. Wie kann ich das denn realisieren ?

xabbuh
03.10.2005, 22:25:41
Entweder übergibst du den Pfad direkt als URL-Parameter an index.php, so dass du weiterhin mit $_GET['path'] in gall_create.php arbeiten kannst oder du definierst den Pfad in der index.php und greifst dann in gall_create.php nicht mehr auf $_GET['path'] sondern $path zu.

midgard
03.10.2005, 22:44:08
Entweder übergibst du den Pfad direkt als URL-Parameter an index.php, so dass du weiterhin mit $_GET['path'] in gall_create.php arbeiten kannst

habe ich auch schon versucht, funkte aber nicht. Werde jetzt mal Deine 2. Möglichkeit testen.

midgard
05.10.2005, 00:18:46
Hallo,
@xabbuh
Entweder übergibst du den Pfad direkt als URL-Parameter an index.php, so dass du weiterhin mit $_GET['path'] in gall_create.php arbeiten kannst oder du definierst den Pfad in der index.php und greifst dann in gall_create.php nicht mehr auf $_GET['path'] sondern $path zu.
funzte auch nicht.

habe in der index.php folgendes Switch:

$inc=@$_GET['main'];
switch ($inc) {
case 'was_war': include_once('was_war.php'); break;
case 'guestbook': include_once('guestbook.php'); break;
case 'kontakt': include_once('kontakt.php'); break;
case 'links': include_once('links.php'); break;
case 'home': include_once('home.php'); break;
case 'impressum': include_once('impressum.php'); break;

};

echo"<a href='?main=was_war'>Waswar</a>";
echo"<a href='?main=guestbook'>G&auml;stebuch</a>";
echo"<a href='?main=kontakt'>Kontakt</a>";
echo"<a href='?main=links'>Links</a>";
echo"<a href='?main=home'>Home</a>";



In der datei was_war.php habe ich auf eine Seite verlinkt,
die im Unterordner "gallery" liegt. Dieser Link soll einen Ordner mit Partyfotos öffnen
und anzeigen. Leider funzt das nach der Änderung(siehe unten) auch nicht, die was_war.php wird nur neu geladen. Langsam verzweifel ich.

was_war.php:

switch ($_GET['sub']){
case '250102': include_once('gallery/gall_create.php?pfad=250102/'); break;
};
echo"<a href='?main=was_war&sub=250102/'>Hier</a> gehts zu den Bildern unserer Party vom 25.01.2002";


Was ist falsch bzw. fehlt?

Danke und Gruss

xabbuh
05.10.2005, 21:14:45
was_war.php:

switch ($_GET['sub']){
case '250102': include_once('gallery/gall_create.php?pfad=250102/'); break;
};

Du darfst auch hier keine Parameter, an den Dateinamen anhängen.

midgard
05.10.2005, 21:21:10
Schönen Abend.

Aber wie übergebe ich dann den Ordner? Hab keinen Plan.

xabbuh
05.10.2005, 21:22:48
Alle URL-Parameter, die du im Hauptscript sowie in allen inkludierten Datei verwenden willst, musst du direkt an das Hauptscript übergeben.

midgard
05.10.2005, 21:38:36
So hatte ich es am Anfang gemacht. Es funzte nicht.

xabbuh
05.10.2005, 21:54:11
"Funktioniert nicht" ist keine Fehlerbeschreibung. Wie sah dein Quellcode da aus?
Achja: Verzichte bitte auf die Verwendung der @-Zeichen. Damit unterbindest du doch nur Fehlermeldungen bzw. Warnungen, die dir beim Programmieren helfen können.

midgard
05.10.2005, 22:04:54
Sorry für die "blöde" Fehlermeldung

index.php


$inc=@$_GET['main'];
switch ($inc) {
case 'was_war': include_once('was_war.php'); break;
case 'guestbook': include_once('guestbook.php'); break;
case 'kontakt': include_once('kontakt.php'); break;
case 'links': include_once('links.php'); break;
case 'home': include_once('home.php'); break;
case 'impressum': include_once('impressum.php'); break;
case '250102': include_once('gallery/gall_create.php?pfad=250102/'); break;
};


was_war.php

echo"<a href='?main=250102/'>Hier</a> gehts zu den Bildern unserer Party vom 25.01.2002";

xabbuh
05.10.2005, 22:38:20
Hier gibst du der Datei, die du inkludierst, doch schon wieder Parameter mit.

Stevie B.
05.10.2005, 22:54:04
Hallo midgard,

versuch es mal so:

echo "<a href=\"?main=was_war\">Was war?</a>"; //normaler Link
echo "<a href=\"?main=gallery&pfad=250102\">zur Galerie</a>"; //Galerie-Link

if ($_GET['main'] == "gallery" && $_GET['pfad'] != "") {
include('gallery/gall_create.php');
} elseif ($_GET['main'] != "") {
include($_GET['main'].".php");
} else {
echo "Hauptseite";
}

In der gall_create.php kannst Du nun den Ordner mit $_GET['pfad'] entgegen nehmen. Also z.B.:

$pfad = $_GET['pfad'];
$dir = opendir($pfad);
...


Gruß,
Stevie B.

midgard
05.10.2005, 23:40:10
das geht sehr gut, vielen dank. leider sind die anderen Links(die Du normale Links benannt hast) von der includeten was_war.php jetzt nicht mehr erreichbar.

gallery/gall_create.php?main=gaesetebuch.php zum Beispiel

Stevie B.
05.10.2005, 23:53:21
Da Du mit includes arbeiten möchtest, musst Du Dir einen korrekten Aufbau erstellen. Das heißt, fang bei der index an und arbeite Dich in alle Richtungen durch.
Ungefähr so:
config -> index -> galerie -> gästebuch //Was das Gästebuch in der Galerie zu suchen hat weiß ich zwar nicht, aber Du wirst Dir schon was dabei gedacht haben.
Also muss das dann ungefähr so aussehen:
<?php
//index.php
//$main = gallery;
//$show = guestbook;
include('config.inc.php');
?>
<head>
...
</head>
<body>
<a href="?main=galery&show=guestbook">zum Gästebuch</a>
<?php
include('gallery/gal_create.php');
?>
</body>


in der gal_create.php muss dann wieder der include sein:
if ($_GET['show'] == "guestbook") include('gallery/guestbook.php');

Denk daran, dass Du beim Ansprechen der Dateien (hier guestbook.php) immer vom Ort der index.php ausgehen musst. Auch, wenn die gal_create.php bereits im Ordner gallery liegt.

Gruß,
Stevie B.

midgard
06.10.2005, 00:11:59
Hatte mich falsch ausgedrückt bei dem Link. Das Gästebuch liegt im Hauptverz., der Link gallery/gall_create.php?main=gaesetebuch.php erscheint beim "hover" auf Gästebuch. Nach klick findet er die Datei nicht, was ja auch klar ist wenn er in gallery sucht.

meikel (†)
06.10.2005, 01:14:13
Nach klick findet er die Datei nicht, was ja auch klar ist wenn er in gallery sucht.
Wenn Du anstelle von include_once require_once verwendet hättest, hättest Du aufgrund der dann erfolgten Fehlermeldung den Fehler wesentlich schneller gefunden.