Sida 1 av 1

Bygga ett forum

Postat: 2003-08-14 13:03
av adde
HEJ!!


jag undrar om nån här på detta forum skulle
kunna bygga ett forum till mig och min kompis.

vi kan inte php


om ni gör det kan ni få ha eran banner på sidan så länge sidan finns.


tyvärr ingen betalning


snälla kan nån

Postat: 2003-08-14 15:18
av virtuality
Följ dessa instruktioner:

Skapa en MySQL databas i phpMYadmin eller motsvarade.
Döp den dbforum.

Kör sen följande kod på den sidan där du kan skriva in egna SQL-kommandon:

Kod: Markera allt

CREATE TABLE forum(
inID mediumint AUTO_INCREMENT ,
svID mediumint default 0,
amne varchar( 45 ) ,
namn varchar( 20 ) ,
epost varchar( 20 ) ,
inlagg varchar( 255 ) ,
datum datetime,
udatum datetime,
antal_sv smallint default 0,
ip_addr varchar( 15 ) ,
PRIMARY KEY ( inID ) 
) 
När du gjort det skapar du filen start.php som ska innehålla följande kod:
OBS!!! Du måste ändra användarnamn och lösenord i ALLA filerna, förutom forum.css. Leta efter "webben"

Kod: Markera allt

<html>
<head>
<title>Mitt forum</title>
<link rel="stylesheet" href="forum.css" type="text/css">
</head>
<body>
<a href="nytt.php">Skapa nytt inlägg</a><p>
<?
// ÄNDRA NEDAN SÅ DET PASSAR
$dbh=@mysql_connect("localhost","webben","webben")
  or die("Kunde inte ansluta till databasen!");
$query="SELECT * FROM forum WHERE forum.svID = 0 ORDER BY datum DESC";

mysql_select_db("dbforum", $dbh);
$resultat=mysql_query($query, $dbh);

echo '<table border="0" cellspacing="0" cellpadding="0">';
while ($rad=mysql_fetch_array($resultat)) {
    $textex = substr($rad["inlagg"],0,19)."...";    
?>
<tr>
<td bgcolor="#0000FF">
<a name="id_<?=$rad["inID"]?>"></a>
<font face="Verdana, Arial" color="#FFFFFF" size="2">
<b>Ämne: </b><a href="las.php?inID=<?=$rad["inID"]?>" class="forum_amne"><?=$rad["amne"]?></a>
</font>
</td>
<td bgcolor="#0000FF">&nbsp;</td>
<td bgcolor="#0000FF" align="right">
<font face="Verdana, Arial" color="#FFFFFF" size="2">
<b>Antal svar: </b><?=$rad["antal_sv"]?>
</font>
</td>
</tr>
<tr>
<td bgcolor="#AAAAAA" colspan="3">
<font face="Verdana, Arial" color="#FFFFFF" size="2">
<b><a href="mailto:<?=$rad["epost"]?>"><?=$rad["namn"]?></a></b>
</font>
</td>
</tr>
<tr>
<td bgcolor="#AAAAAA" colspan="3">
<font face="Verdana, Arial" color="#000000" size="2">
<a href="las.php?inID=<?=$rad["inID"]?>" class="forum_textex"><i><?=$textex?></i></a>
</font>
</td>
</tr>
<tr>
<td bgcolor="#0000FF">
<font face="Verdana, Arial" color="#FFFFFF" size="2">
Skapad: <?=$rad["datum"]?>
</font>
</td>
<td bgcolor="#0000FF" width="50">&nbsp;</td>
<td bgcolor="#0000FF">
<font face="Verdana, Arial" color="#FFFFFF" size="2">
Senaste inlägg:	<?=$rad["udatum"]?>
</font>
</td>
</tr>
<tr><td colspan="3">&nbsp;</td>
<?
}
?>
</table>
</body>
</html>


Denna kod är filen nytt.php:

Kod: Markera allt

