Scripts
gastenboek met PHP, MySQL, smileys
Beste mensen, Ik heb verschillende scripts die op deze website en op andere websites staan aan elkaar gekoppeld omdat ik een gastenboek wou hebben met verschillende opties erin zoals: verschillende pagina's, smileys. Doordat ik dit niet kon vinden ben ik zelf aan het prutsen gegaan het kan zijn dat er stukjes van jou script bij zitten (voel je dan maar vereerd :P). Voor de mensen die graag een kant en klaar gastenboek willen kunnen ze deze kopieren en aanpassen naar keuze. Ook sta ik open voor commentaar en verbeteringen want ik heb nog niet zoveel ervaring in PHP.
gastenboek-met-php-mysql-smileys
[code]
<html>
<head>
<script type="text/javascript">
function addText(text){
document.getElementById('tekst').value += text;
}
</script>
<body>
<style type="text/css">
<!--
body {
background-color: #ffffe0;
}
body, td, th {
font-family: Times New Roman, Times, serif;
}
-->
</style>
<?
/* de create table
CREATE TABLE `gastenboek` (
`id` int(11) NOT NULL auto_increment,
`naam` varchar(100) NOT NULL default '',
`email` varchar(200) NOT NULL default '',
`bericht` text NOT NULL,
`datum` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`id`)
);
*/
$mysql_user = "***"; // je mysql login naam
$mysql_pass = "***"; // je mysql wachtwoord
$mysql_host = "***"; // de host van je mysql database (localhost is meestal wel oke)
$mysql_dbn = "***"; // de naam van je database
//verbinding
if (!@mysql_select_db($mysql_dbn, @mysql_connect($mysql_host, $mysql_user, $mysql_pass)))
{
echo "database connectie mislukt!";
exit();
}
if ($_SERVER['REQUEST_METHOD'] == "POST" && !empty($_POST['naam']) && !empty($_POST['email']) && !empty($_POST['bericht']) && strstr($_POST['email'], '@'))
{
$datum = date('Y-m-d H:i:s');
//scheldwoordenfilter
$_POST['bericht'] = htmlspecialchars($_POST['bericht']);
$_POST['bericht'] = addslashes($_POST['bericht']);
$_POST['bericht'] = eregi_replace('klote','***',$_POST['bericht']);
$_POST['bericht'] = eregi_replace('kut','***',$_POST['bericht']);
//smileys
$_POST['bericht'] = str_replace(':D','<img src=\"smiley/biggrin.gif\">',$_POST['bericht']);
$_POST['bericht'] = str_replace(':d','<img src=\"smiley/biggrin.gif\">',$_POST['bericht']);
$_POST['bericht'] = str_replace('o-)','<img src=\"smiley/angel.gif\">',$_POST['bericht']);
$_POST['bericht'] = str_replace('O-)','<img src=\"smiley/angel.gif\">',$_POST['bericht']);
$_POST['bericht'] = str_replace(':klap:','<img src=\"smiley/applause.gif\">',$_POST['bericht']);
$_POST['bericht'] = str_replace(':$','<img src=\"smiley/ashamed.gif\">',$_POST['bericht']);
$_POST['bericht'] = str_replace(':s','<img src=\"smiley/confused.gif\">',$_POST['bericht']);
$_POST['bericht'] = str_replace(':S','<img src=\"smiley/confused.gif\">',$_POST['bericht']);
$_POST['bericht'] = str_replace('(H)','<img src=\"smiley/cool.gif\">',$_POST['bericht']);
$_POST['bericht'] = str_replace('(h)','<img src=\"smiley/cool.gif\">',$_POST['bericht']);
$_POST['bericht'] = str_replace('^o)','<img src=\"smiley/ehh.gif\">',$_POST['bericht']);
$_POST['bericht'] = str_replace('^O)','<img src=\"smiley/ehh.gif\">',$_POST['bericht']);
$_POST['bericht'] = str_replace(':bang:','<img src=\"smiley/fear.gif\">',$_POST['bericht']);
$_POST['bericht'] = str_replace(':o','<img src=\"smiley/impressed.gif\">',$_POST['bericht']);
$_POST['bericht'] = str_replace(':O','<img src=\"smiley/impressed.gif\">',$_POST['bericht']);
$_POST['bericht'] = str_replace('^^','<img src=\"smiley/kidding.gif\">',$_POST['bericht']);
$_POST['bericht'] = str_replace('^_^','<img src=\"smiley/kidding.gif\">',$_POST['bericht']);
$_POST['bericht'] = str_replace(':@','<img src=\"smiley/mad.gif\">',$_POST['bericht']);
$_POST['bericht'] = str_replace(':-@','<img src=\"smiley/mad.gif\">',$_POST['bericht']);
$_POST['bericht'] = str_replace(':|','<img src=\"smiley/neutral.gif\">',$_POST['bericht']);
$_POST['bericht'] = str_replace(':-|','<img src=\"smiley/neutral.gif\">',$_POST['bericht']);
$_POST['bericht'] = str_replace(':roll:','<img src=\"smiley/rolleyes.gif\">',$_POST['bericht']);
$_POST['bericht'] = str_replace(':(','<img src=\"smiley/sad.gif\">',$_POST['bericht']);
$_POST['bericht'] = str_replace(':-(','<img src=\"smiley/sad.gif\">',$_POST['bericht']);
$_POST['bericht'] = str_replace(':bleh:','<img src=\"smiley/sick.gif\">',$_POST['bericht']);
$_POST['bericht'] = str_replace(':x','<img src=\"smiley/silenced.gif\">',$_POST['bericht']);
$_POST['bericht'] = str_replace(':X','<img src=\"smiley/silenced.gif\">',$_POST['bericht']);
$_POST['bericht'] = str_replace(':)','<img src=\"smiley/smile.gif\">',$_POST['bericht']);
$_POST['bericht'] = str_replace(':-)','<img src=\"smiley/smile.gif\">',$_POST['bericht']);
$_POST['bericht'] = str_replace(':P','<img src=\"smiley/tongue.gif\">',$_POST['bericht']);
$_POST['bericht'] = str_replace(':p','<img src=\"smiley/tongue.gif\">',$_POST['bericht']);
$_POST['bericht'] = str_replace(':twisted:','<img src=\"smiley/twisted.gif\">',$_POST['bericht']);
$_POST['bericht'] = str_replace(':whistle:','<img src=\"smiley/whistle.gif\">',$_POST['bericht']);
$_POST['bericht'] = str_replace(';)','<img src=\"smiley/wink.gif\">',$_POST['bericht']);
$_POST['bericht'] = str_replace(';-)','<img src=\"smiley/wink.gif\">',$_POST['bericht']);
//zet bericht in database
$sql = "INSERT INTO gastenboek SET ";
$sql .= "id = ''";
$sql .= ", naam = '" . $_POST['naam'] . "'";
$sql .= ", email = '" . $_POST['email'] . "'";
$sql .= ", bericht = '" . $_POST['bericht'] . "'";
$sql .= ", datum = '" . $datum . "'";
//voert de SQL code uit
$res = mysql_query($sql);
if (!empty($res))
{
echo "<center><h1>Bericht toegevoegd</h1>";
echo "<p>Bedankt voor je bericht. Het bericht is toegevoegd. Ga nu naar <a href=\"" . $_SERVER['PHP_SELF'] . "\" title=\"Berichten overzicht\">het berichten overzicht</a>.</center>";
}
else
echo "<center>Bericht NIET toegevoegd. Er is iets misgegaan met het invoeren in de database.</center>";
}
elseif ($_GET['show'] == "add" || $_POST['show'] == "add")
{
echo "<center><h1>Voeg een bericht toe</h1>";
echo "<p>Toon mij <a href=\"" . $_SERVER['PHP_SELF'] . "\" title=\"Berichten in gastenboek\">alle berichten in het gastenboek</a>.</p>";
// Als het formulier verstuurd is, dan ben je hier eerder geweest. De velden zijn dan niet juist ingevuld.
if ($_SERVER['REQUEST_METHOD'] == "POST")
echo "<p>Je bent enkele velden vergeten in te vullen of je hebt geen juist e-mail adres ingevuld.</p>";
//formulier
echo "<form method=\"POST\" action=\"" . $_SERVER['PHP_SELF'] . "\">";
echo "<p>";
echo "<input type=\"hidden\" name=\"show\" value=\"add\" />";
//invulveld
echo "Naam:<br />";
echo "<input type= \"text\" name=\"naam\" cols=\"35\" value=\"" . htmlentities($_POST['naam']) . "\"><br />";
echo "Email:<br />";
echo "<input type=\"text\" name=\"email\" cols=\"35\" value=\"" . htmlentities($_POST['email']) . "\"><br />";
echo "<center>Bericht:<br /></center>";
?>
<table width="105" border="0">
<tr>
<?php
//smileys
echo "<td><a href=\"#\" onClick=\"addText('o-)')\"><img src=\"smiley/angel.gif\" border=\"0\"</a></td>";
echo "<td><a href=\"#\" onClick=\"addText(':klap:')\"><img src=\"smiley/applause.gif\" border=\"0\"</a></td>";
echo "<td><a href=\"#\" onClick=\"addText(':$')\"><img src=\"smiley/ashamed.gif\" border=\"0\"</a></td>";
echo "<td><a href=\"#\" onClick=\"addText(':D')\"><img src=\"smiley/biggrin.gif\" border=\"0\"</a></td>";
echo "<td><a href=\"#\" onClick=\"addText(':S')\"><img src=\"smiley/confused.gif\" border=\"0\"</a></td>";
echo "<td><a href=\"#\" onClick=\"addText('(H)')\"><img src=\"smiley/cool.gif\" border=\"0\"</a></td>";
echo "<td><a href=\"#\" onClick=\"addText('^o)')\"><img src=\"smiley/ehh.gif\" border=\"0\"</a></td>";
?>
</tr>
<tr>
<?php
echo "<td><a href=\"#\" onClick=\"addText(':bang:')\"><img src=\"smiley/fear.gif\" border=\"0\"</a></td>";
echo "<td><a href=\"#\" onClick=\"addText(':O')\"><img src=\"smiley/impressed.gif\" border=\"0\"</a></td>";
echo "<td><a href=\"#\" onClick=\"addText('^_^')\"><img src=\"smiley/kidding.gif\" border=\"0\"</a></td>";
echo "<td><a href=\"#\" onClick=\"addText(':@')\"><img src=\"smiley/mad.gif\" border=\"0\"</a></td>";
echo "<td><a href=\"#\" onClick=\"addText(':|')\"><img src=\"smiley/neutral.gif\" border=\"0\"</a></td>";
echo "<td><a href=\"#\" onClick=\"addText(':roll:')\"><img src=\"smiley/rolleyes.gif\" border=\"0\"</a></td>";
echo "<td><a href=\"#\" onClick=\"addText(':(')\"><img src=\"smiley/sad.gif\" border=\"0\"</a></td>";
?>
</tr>
<tr>
<?php
echo "<td><a href=\"#\" onClick=\"addText(':bleh:')\"><img src=\"smiley/sick.gif\" border=\"0\"</a></td>";
echo "<td><a href=\"#\" onClick=\"addText(':X')\"><img src=\"smiley/silenced.gif\" border=\"0\"</a></td>";
echo "<td><a href=\"#\" onClick=\"addText(':)')\"><img src=\"smiley/smile.gif\" border=\"0\"</a></td>";
echo "<td><a href=\"#\" onClick=\"addText(':P')\"><img src=\"smiley/tongue.gif\" border=\"0\"</a></td>";
echo "<td><a href=\"#\" onClick=\"addText(':twisted:')\"><img src=\"smiley/twisted.gif\" border=\"0\"</a></td>";
echo "<td><a href=\"#\" onClick=\"addText(':whistle:')\"><img src=\"smiley/whistle.gif\" border=\"0\"</a></td>";
echo "<td><a href=\"#\" onClick=\"addText(';)')\"><img src=\"smiley/wink.gif\" border=\"0\"</a></td>";
?>
</tr>
</table>
<?php
echo "<textarea name=\"bericht\" id=\"tekst\" rows=\"5\" cols=\"35\">" . htmlentities($_POST['bericht']) . "</textarea><br />";
echo "<input type=\"submit\" name=\"submit\" value=\" Bericht plaatsen \"></p>";
echo "</form></center>";
}
else
{
echo "<h1><center>Gastenboek</center></h1>";
echo "<center><p>Voeg een <a href=\"" . $_SERVER['PHP_SELF'] . "?show=add\">nieuw bericht</a> toe aan het gastenboek.</p><br/> </center>";
//voor pagina nummering
$res1 = mysql_query("SELECT COUNT(id) FROM gastenboek") or die("res1: ".mysql_error()); // vraag het AANTAL items op
$items_totaal = mysql_result($res1, 0);
mysql_free_result($res1);
$items_per_pagina = 10; // aantal items per pagina
$aantal_paginas = ceil($items_totaal / $items_per_pagina);
// de huidige pagina opvragen
$huidige_pagina = 0;
if(isset($_GET['p']) && is_numeric($_GET['p']) && $_GET['p'] > 0 && $_GET['p'] < $aantal_paginas)
{
$huidige_pagina = $_GET['p'];
}
// items van de huidige pagina ophalen
$offset = $huidige_pagina * $items_per_pagina;
$sql = ("SELECT id,naam,email,bericht,DATE_FORMAT(datum, '%d.%m.%Y') as show_datum FROM gastenboek ORDER BY datum DESC LIMIT ".$offset. "," .$items_per_pagina) or die("sql:". mysql_error());
// Voer SQL code uit
$res = mysql_query($sql);
// Kijk of er 1 of meerdere rijen gevonden zijn
if (mysql_num_rows($res) >= 1)
{
// Toon elke rij tot dat er geen rijen meer zijn
while ($row = mysql_fetch_array($res))
{
$row['email'] = htmlentities($row['email']);
$row['naam'] = nl2br(htmlentities($row['naam']));
$row['bericht'] = stripslashes(nl2br($row['bericht']));
?>
<div align="center">
<table width="400" border="1" align="center">
<tr>
<td bgcolor="#FFCC66"><?php echo "<p><a href=\"mailto:" . $row['email'] . "\">" . $row['naam'] . "</a> schreef op <i>" . $row['show_datum'] . "</i>:</td>"; ?>
</tr>
<tr>
<td><?php echo $row['bericht']; ?></td>
</tr>
</table>
<?php
echo "<br/>";
}
for($i = 0; $i < $aantal_paginas; $i++) {
if($huidige_pagina == $i) {
// huidige pagina is niet klikbaar
echo "<b>".($i+1)."</b>";
} else {
// een andere pagina dan de huidige is wel klikbaar
echo "<a href=\"".$_SERVER['PHP_SELF']."?p=".$i."\">".($i+1)."</a>";
}
// deel-streepje tussen alle items
if($i < $aantal_paginas - 1) {
echo " - ";
}
}
}
// Er zijn geen rijen gevonden, geef aan dat er nog geen berichten zijn toegevoegd
else
echo "<p>Er zijn nog geen gastenboek berichten toegevoegd.</p>";
}
?>
</p>
</div>
[/code]
Reacties
0