5 Neueste Beitrage auf Index.htm(php) darstellen

chmee

verstaubtes inventar
Premium-User
Moin Fachmänner. Nehmts mir nicht krumm, wenn ich bis Dato nix gefunden habe und diese Frage uU wieder gestellt wird.

Habe mir n PHPBB-Forum eingerichtet und soweit irgendwelche Mods und Templateänderungen durchgeführt. Will sagen, kann lesen was im Code steht.

Nun möchte ich auf der Einstiegsseite (index.htm) die 5 neuesten Beiträge angezeigt
haben.

**EDIT** Einstiegsseite meiner Website, nicht des Forums ! Forum ist im Unterordner.

1. Ich gehe davon aus, dass ich das die index in eine php-Seite umstricken muss.
Ist eine Php-Seite immer Template-basiert ?
2. Wie kläre ich den Zugriff auf die DB ohne mir ein Sicherheitsleck einzuhandeln ?
( Gast ? Nur-lesend ?)
3. Gibt es im großen Netz irgendwo eine Hilfe/Tut/Kurzerklärung ?
Oder ist dieses Problem so unique, dass ich mich mit php-Basics auseinandersetzen sollte ?

Danke erstmal. mfg chmee
 
Zuletzt bearbeitet:
Hallo!
Eine konkrete Hilfe habe ich jetzt auf die Schnelle nicht, aber such mal bei :google: nach "phpbb hack". Dort solltest du soetwas finden.
mfg flo
 
Erstmal Danke für die superschnellen Antworten. Aber habe gemerkt, dass ich eins vergessen habe, zu sagen:

Ich möchte die "Latest-Topics" NICHT auf der Index-Seite des Forums zeigen lassen - da wäre der phpbb-Hack angebracht - sondern auf der Index-Seite meiner Webseite. Und die ist bis Dato nur HTML/CSS. Das Forum ist logischerweise in nem Unterordner !

mfg chmee

**EDIT**
Heisst also, ich möchte per <?php ..... ?> auf meiner index.htm ( dann .php ) in einem Div/Layer die latest Topics anzeigen lassen.
 
Zuletzt bearbeitet:
Hallo,
wenn du <?php ..... ?> nutzen möchtest, muss die Datei auf jedenfall eine PHP Endung besitzen.
In der PHP kannst du dann mit <?php ..... ?> ein Script includen.
Dieses Script fragt die neuesten Beiträge ab und gibt diese aus.
PHP:
$abf = 'SELECT * 
	        FROM phpbb_topics 
					ORDER BY topic_time DESC
					LIMIT 0,5';
	$erg = db_query($abf);
  while ($row = db_fetch_object($erg)) {  
		echo 'href="forum.php?thread='.$row->topic_id.'">'.$row->topic_title.'</a><br></br>';
  }

Wenn du dort noch ein DBConnect, DBClose und deine Tabellennamen ergänzt bzw änderst, dann müsste das dass sein was du suchst..
Ich habe keine Ahnung wie die DB aussieht die hinter deinem Forum arbeitet ( Aufbau der Tabellen usw ) deswegen habe ich einfach irgendwelche Namen genommen.

MFG
Sandro


EDIT: Hab mir die DB mal angeschaut und hab die Werte bzw. die Namen der Tabellen oben geändert.

MFG

PHP:
<?php
$host="";
$username="";
$password="";
$database="phpbb";

//Verbindung zur Datenbank
mysql_connect($host, $username, $password);

//Datenbankauswahl
mysql_select_db($database);

$abf = 'SELECT * FROM phpbb_topics ORDER BY topic_time DESC LIMIT 0,5';
    $erg = mysql_query($abf);
	
 while ($row = mysql_fetch_assoc($erg)) {  
		echo "<a href=forum.php?tread=".$row['topic_id'].">".$row['topic_title']."</a><br></br>";
		}
mysql_close();

?>

Du musst nur noch den Pfad zur forum.php und den Parameter anpassen. Der Rest müsste passen.
Evtl noch den Tabellenprefix. Der is bei meiner Installation gerade std geblieben. ;)

MFG
Sandro
 
Hey GiftZwerg, Danke für den ersten Anstoß.

Kann aber auf die db nicht zugreifen.. Muß ich denn Username und PW angeben ?
Man kann doch auch anonym abfragen -->
sonst gibt es die wichtigen Daten im Klartext in der php-Datei--> Mies :)

mfg chmee
 
Die *.php-Datei wird vorher ja auch interpretiert, d.h. der Besucher sieht nix davon. Die Benutzerdaten von der DB stehen immer im Klartext in den *.php-Dateien, also da geht meiner Ansicht nach kein großes Sicherheitsrisiko aus. Wenn einer an deine *.php-Dateien ran kommt, dann ist er auch so gut, um an deine DB zu kommen :D Natürlich darfst du nicht vergessen, deine index.html in index.php umzubenennen, da sonst die Daten wirklich einfach übertragen werden :)
 
Interpreter --> Okay, daran habe ich nicht gedacht

Na dann gleich witer testen, Danke nochmal, und bei Funktion gibts doppelt Lob :-)

mfg chmee
 
Erstmal herzlichsten Dank, es funktioniert :-)

Sehe aber, das Ergebnis zeigt die erstellten Topics in Zeit-Abwärts-Sortierung.
Trifft natürlich nicht den Punkt, es geht ja um die Beiträge.

Die SQL-Abfrage wäre dann ca:

Code:
$abf = 'SELECT * FROM phpbb_posts ORDER BY post_id DESC LIMIT 0,5';
    $erg = mysql_query($abf);
   while ($row = mysql_fetch_assoc($erg)) {  
        echo "<a href=http://www.phreekz.de/Forum/viewtopic.php?p=".$row['post_id'].">".$row['post_id']."</a><br></br>";
        }

Damit hat er zumindest die Threads - Neueste Zuerst - sortiert und angezeigt.
ABER: Damit er den Namen des Threads anzeigt und nicht nur die post_id oder topic_id,
wie hole ich diese Info ? Die müsste ja in das oben dick Markierte...

mfg chmee
 
Das Feld für den Titel des Posts ist post_subject, also:
PHP:
echo "<a href=http://www.phreekz.de/Forum/viewtopic.php?p=".$row['post_id'].">".$row['post_subject']."</a><br></br>";

P.s: Dein "Chmee Audio Demo 2006" ist genial :) Ist auf meinem iPod schon drauf ;)

Nachtrag
Wenn du jedes Topic nur einmal anzeigen lassen willst, auch wenn es zwei oder mehr neue Posts sind, dann kannst du folgendes Statement benutzen
SQL:
SELECT topic_id, post_id, post_subject FROM phpbb_posts GROUP BY topic_id ORDER BY post_id DESC LIMIT 0,5
Und wenn du den Titel des Topics und nicht des neuesten Posts haben willst, dann hilft folgendes Statement
SQL:
SELECT phpbb_posts.topic_id, phpbb_topics.topic_title, phpbb_posts.post_id, phpbb_posts.post_subject FROM phpbb_posts LEFT JOIN phpbb_topics ON phpbb_topics.topic_id = phpbb_posts.topic_id GROUP BY topic_id ORDER BY post_id DESC LIMIT 0,5
 
Zuletzt bearbeitet:
Zurück