PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Verlinkung


midgard
28.09.2005, 12:16:55
Hallo,

ich lasse mir alle Dateien der Site in der index anzeigen.
Das funzt bisher auch wunderbar, bis ich mich jetzt an mein
Gästebuch machte. In diesem werden alle vorhanden Seiten (1 2 3 ...) die Einträge enthalten aufgelistet und verlinkt ($AktuelleSeite).
Die Verlinkung klappt jedoch nicht.
Es wird sofort die error-datei included.
Alle Files liegen im selben Verzeichnis.

Bin für alle Hinweise zur Ergreifung des Fehlers dankbar ;-)

Gruss

index.php

<?PHP
if(empty($_GET['main']))
$_GET['main'] = "home";
if(file_exists($_GET['main'].".php")) {
include($_GET['main'].".php");
} else {
include("error.php");
}
?>


gaestebuch.php

<?PHP


$ErgebnisseProSeite = 2;

$DatabasePointer=mysql_connect("localhost", "", "");
mysql_select_db("DB163794", $DatabasePointer);

if(!isset($_REQUEST['AktuelleSeite']))
{
$AktuelleSeite=0;
}
else
{
$AktuelleSeite=$_REQUEST['AktuelleSeite'];
}

$ResultPointer=mysql_query("SELECT * FROM gaestebuch ORDER BY Datum DESC LIMIT $AktuelleSeite, $ErgebnisseProSeite", $DatabasePointer);
$Anzahl=mysql_num_rows(mysql_query("SELECT * FROM gaestebuch ORDER BY Datum DESC", $DatabasePointer));
echo"<div class='eintrag'>";
for($i=0; $i<mysql_num_rows($ResultPointer); $i++)
{
$Gaestebuch=mysql_fetch_object($ResultPointer);
echo"<span class='head'>",
$Gaestebuch->Titel,
"</span>",
"<span class='inhalt'>",
nl2br($Gaestebuch->Eintrag),
"</span>",
"<span class='foot'>Eintrag von <b>",
$Gaestebuch->Name,
"</b> am <b>",
substr($Gaestebuch->Datum, 8, 2),
".",
substr($Gaestebuch->Datum, 5, 2),
".",
substr($Gaestebuch->Datum, 0, 4),
" ",
substr($Gaestebuch->Datum, 10),
"</b></span>";
}
echo "</div>";
if($Anzahl>$ErgebnisseProSeite)
{
$Seiten=intval($Anzahl/$ErgebnisseProSeite);
if($Anzahl%$ErgebnisseProSeite)
{
$Seiten++;
}
echo"Seite ";
}
for($i=1; $i<=$Seiten; $i++)
{
echo"<a href=\"index.phpmain=guestbook.phpAktuelleSeite=", //FEHLER ????
($i-1)*$ErgebnisseProSeite,
"\">$i</a>&nbsp;";
}
?>

c4
28.09.2005, 12:26:28
echo"<a href=\"index.phpmain=guestbook.phpAktuelleSeite=", //FEHLER ???? Richtig!
Aus "phpmain" machst Du einfach mal "php?main"...

midgard
28.09.2005, 12:42:19
hallo,

weiss nicht wie das ? im Beitrag abhanden gekommen ist. In der Datei die ich benutze ist es mit ? ,aber es funzt nicht.

Gruss

c4
28.09.2005, 12:45:11
Und bei phpAktuelleSeite ist eigentlich auch ein "?"?

Wie sehen denn die Links im Quelltext des Browsers aus?

midgard
28.09.2005, 12:48:38
Seite <a href="index.php?main=guestbook.php?AktuelleSeite=0">1</a>&nbsp;<a href="index.php?main=guestbook.php?AktuelleSeite=2">2</a>&nbsp;<a href="index.php?main=guestbook.php?AktuelleSeite=4">3</a>&nbsp;<a href="index.php?main=guestbook.php?AktuelleSeite=6">4</a>&nbsp;<a href="index.php?main=guestbook.php?AktuelleSeite=8">5</a>&nbsp;<a

usw.

c4
28.09.2005, 12:50:38
Sorg mal dafür, dass die Links so aussehen:
index.php?main=guestbook.php%3FAktuelleSeite=

midgard
28.09.2005, 12:54:35
kann leider keinen Erfolg melden

c4
28.09.2005, 13:00:26
Kann man das mal online bewundern?

midgard
28.09.2005, 13:03:09
Kann man das mal online bewundern?

Leider noch(oder zum Glück?) nicht. Ist alles lokal.

c4
28.09.2005, 13:08:15
Und die index.php und die guestbook.php liegen im gleichen Verzeichnis? Überhaupt, haut das mit den Pfaden hin?

Du hast irgendwo auf der Platte ein Verzeichnis, in dem der Apache liegt. Da sollte ein Verzeichnis logs sein und da drin eine Datei, die die Fehler sammelt. Sieh dort mal nach, was dort steht.

midgard
28.09.2005, 13:21:58
hab mal in der error und der phperror nachgeschaut, aber eine fehlermeldung , die mein problem betrifft gibt es nicht.

c4
28.09.2005, 13:23:19
"Es wird sofort die error-datei included."
Unter welchen Bedingungen wird diese denn eingebunden? Überprüfe oder zeige mal den Code.

midgard
28.09.2005, 13:28:36
so sieht es in der index.php aus


<?PHP
if(empty($_GET['main']))
$_GET['main'] = "home";
if(file_exists($_GET['main'].".php")) {
include($_GET['main'].".php");
} else {
include("error.php");
}
?>

c4
28.09.2005, 13:32:27
Na da haben wir doch vermutlich das Fehlerchen:
Sorg mal dafür, dass die Links so aussehen:
index.php?main=guestbook%3FAktuelleSeite=
Beim inculde() hängst Du nämlich immer .php an...

midgard
28.09.2005, 13:36:58
leider hat das auch nicht geholfen

c4
28.09.2005, 13:41:46
Ist auch logisch, der versucht ja auch die "guestbook%3FAktuelleSeite=.php" zu finden...

Mach mal aus dem %3F ein & - dann geht's vielleicht endlich. : )

midgard
28.09.2005, 13:50:03
SAUBER

Jetzt funzt es. Grossen Dank an Dich !!!

Kennst Du ein brauchbares Tut. zur Übergabe von URLs (auch in Verbindung mit DBs)? Hab schon gegoogelt, aber nix vernünftiges entdecken können.

Nochmals Danke!!!

c4
28.09.2005, 13:57:21
War eine schwere Geburt, aber letztendlich erfolgreich. Schön!

Du solltest $_GET['main'] mappen, also nicht direkt ins include() packen!
Dort wird's glaube ich gezeigt:
--> http://selfphp.de/tipps_tricks/layout/trennung_inhalt_layout.php

Also irgendwie sowas: $inc=@$_GET['main'];
switch ($inc) {
case 'bilder' : 'bilder/index.php'; break;
case 'kontakt' : 'sonstiges/kontakt.php'; break;
case 'impressum' : 'sonstiges/impressum.php'; break;
default : $inc='start.php';
}

include($inc); Alles klarofix?

midgard
28.09.2005, 14:09:27
werde Deinen Tip mal umsetzen und hoffe das es dann besser klappt.