<html>
<head><title>Nytt inlägg</title>
<script Language="JavaScript">
function Validera() {	
	amne = document.formen.amne.value;
	namn = document.formen.namn.value;
	epost = document.formen.epost.value;
	inlagg = document.formen.inlagg.value;
	if ((amne!="")&&(namn!="")&&(epost!="")&&(inlagg!="")) {
	  return true;
        } else {
	  alert("Du glömde nog att fylla i något av fälten\nÄmne, Namn, Epost eller Inlägg");
	  return false;
	}	
}	
</script>
</head>
<a href="start.php">Tillbaka till forumet</a>
<?
// ÄNDRA NEDAN!!!
if (isset($posta)) {
    $dbh=@mysql_connect("localhost","webben","webben")
      or die("Kunde inte ansluta till databasen");
    $datum=date("Y-m-d H:i:s");
    $query="INSERT INTO forum(amne,namn,epost,inlagg,datum) VALUES";
    $query.="('$amne','$namn','$epost','$inlagg','$datum')";
    
    mysql_select_db("dbforum", $dbh);
    mysql_query($query, $dbh);
    
    echo "Ditt inlägg är registrerat!";
} else {
?>
<form action="<?=$PHP_SELF?>" method="POST" name="formen" onSubmit="return Validera();">
Ämne:<br>
<input type="text" name="amne"><br>
Namn:<br>
<input type="text" name="namn"><br>
Epost:<br>
<input type="text" name="epost"><br>
Inlägg:<br>
<textarea name="inlagg" rows="5" cols="40"></textarea><br>
<input type="submit" value="Posta inlägg" name="posta">
<input type="reset" value="Återställ">
</form>
<?
}
?>
</body>
</html>
Skapa nu filen las.php:

Kod: Markera allt

<html>
<head>
<script Language="JavaScript">
function Validera() {	
	amne = document.formen.amne.value;
	namn = document.formen.namn.value;
	epost = document.formen.epost.value;
	inlagg = document.formen.inlagg.value;
	if ((amne!="")&&(namn!="")&&(epost!="")&&(inlagg!="")) {
	  return true;
        } else {
	  alert("Du glömde nog att fylla i något av fälten\nNamn, Epost eller Inlägg");
	  return false;
	}	
}	
</script>
<link rel="stylesheet" href="forum.css" type="text/css">
</head>
<body>
<a href="start.php#id_<?=$inID?>">Tillbaka till forumet</a><br>
<?
// ÄNDRA NEDAN!!!
$dbh=@mysql_connect("localhost","webben","webben")
  or die("Kunde inte ansluta till databasen!");
$query="SELECT * FROM forum where inID=$inID";

mysql_select_db("dbforum", $dbh);
$resultat=mysql_query($query, $dbh);

$rad=mysql_fetch_array($resultat);
echo "<title>Forum - Läser om: ".$rad["amne"]."</title>";
$orgamne=$rad["amne"];
if (empty($top))
  $top=$inID;
?>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td bgcolor="#0000FF">
<font face="Verdana, Arial" color="#FFFFFF" size="2">
<b>Ämne: </b><?=$rad["amne"]?>
</font>
</td>
<td bgcolor="#0000FF" colspan="2">&nbsp;</td>
</td>
</tr>
<tr>
<td bgcolor="#AAAAAA" colspan="3">
<font face="Verdana, Arial" color="#FFFFFF" size="2">
<b><a href="mailto:<?=$rad["epost"]?>"><?=$rad["namn"]?></a></b>
</font>
</td>
</tr>
<tr>
<td bgcolor="#AAAAAA" colspan="3">
<font face="Verdana, Arial" color="#000000" size="2">
<?=wordwrap($rad["inlagg"],60,"<br>",1)?>
</font>
</td>
</tr>
<tr>
<td bgcolor="#0000FF">
<font face="Verdana, Arial" color="#FFFFFF" size="2">
Skapad: <?=$rad["datum"]?>
</font>
</td>
<td bgcolor="#0000FF" width="50">&nbsp;</td>
<td bgcolor="#0000FF">
<font face="Verdana, Arial" color="#FFFFFF" size="2">
Senaste inlägg:	<?=$rad["udatum"]?>
</font>
</td>
</tr>
<tr><td colspan="3">&nbsp;</td>
</table>

