Lav din helt egen gæstebog!

 

I denne artikel for i mulighed for at lærer at lave en god og sikker gæstebog.

Lad os begynde.

<html>

<head>

<title>Min egen gæstebog!</title>

</head>

<body>
<!--
Vi laver gæstebogen i en fil.
Vi laver 2 link, et til hvor man skrive i gæstebogen, og et til hvor man kan se i gæstebogen.
Med php kan man bruge $_GET til at lave flere sider med i EN fil.
Det er meget smart :-).
-->
<a href="gaestbog.php?valg=skriv">Skriv i gæstebogen</a> - <a href="gaestbog.php?valg=kig">Kig i gæstebogen</a><br><br>

<?php // PHP starter.
if($_GET[valg] == "skriv") { // Vi tester med if om brugeren har trykket på 'skriv i gæstebogen' hvis brugeren ikke har det viser den ikke.
// afslutter PHP, nu kan vi skrive html igen
?>

<!--
Her laver vi en html form, hvor action er = gaestbog.php?valg=skrivok
Når brugeren har trykket på submit knappen går den til gaestbog.php?valg=skrivok
Og vi laver sådan at når brugeren trykker kommer den hen til en $_GET ligesom ovenover.
-->
<form action="gaestbog.php?valg=skrivok" method="POST">
<b>Navn:</b> <br>
<input type="text" name="navn" size="20"><br>
<b>E-mail:</b> <br>
<input type="text" name="email" size="20"><br>
<b>Besked:</b><br>
<textarea name="besked" rows="7" cols="24"></textarea><br>
<input type="submit" value="Send">
</form>

<?php // PHP starter igen
} // afslutter '{' ovenfor.
if($_GET[valg] == "skrivok") { // Laver en GET igen.

if($_POST[navn] == "") {
echo("Du skal udfylde feltet <b>Navn</b>");
} else { // Vi tester om feltet Navn er udfyldt, hvis feltet ikke er udfyldt, siger php: Du skal udfylde feltet Navn. Hvis ikke går den videre.

if($_POST[email] == "") {
echo("Du skal udfylde feltet <b>E-mail</b>");
} else { // Vi tester om feltet email er udfyldt

if($_POST[besked] == "") {
echo("Du skal udfylde feltet <b>Besked</b>");
} else { // Vi tester om der er skrevet en besked.

if(strlen($_POST[besked]) < "10") {
echo("Det var en kort besked");
} else { // Her tester vi om brugeren har skrevet en besked på over 10 karektere. Hvis brugeren ikke har det siger den: Det var en kort besked, hvis brugerens besked var over 10 karektere går den videre.

if(is_numeric($_POST[navn])) {
echo("Jeg har aldrig hørt om tal, i et navn!");
} else { // Her tester vi med kommandoen is_numeric() om brugeren har skrevet tal i sit navn. Hvis brugeren har det, siger php: Jeg har aldrig hørt om tal, i et navn! Hvis ikke går den bare videre.

$dato = date('d/m/Y H:i:s'); // Her kalder vi datoen og klokken. d står for day, m for month, y for year, h for hour, i for minuts, s for seconds. Altså dag, måned, år, time, minut, sekund. Datoen bliver så gemt i virablen $dato
$ip = $_SERVER[REMOTE_ADDR]; // Her kalder vi vedkomnes IP, og gemmer ipen i virablen $ip
$navn = htmlspecialchars($_POST[navn]); // Vi gemmer $_POST[navn] i virablen $navn, og bruger kommandoen htmlspecialchars() for at sørge for at brugeren ikke kan bruge html i dette felt. Hvis brugeren har gjort det, bliver det bare til tekst.
$email = htmlspecialchars($_POST[email]); // Vi gemmer $_POST[email] i virablen $email
$besked = htmlspecialchars($_POST[besked]); // Vi gemmer $_POST[besked] i virablen $besked

if(!get_magic_quotes_gpc()) { // Vi laver en sikkerheds foranstaltning. Den vil jeg ikke til at fortælle om, hvis du er interesseret i at vide hvad den gør kan du søge på php.net
$navn = addslashes($navn);
$email = addslashes($email);
$besked = addslashes($besked);
}

include("db_connection.php"); // Vi inkludere php filen db_connection.php i vores fil, den sørge for der er forbindelse til databasen.
mysql_query("INSERT INTO gaestbog (dato, ip, navn, email, besked) VALUES ('$dato', '$ip', '$navn', '$email', '$besked')") or die(mysql_error()); // Vi sætter alle brugerens POSTER ind i databasen.
echo("Tak for din besked!");
}
}
}
}
}
} // Vi afslutter alle vores '{' med '}'

if($_GET[valg] == "kig") {

include("db_connection.php");
$hent = mysql_query("SELECT * FROM gaestbog ORDER BY id DESC") or die(mysql_error()); // vi henter dataene fra databasen
if(mysql_num_rows($hent)) { // tester om der er noget i databasen.
while($vis = mysql_fetch_array($hent)) { // vi bruger while til at sørge for at den henter ALLE dataene ud fra databasen, vi gemmer alle dataene i virablen $vis
?>
<table border="0" width="100%">
<tr>
<td>
<table border="0" width="100%">
<tr>
<td><b><? echo $vis[navn]; ?></b> Skriver den. <i><? echo $vis[dato]; ?></i> :</td>
</tr>
<tr>
<td><? echo nl2br($vis[besked]); ?></td>
</tr>
<tr>
<td>Kontakt:<br> <a href="mailto:<? echo $vis[email]; ?>"><? echo $vis[email]; ?></a></td>
</tr>
</table>
</td>
</tr>
</table>
<hr style="border: 1px dotted #000080" color="#000080">
<?
}
} else {
echo("Der blev intet fundet i databasen.");
}
}
?>

</body>

</html>

Gem denne fil som gaestbog.php.
Vi er stadig ikke færdige :-).
Vi mangler stadig en SQL fil, og en database connection fil.

database connection filen:

<?
mysql_connect("HOST", "BRUGER", "KODE");
mysql_select_db("DB_BRUGER");
?>

HUSK. du skal udfylde, host, bruger, kode og db_bruger. Hvis du ikke ved hvad du skal skrive i forskellige sider må du spørge din hostmaster.
Gem filen som db_connection.php

Så er vi snart færdige, nu mangler vi bare SQL filen:

CREATE TABLE `gaestbog` (
`id` int(4) unsigned NOT NULL auto_increment,
`dato` varchar(35) NOT NULL default '',
`ip` varchar(50) NOT NULL default '',
`navn` varchar(100) NOT NULL default '',
`email` varchar(100) NOT NULL default '',
`besked` longtext NOT NULL,
PRIMARY KEY (`id`))
TYPE=MyISAM;

Gem denne fil som sql.sql eller sql.txt.

Så er vi færdige.
Hvis du vil se et eksempel på gæstebogen så kig på
www.Dounie.dk/testsiden/gaestbog.php



Skrevet af: | Dato : 2005-07-26 18:5 | Læst : 49409 gange