Zum Inhalt springen

PHP-URL Variable via inlcude


Empfohlene Beiträge

Hallo zusammen,

ich bin auf der Suche nach meinem Fehler. Ich habe eine Ausgabe aus einer Datenbank, die möchte ich als Variable auf die nächste Seite bringen. Da ich aber eine index.php als Grundlage nutze und alle anderen Seite mit Hilfe der Includierung einfüge, scheint es Proble zu geben.

index.php:

[..]

			     <?php
if(empty($_GET['seite']))
$_GET['seite'] = "index";
if(file_exists("inc/".$_GET['seite'].".php"))
{
include("inc/".$_GET['seite'].".php");
}
else
{
include("inc/error.php");
}


?>[/PHP]

[..]

Da wird die userlist.php eingefüht:

[PHP]<?php
error_reporting(E_ALL);
include("connect.inc.php");

echo "<table>";
echo " <tr>\n";
echo " <td>\n";
echo "Nickname\n";
echo " </td>\n";
echo " <td>\n";
echo "Registrierungsdatum\n";
echo " </td>\n";
echo " <td>\n";
echo "Letzter Login\n";
echo " </td>\n";
echo " <td>\n";
echo " \n";
echo " </td>\n";
echo " </tr>\n";

$sql = "SELECT
ID,
SessionID,
Nickname,
DATE_FORMAT(Registrierungsdatum, '%d.%m.%Y') as Datum,
Letzter_Login,
Letzte_Aktion
FROM
User
ORDER BY
Nickname ASC
";
$result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());

while ($row = mysql_fetch_assoc($result)) {
// existiert eine Session ID und der User
// war nicht länger als 2 Minuten inaktiv, so wird er als online betrachtet
if($row['SessionID'] AND (time()-60*2 < $row['Letzte_Aktion']))
$online = "<span style=\"color:green\">online</span>\n";
else
$online = "<span style=\"color:red\">offline</span>\n";
echo " <tr>\n";
echo " <td>\n";
echo "<a href=\"?seite=profil?id=".$row['ID']."\">".$row['Nickname']."</a>\n";
echo " </td>\n";
echo " <td>\n";
echo $row['Datum']."\n";
echo " </td>\n";
echo " <td>\n";
echo date('d.m.Y H:i \U\h\r', $row['Letzter_Login'])."\n";
echo " </td>\n";
echo " <td>\n";
echo $online;
echo " </td>\n";
echo " </tr>\n";
}
echo "</table>";
?>

wenn jetzt die ID an die URL angehangen werden soll, kommt so etwas bei raus:

http://www.seite.de/?seite=profil?id=1

und da .. profil?id=1 als dateiname angesehen wird, findet er die datei profile.php nicht und kann somit auch den wert 1 (in diesem fall) nicht übermitteln.

Wie kann cih das Problem umgehen, oder die komplette include-Funktion rauschlassen zu müssen?

Besten Dank an alle die Helfen wollen udn können =)

LG Oct

Bearbeitet von Octavian
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Octavian

wenn jetzt die ID an die URL angehangen werden soll, kommt so etwas bei raus:


http://www.seite.de/?seite=profil?id=1
Da sieht man den Fehler recht deutlich. GET-Variablen in einer URL wreden mit einem & verknüpft und nicht mit einem Fragezeichen. Es müsste also so aussehen:
http://www.seite.de/?seite=profil&id=1

In deinem PHP-code findet sich der Fehler in Zeile 44 der userlist.php:

 echo "<a href=\"?seite=profil?id=".$row['ID']."\">".$row['Nickname']."</a>\n";

Wenn du das änderst in:

 //Beachte das & welches statt dem ? nach profil steht!
echo "<a href=\"?seite=profil&id=".$row['ID']."\">".$row['Nickname']."</a>\n";[/PHP]

sollte es funktionieren.

Hoffe Ich konnte Helfen.

Gruß Shogoki

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Frank,

Shogoki hat den Fehler gefunden ^^ich wusste nicht, dass man nach der ersten Wertübergabe mit dem "?" danach das "&" kommt =) Ich hab das auch gleich mal nachgelesen und jetzt verstehe ich auch wie sich das zusammensetzt. Aber wenn man einfach nur so rumbastelt um sich etwas anzueignen kann man auf anhieb nicht alles kennen.. vielleicht auch sehr viel später nicht.

Besten Dank an euch beiden. Mal sehen wann sich die nächsten Porbleme bei mir aufmerksam machen =)

LG

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...