Octavian Geschrieben 10. Juli 2011 Geschrieben 10. Juli 2011 (bearbeitet) 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 10. Juli 2011 von Octavian Zitieren
robotto7831a Geschrieben 11. Juli 2011 Geschrieben 11. Juli 2011 Das Skript macht genau das was Du beschreibst. Was soll denn tatsächlich passieren? Frank Zitieren
Shogoki Geschrieben 11. Juli 2011 Geschrieben 11. Juli 2011 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 Zitieren
Octavian Geschrieben 11. Juli 2011 Autor Geschrieben 11. Juli 2011 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 Zitieren
etreu Geschrieben 12. Juli 2011 Geschrieben 12. Juli 2011 Für später :mod: http://www.ietf.org/rfc/rfc1738.txt http://www.ietf.org/rfc/rfc2616.txt http://www.ietf.org/rfc/rfc2617.txt Zitieren
Empfohlene Beiträge
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.