Mja, för att göra det så enkelt som möjligt, kan vi väl börja med att skapa databas-tabellen. Den kan se ut som följande:
ID - [i]int[/i] - autoincrement
Name - [i]varchar[/i]
Email - [i]varchar[/i]
Guestbook - [i]longtext[/i]
Written - [i]datetime[/i]
IP - [i]varchar[/i]
Nu när vi har tabellen är det bara att sätta igång och koda. Vi börjar med formuläret:
<form method="post" action="">
<p>
<table cellspacing="0" cellpadding="2" style="border: none;">
<tr>
<td><b>Namn:</b></td>
<td><input type="text" name="name" size="30" /></td>
</tr>
<tr>
<td><b>Email:</b></td>
<td><input type="text" name="email" size="30" /></td>
</tr>
<tr>
<td><input type="hidden" name="type" value="1" /></td>
<td><textarea name="guestbook" cols="30" rows="50" style="width: 300px; height: 120px;"></textarea></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" value="Skriv i gästboken" /></td>
</tr>
</table>
</p>
</form>
Vilket är väldigt enkelt uppbyggt. Som du ser har jag en hidden-input med. Detta för att förenkla senare när du lägger till datan i tabellen. Du får se...
Så, då sparar vi helt enkelt koden i databasen.
if($_POST[type] == 1) {
$written = date("Y-m-d H:i:s");
$ip = getenv("REMOTE_ADDR");
mysql_query("INSERT INTO guestbook (Name, Email, Guestbook, Written, IP) VALUES ('$_POST[name]','$_POST[email]','$_POST[guestbook]','$written','$ip')") or die(mysql_error());
Header("Location: guestbook.php?");
}
Som du ser så har jag en if-sats som kollar om den inputen som var hidden har värdet 1, och det har den, alltså kör den koden mellan klamrarna {}. Och koden är inte så mycket att skriva om, den lägger helt enkelt till data i tabellen och sedan skickar vidare besökaren till guestbook.php? så att formulärdatan försvinner. Om du inte haft Headern där så hade datan lagts till igen om du uppdaterat sidan (enkelt beskrivet).
Nå, då ska vi loopa ut alla poster, detta görs t.ex. genom att skriva såhär:
$S_GUESTBOOK = mysql_query("SELECT * FROM guestbook ORDER BY ID DESC") or die(mysql_error());
while($row = mysql_fetch_array($S_GUESTBOOK)) {
echo '
<table cellspacing="0" cellpadding="2" style="border: none; width: 400px;">
<tr>
<td style="width: 200px;"><a href="mailto:'.$row['Email'].'">'.$row['Name'].'</a></td>
<td>'.$row['Written'].'</td>
</tr>
<tr>
<td colspan="2">'.$row['Guestbook'].'</td>
</tr>
</table>
<br />
';
}
Så! Nu har du en färdig gästbok! Tänk på att det INSERT-koden ska ligga överst på sidan, innan all HTML-kod. Annars får du strul med Headern.
