Geschrieben von mawes am 07.06.2004, 16:58

Hi,
hier wird jetzt das Forum fortgesetzt!
Bisher waren fertig:
- index.php
- new.php
- new.html
- create_table.php
Jetzt kommen dazu:
- read.php
- replay.php
- replay_entry.php
Fangen wir an:
<!--read.php-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<h3>Der Forumsbeitrag</h3>
<div style="width: 400px">
<?php
$id=$HTTP_GET_VARS['forums_id'];
$db=mysql_connect("localhost","root","");
mysql_select_db("manitu");
$anfrage="SELECT * FROM forum WHERE beitrags_id LIKE '";
$anfrage.=$id;
$anfrage.="'";
$ergebnis=mysql_query($anfrage);
$zeile=mysql_fetch_row($ergebnis);
print ("<br><br><b>Betreff: </b>");
print ($zeile[6]);
print ("<br><b>von: </b>");
print ($zeile[2]);
print ("<br><b>E-Mail: </b>");
print ("<a href='mailto:");
print ($zeile[3]);
print ("'>");
print ($zeile[3]);
print ("</a><br><b>Geschrieben am: </b>");
print ($zeile[4]);
print (" um ");
print ($zeile[5]);
print ("<br><br><hr><br><br>");
print ($zeile[7]);
if ($zeile[1]>0) {
print ("<hr>");
print ("<br><b>Die Antworten auf diesen Beitrag:</b><br><br>");
print ("<table>");
antwort_holen($zeile[1]);
print ("</table>");
}
mysql_close($db);
print ("<br><hr><br>");
print ("<a href='replay.php?forums_id=");
print ($id);
print ("'>Schreiben Sie hier eine Antwort auf diesen Beitrag!</a>");

function antwort_holen($id) {
$anf="SELECT * FROM forum WHERE beitrags_id='";
$anf.=$id;
$anf.="'";
$er=mysql_query($anf);
$z=mysql_fetch_row($er);
ausgabe($z);
}
function ausgabe($datensatz) {
print ("<tr align='left'>");
print ("<td>");
print ("<a href='read.php?forums_id=");
print ($datensatz[0]);
print ("'>");
print ($datensatz[6]);
print ("</a>");
print ("</td>");
print ("<td> von ");
print ($datensatz[2]);
print ("</td>");
print ("<td> am ");
print ($datensatz[4]);
print (" um ");
print ($datensatz[5]);
print ("</td>");
print ("</tr>");
if ($datensatz[1]>0) {
antwort_holen($datensatz[1]);
}
}
?>
</div>
</body></html>
-----------------------------------------
Hier werden die daten ausgelesen auf die geklickt (das Thema, das ausgewählt wurde) wurden.
<!--replay.php-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>PHP-Forumsbeitrag - Antwort</title></head>
<body>
<div style="font-family:arial">
<h2>Ihre Antwort auf den Forumsbeitrag:</h2>
<form method="post" action="replay_entry.php">
<table border="0">
<tr>
<td>Ihr Name</td>
<td><input type="text" name="user"></td></tr>
<tr>
<td>Ihre E-Mail-Adresse</td>
<td><input type="text" name="mail"></td></tr>
<tr>
<td>Betreff-Zeile</td>
<td>
<?php
$id=$HTTP_GET_VARS['forums_id'];
$db=mysql_connect("localhost","root","");
mysql_select_db("manitu");
$anfrage="SELECT * FROM forum WHERE beitrags_id LIKE '";
$anfrage.=$id;
$anfrage.="'";
$ergebnis=mysql_query($anfrage);
$zeile=mysql_fetch_row($ergebnis);
$betreff="<input type='text' name='betreff' value='";
$betreff.="Re: ";
$betreff.=$zeile[6];
$betreff.="'>";
print ($betreff);
print ("<input type='hidden' name='forums_id' value='");
print ($id);
print ("'>");
?>
</td></tr>
<tr><td>Ihr Eintrag</td>
<td><textarea name="forumsbeitrag" cols="40" rows="5"></textarea></td></tr>
<tr>
<td><input type="submit" value="Abschicken">
<input type="reset" value="Löschen"></td></tr>
</table>
</form></div>
</body></html>
-----------------
Hier wird die Antwort erstellt wobei die datei trotzdem in PHP ist, weil
die Betreff Zeile ausgelesen wird, und mit RE: "ausgeschmückt" wird.
<!--replay_entry-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<?php
$id=$HTTP_POST_VARS['forums_id'];
$user=$HTTP_POST_VARS['user'];
$mail=$HTTP_POST_VARS['mail'];
$betreff=$HTTP_POST_VARS['betreff'];
$forumsbeitrag=$HTTP_POST_VARS['forumsbeitrag'];

//Zuerst Datum und Uhrzeit generieren:
$punkt=".";
$datum = date("d");
$datum .=$punkt;
$datum .=date("m");
$datum .=$punkt;
$datum .=date("Y");
$zeit = date("G");
$zeit .=$punkt;
$zeit .=date("i");
$zeit .=$punkt;
$zeit .=date("s");

//Sonderzeichen beachten:
$user=htmlspecialchars ($user);
$user=htmlentities($user);
$betreff=htmlspecialchars ($betreff);
$betreff=htmlentities($betreff);
$forumsbeitrag=htmlspecialchars ($forumsbeitrag);
$forumsbeitrag=htmlentities($forumsbeitrag);
$forumsbeitrag=nl2br($forumsbeitrag);

//Antwort in die DB schreiben:
$db=mysql_connect("localhost","root","")
or die ("<b>Zur Zeit kein Connect zum Datenbankserver!</b>");
mysql_select_db("manitu")
or die ("<b>Datenbank konnte nicht angesprochen werden</b>");
$anfrage="INSERT INTO forum VALUES ('0','0','";
$anfrage.=$user;
$anfrage.="', '";
$anfrage.=$mail;
$anfrage.="', '";
$anfrage.=$datum;
$anfrage.="', '";
$anfrage.=$zeit;
$anfrage.="', '";
$anfrage.=$betreff;
$anfrage.="', '";
$anfrage.=$forumsbeitrag;
$anfrage.="', 'true')";
mysql_query($anfrage)
or die ("<b>Fehler bei der Datenbankanfrage: </b>".mysql_error());
//Jetzt die neue beitrags_id der soeben eingetargenen Antwort ermitteln:
$antwort_id=mysql_insert_id($db);
//Usprungsbeitrag, auf dem die Antwort geschrieben wurde,
// aktualisieren:
$anfrage="SELECT * FROM forum WHERE beitrags_id LIKE '";
$anfrage.=$id;
$anfrage.="'";
$ergebnis=mysql_query($anfrage);
$zeile=mysql_fetch_row($ergebnis);
$update="UPDATE forum SET bezugs_id='";
$update.=$antwort_id;
$update.="' WHERE beitrags_id='";
$update.=$id;
$update.="'";
mysql_query($update)
or die (mysql_errno().": ".mysql_error());


mysql_close($db);
print ("<p>Vielen Dank f&uuml;r Ihren Beitrag!</p>");
print ("<a href='index.php'>Zur&uuml;ck zum Forums&uuml;berblick</a>");

?>
</body></html>
-----------------------------------
Hier wird die geschriebene Antwort in die mySQL Tabelle geschrieben.

Ich hoffe, das klappt alles! Bei mir funzt jedenfalls!
Viel Spaß damit!
mawes

Bewertung Anzahl
6
25,0 %
1 Bewertungen
3
25,0 %
1 Bewertungen
2
25,0 %
1 Bewertungen
1
25,0 %
1 Bewertungen