<?
$query="SELECT * FROM forum WHERE svID=$inID ORDER BY datum DESC";

mysql_select_db("dbforum", $dbh);
$resultat=mysql_query($query, $dbh);

echo "<ul>";
while ($rad = mysql_fetch_array($resultat))
  Visa_Svar($rad["inID"], $rad["amne"], $rad["namn"], $rad["datum"]);
echo "</ul><hr>";
Visa_Form($orgamne);

function Visa_Svar($svarID, $svaramne, $svarnamn, $svardatum) {
    global $top;
?>
<li>
<a href="las.php?inID=<?=$svarID?>&top=<?=$top?>"><?=$svaramne?></a> skrivet av <?=$svarnamn?>, <?=$svardatum?>
</li>
<?	
// ÄNDRA NEDAN!!!
    $dbh=mysql_connect("localhost","webben","webben")
      or die("Kunde inte ansluta till databasen!");
    $query="SELECT * FROM forum WHERE svID=$svarID ORDER BY datum DESC";
    
    mysql_select_db("dbforum", $dbh);
    $resultat=mysql_query($query, $dbh);
    
    while ($rad=mysql_fetch_array($resultat)) {
	echo "<ul>";
	Visa_Svar($rad["inID"], $rad["amne"], $rad["namn"], $rad["datum"]);
	echo "</ul>";
    }
}

function Visa_Form($svamne) {
    global $inID, $top;
?>
Svara på inlägget:<br>
<form action="laggtill.php" name="formen" method="get" onSubmit="return Validera();">
Ämne:<br>
<input type="text" value="Svar: <?=$svamne?>" name="amne"><br>
Namn:<br>
<input type="text" name="namn"><br>
Epost:<br>
<input type="text" name="epost"><br>
Svar:<br>
<textarea name="inlagg" rows="5" cols="40"></textarea><br>
<input type="hidden" name="inID" value="<?=$inID?>">
<input type="hidden" name="top" value="<?=$top?>">
<input type="submit" value="Posta inlägg">
<input type="reset" value="Återställ">
</form>
<?
}
?>
</body>
</html>	
Näst sista filen, laggtill.php:

Kod: Markera allt

<html>
<head>
<title>Forum - Svarar på: <?=$amne?></title>
<link rel="stylesheet" href="forum.css" type="text/css">
</head>
<body>
<?
// ÄNDRA NEDAN!!
$dbh=@mysql_connect("localhost","webben","webben")
  or die("Kunde inte ansluta till databasen!");
$datum=date("Y-m-d H:i:s");
$query="INSERT INTO forum(svID,amne,namn,inlagg,datum) VALUES";
$query.="($inID,'$amne','$namn','$inlagg','$datum')";

mysql_select_db("dbforum", $dbh);
mysql_query($query, $dbh);

$query="UPDATE forum SET udatum='$datum', antal_sv = antal_sv+1 WHERE inID=$top";
mysql_query($query, $dbh);

mysql_close($dbh);

echo "Tack för ditt svar!";
?>
<p>
<a href="start.php#id_<?=$inID?>">Tillbaka till forumet</a>
</body>
</html>	


Och så till slut CSS-filen, som ska heta forum.css:

Kod: Markera allt

.forum_amne {color: RGB(255,255,255);
	     text-decoration: none;}
.forum_textex {color: RGB(255,255,0);
	       text-decoration: none;}	



Det var allt! Behöver du hjälp får du fråga :)

Postat: 2003-08-15 09:55
av adde
Det skrev du längst upp i ditt inlägg.


virtuality skrev:Följ dessa instruktioner:

Skapa en MySQL databas i phpMYadmin eller motsvarade.
Döp den dbforum.

Kör sen följande kod på den sidan där du kan skriva in egna SQL-kommandon:

vart finns phpMYadmin mojset

Postat: 2003-08-15 12:15
av Kail
Installera phpBB.

Postat: 2003-08-15 14:32
av adde
och hur gör jag det