Jo, det kan du såmænd godt.
Du skal lige vide at det her er Version 0.001 :-) Det virker men der skal ryddes op i meget af det, og planen er at lave det til funktioner.
Første fil er forum.php
Den trækker de fora ud som er oprettet i databasen, og sætter dem "pænt" i en tabel.
Der laves også udtræk fra brugerdatabasen, til at vise hvilken bruger der har skrevet sidste post:
<?php
// Get connectioninfo for MySQL
include('/var/www/mysqlcon.php');
// Values for MySQL Tagwall
$mysqlhost=localhost;
$mysqldatabase=forum;
$mysqlforum=forums;
$mysqlthread=threads;
$mysqlposts=posts;
// Connect MySQL and choose database
mysql_connect("$mysqlhost", "$mysqluser", "$mysqlpass") or die ('MySQL-login error: ' . mysql_error());
mysql_select_db($mysqldatabase);
$queryforum = mysql_query("SELECT * FROM $mysqlforum ORDER BY id ASC") or die('MySQL-query error: ' . mysql_error());
while($row = mysql_fetch_array($queryforum)) {
// Number of threads
$querythread = mysql_query("SELECT * FROM $mysqlthread WHERE forumid=$row[id]") or die('MySQL-query error: ' . mysql_error());
$numberthreads = mysql_num_rows($querythread);
// Number of posts and last post
$queryposts = mysql_query("SELECT * FROM $mysqlposts WHERE forumid=$row[id] ORDER BY id DESC") or die('MySQL-query error: ' . mysql_error());
$lastpostrow = mysql_fetch_array($queryposts);
$numberposts = mysql_num_rows($queryposts);
// Get user from UserID
$user = $lastpostrow[userid];
mysql_select_db(nalgaming);
$queryuser = mysql_query("SELECT * FROM login WHERE id='$user'") or die('MySQL-query error: ' . mysql_error());
$rowuser = mysql_fetch_array($queryuser);
mysql_select_db($mysqldatabase);
$forum .= "
<tr>
<td><a href=\"./?page=thread&forumid=$row[id]\"> $row[titleda] </a><br /><div style=\"font-size:10px;\"> $row[descriptda] </div>
</td>
<td align=\"center\">$numberthreads
</td>
<td align=\"center\">$numberposts
</td>
<td align=\"center\">$lastpostrow[date] $lastpostrow[time] <br /> <a href=\"./?page=account&id=$rowuser[id]\">$rowuser[name]</a>
</td>
</tr>
";
}
echo "<table border=\"0\" cellspacing=\"1\" cellpadding=\"1\" style=\"width:98%;\">
<tr>
<td style=\"width:46%;\"> <b>Forum</b>
</td>
<td style=\"width:12%;\" align=\"center\"> Threads
</td>
<td style=\"width:12%;\" align=\"center\"> Posts
</td>
<td style=\"width:20%;\" align=\"center\">Last post
</td>
</tr>
";
echo $forum;
echo "</table><br />";
?>
Den næste er thread.php
Den henter forumid vha. $_GET['$id']; og henter de respektive threads ud
<?php
// Get connectioninfo for MySQL
include('/var/www/mysqlcon.php');
// Values for MySQL Tagwall
$mysqlhost=localhost;
$mysqldatabase=forum;
$mysqltable=threads;
$mysqlforumtable=forums;
$userdatabase=nalgaming;
$mysqltableuser=login;
// Values from adressbar
$forumid = $_GET['forumid'];
$forumid = intval($forumid);
// Connect MySQL and choose database
mysql_connect("$mysqlhost", "$mysqluser", "$mysqlpass") or die ('MySQL-login error: ' . mysql_error());
mysql_select_db($mysqldatabase);
// Get forumtitle from forumid
$titlequery = mysql_query("SELECT * FROM $mysqlforumtable WHERE id = $forumid");
$titlerow = mysql_fetch_array($titlequery);
$forumtitle = $titlerow[titleda];
$forumdescript = $titlerow[descriptda];
// Get thread
$query = mysql_query("SELECT * FROM $mysqltable WHERE forumid = $forumid ORDER BY id DESC") or die('MySQL-query error: ' . mysql_error());
while($row = mysql_fetch_array($query)) {
// Get user from UserID
$user = $row['userid'];
mysql_select_db($userdatabase);
$queryuser = mysql_query("SELECT * FROM $mysqltableuser WHERE id='$user'") or die('MySQL-query error: ' . mysql_error());
$rowuser = mysql_fetch_array($queryuser);
// Count posts
mysql_select_db($mysqldatabase);
$querycount = mysql_query("SELECT * FROM posts WHERE threadid = $row[id] ORDER BY id DESC") or die('MySQL-query error: ' . mysql_error());
$numberposts = mysql_num_rows($querycount);
$rowcount = mysql_fetch_array($querycount);
// Get user from UserID
$user = $rowcount[userid];
mysql_select_db($userdatabase);
$queryuser = mysql_query("SELECT * FROM $mysqltableuser WHERE id='$user'") or die('MySQL-query error: ' . mysql_error());
$rowcountuser = mysql_fetch_array($queryuser);
$thread .= "
<tr>
<td>
<a href=\"./?page=posts&forumid=$forumid&threadid=$row[id]\">$row[title]</a>
</td>
<td align=\"left\">
<a href=\"./?page=account&id=$rowuser[id]\">$rowuser[name]</a>
</td>
<td align=\"center\">
$numberposts
</td>
<td align=\"center\">
$rowcount[date] $rowcount[time] <br /> <a href=\"./?page=account&id=$rowcountuser[id]\">$rowcountuser[name]</a>
</td>
</tr>
";
}
echo "<table border=\"0\" cellspacing=\"1\" cellpadding=\"1\" style=\"width:98%;\">
<tr>
<td colspan=\"4\">
<b>$forumtitle</b>
</td>
</tr>
<tr>
<td colspan=\"4\" style=\"font-size:10px;\">
$forumdescript
</td>
</tr>
<tr>
<td colspan=\"4\">
<a href=\"./?page=newthread&forumid=$forumid\">Ny tråd</a>
</td>
</tr>
<tr>
<td>
<b>Tråd</b>
</td>
<td style=\"width:100px;\">
<b>Starter</b>
</td>
<td style=\"width:85px;\">
<b>Antal posts</b>
</td>
<td style=\"width:125px;\">
<b>Sidste post</b>
</td>
</tr>
";
echo $thread;
echo "</table><br />";
?>
For at oprette en ny tråd er der et link til newthread.php
<?php
// Get values from addressbar
$forumid = $_GET['forumid'];
$forumid = intval($forumid);
$newthread = "
<tr>
<td colspan=\"4\">
Ny tråd
<br />
<form action=\"pages/forum/sendthread.php\" method=\"post\">
Titel <br />
<input type=\"text\" name=\"threadtitle\" value=\"\" style=\"font-size:10px;\" /> <br /> <br />
Besked
<div style=\"overflow:hidden;\" align=\"center\">
<textarea cols=\"85\" rows=\"12\" name=\"message\"></textarea>
<br />
<input type=\"hidden\" name=\"return_page\" value=\"$_SERVER[PHP_SELF]\" />
<input type=\"hidden\" name=\"user\" value=\"$_SESSION[id]\" />
<input type=\"hidden\" name=\"forumid\" value=\"$forumid\" />
<input type=\"submit\" value=\"Send\" style=\"font-size:10px; float:right;\" accesskey=\"s\" title=\"[alt+s]\" />
</div>
</form>
</td>
</tr>
";
echo "
<table border=\"0\" cellspacing=\"0\" cellpadding=\"1\" align=\"center\" style=\"width:98%;\">";
if(isset($_SESSION['user'])) {
echo $newthread;
} else {
echo "
<tr><td>Du skal være logget ind for at kunne oprette nye tråde i forummet </td></tr>";
}
echo "
</table> <br />";
?>
Det indtastede i newthread.php sendes til sendthread.php
<?php
$userid = $_POST['user'];
$threadtitle = $_POST['threadtitle'];
$message = $_POST['message'];
$message = nl2br($message);
$forumid = $_POST['forumid'];
$date = "" . date(Y) . "-" . date(m) . "-" . date(d) . "";
$time = "" . date(H) . ":" . date(i) . "";
$forumid = intval($forumid);
// Get connectioninfo for MySQL
include('/var/www/mysqlcon.php');
// Values for MySQL Tagwall
$mysqlhost = localhost;
$mysqldatabase = forum;
$mysqlthread = threads;
$mysqlposts = posts;
// If try post tag, cancel
if( ereg ("<", $threadtitle)){
unset($threadtitle);
}
if(isset($threadtitle)) {
// Connect MySQL and choose database
mysql_connect("$mysqlhost", "$mysqluser", "$mysqlpass") or die ('MySQL-login error: ' . mysql_error());
mysql_select_db($mysqldatabase);
mysql_query("INSERT INTO $mysqlthread (`forumid`, `title`, `date`, `time`, `userid`) VALUES ('$forumid', '$threadtitle', '$date', '$time', '$userid')") or die('MySQL-query error: ' . mysql_error());
// Get threadid
$threadquery = mysql_query("SELECT * FROM $mysqlthread ORDER BY id DESC") or die('MySQL-query error: ' . mysql_error());
$rowthread = mysql_fetch_array($threadquery);
$threadid = $rowthread['id'];
mysql_query("INSERT INTO $mysqlposts (`threadid`, `forumid`, `message`, `date`, `time`, `userid`) VALUES ('$threadid', '$forumid', '$message', '$date', '$time', '$userid')") or die('MySQL-query error: ' . mysql_error());
$redirect = "
http://gaming.nal-net.dk/?page=posts&forumid=$forumid&threadid=$threadid";header("Location: $redirect");
}
else
{
$redirect = "
http://gaming.nal-net.dk/?page=thread&forumid=$forumid";header("Location: $redirect");
}
?>
Så er der posts.php som viser selve tråden, med alle posts:
<?php
// Get connectioninfo for MySQL
include('/var/www/mysqlcon.php');
// Values for MySQL Tagwall
$mysqlhost=localhost;
$mysqldatabase=forum;
$mysqltable=posts;
$mysqlthreadtable=threads;
$userdatabase=nalgaming;
$mysqltableuser=login;
// Values from adressbar
$forumid = $_GET[forumid];
$threadid = $_GET['threadid'];
$forumid = intval($forumid);
$threadid = intval($threadid);
// Connect MySQL and choose database
mysql_connect("$mysqlhost", "$mysqluser", "$mysqlpass") or die ('MySQL-login error: ' . mysql_error());
mysql_select_db($mysqldatabase);
// Get threadname from table
$threadquery = mysql_query("SELECT * FROM $mysqlthreadtable WHERE id = $threadid ORDER BY id ASC") or die('MySQL-query error: ' . mysql_error());
$threadrow = mysql_fetch_array($threadquery);
// Get posts
$query = mysql_query("SELECT * FROM $mysqltable WHERE threadid = $threadid ORDER BY id ASC") or die('MySQL-query error: ' . mysql_error());
while($row = mysql_fetch_array($query)) {
// Get UserID
$user = $row['userid'];
// Antal posts bruger
$queryposts = mysql_query("SELECT * FROM $mysqltable WHERE userid='$user'") or die('MySQL-query error: ' . mysql_error());
$numberpostsuser = mysql_num_rows($queryposts);
// Antal threads bruger
$querythreads = mysql_query("SELECT * FROM $mysqlthreadtable WHERE userid='$user'") or die('MySQL-query error: ' . mysql_error());
$numberthreadsuser = mysql_num_rows($querythreads);
// Get user from UserID
$user = $row['userid'];
mysql_select_db($userdatabase);
$queryuser = mysql_query("SELECT * FROM $mysqltableuser WHERE id='$user'") or die('MySQL-query error: ' . mysql_error());
$rowuser = mysql_fetch_array($queryuser);
mysql_select_db($mysqldatabase);
$thread = "
<tr>
<td colspan=\"2\" style=\"border-bottom: 1px dashed #555555;\">
<div style=\"font-size:16px; font-weight:bold;\">$threadrow[title] </div>
</td>
</tr>
";
// Check whether user has a picture
if(file_exists('/var/www/pics/users/' . $user . '.gif')) {
$userpic = '' . $user . '.gif';
$picturetitle = "" . $rowuser[name] . "'s billede";
} else {
$userpic = '0.gif';
$picturetitle = "Intet billede";
}
$posts .= "
<tr>
<td colspan=\"2\" style=\"border-bottom: 1px dashed #555555; height: 25px; align:center; \">
<div style=\"color:#333333; font-size:11px; \"> <a href=\"./?page=account&id=$rowuser[id]\">$rowuser[name]</a> - $row[date] $row[time] </div>
</td>
</tr>
<tr>
<td style=\"width:100px; font-size:11px; background-repeat:repeat; vertical-align:top; border-right: 1px dashed #555555; border-bottom: 1px dashed #555555;\">
<div style=\"width:100px; vertical-align:top;\">
Antal posts: $numberpostsuser <br />
Antal tråde: $numberthreadsuser <br /> <br />
<a href=\"./pics/users/$userpic\" target=\"_BLANK\"><img src=\"./pics/users/$userpic\" style=\"width:90px; border: 0px;\" title=\"$picturetitle\" alt=\"$picturetitle\" /></a> <br />
</div>
</td>
<td width=\"85%\" style=\"border-bottom: 1px dashed #555555; height:100; vertical-align:top;\">
<div style=\"font-size:11px;\"> $row[message] <br /> </div>
</td>
</tr>
";
}
$newpost = "
<tr>
<td colspan=\"2\">
<div style=\"overflow:hidden; \" align=\"center\">
<br />
<form action=\"pages/forum/sendpost.php\" method=\"post\">
<textarea cols=\"80\" rows=\"12\" name=\"message\"></textarea>
<br />
<input type=\"hidden\" name=\"return_page\" value=\"$_SERVER[PHP_SELF]\" />
<input type=\"hidden\" name=\"user\" value=\"$_SESSION[id]\" />
<input type=\"hidden\" name=\"threadid\" value=\"$threadid\" />
<input type=\"hidden\" name=\"forumid\" value=\"$forumid\" />
<input type=\"submit\" value=\"Send\" style=\"font-size:10px; float:right;\" accesskey=\"s\" title=\"[alt+s]\" />
</form>
</div>
</td>
</tr>
";
echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"1\" align=\"center\" style=\"width:98%;\">";
echo $thread;
echo $posts;
if(isset($_SESSION['user'])) {
echo $newpost;
} else {
echo "<tr><td colspan=\"2\"> <br /> Du skal være logget ind for at kunne poste i forummet </td></tr>";
}
echo "</table><br />";
?>
Og for at oprette en ny post i tråden, postes der til sendpost.php
<?php
$userid = $_POST['user'];
$message = $_POST['message'];
$message = nl2br($message);
$forumid = $_POST['forumid'];
$threadid = $_POST['threadid'];
$date = "" . date(Y) . "-" . date(m) . "-" . date(d) . "";
$time = "" . date(H) . ":" . date(i) . "";
$forumid = intval($forumid);
$threadid = intval($threadid);
// Get connectioninfo for MySQL
include('/var/www/mysqlcon.php');
// Values for MySQL Tagwall
$mysqlhost = localhost;
$mysqldatabase = forum;
$mysqlposts = posts;
// Connect MySQL and choose database
mysql_connect("$mysqlhost", "$mysqluser", "$mysqlpass") or die ('MySQL-login error: ' . mysql_error());
mysql_select_db($mysqldatabase);
mysql_query("INSERT INTO $mysqlposts (`threadid`, `forumid`, `message`, `date`, `time`, `userid`) VALUES ('$threadid', '$forumid', '$message', '$date', '$time', '$userid')") or die('MySQL-query error: ' . mysql_error());
$redirect = "
http://gaming.nal-net.dk/?page=posts&forumid=$forumid&threadid=$threadid";header("Location: $redirect");
?>
Som du kan se er systemet integreret med min loginsystem, men enten kan du skrive et lille loginsystem, eller også kan du gå ind og fjerne brugertjek helt.
Som sagt er det en noget rodet og ikke optimeret kode, men den kan måske lede dig på vej.
/TheEmail