Simpel gastenboek (zelf uit te breiden)
Auteur: ikki007 - 02 september 2007 - 18:36 - Gekeurd door: marten - Hits: 20343 - Aantal punten: 4.00 (1 stem)
Dit is een simpel gastenboek die wel alle standaard optie's heeft die men nodig heeft om goed te kunnen functioneren.
Er zit geen layout omheen dus makkelijk in je site te plaatsen.
Ik post dit omdat als men een eigen gastenboek gaat maken hier heel makkelijk op kan verder bouwen en eventueel ook van kan leren.
Ik heb wel uitgebreidere versie's met captcha e.d. maar deze zijn niet opensource.
Ook deze is geschreven in mijn vroegere PHP-tijden dus waarschijnlijk zitten er wel wat rare stukjes in.
Zelf even de SQL toevoegen en dan config.inc.php aanpassen (zie commentlines).
Code:
MySQL
CREATE TABLE gb_berichten (
id INT(11) AUTO_INCREMENT,
naam VARCHAR(50) NOT NULL default '',
email VARCHAR(255) NOT NULL default '',
bericht TEXT,
datum VARCHAR(20) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM;
CREATE TABLE gb_berichten (
id INT( 11 ) AUTO_INCREMENT ,
naam VARCHAR( 50 ) NOT NULL DEFAULT '' ,
email VARCHAR( 255 ) NOT NULL DEFAULT '' ,
bericht TEXT,
datum VARCHAR( 20 ) NOT NULL DEFAULT '' ,
PRIMARY KEY ( id)
) TYPE= MyISAM;
config.inc.php
<?php
if(!defined('GB_SYS') || GB_SYS !== TRUE) {
die2("Hacking attempt");
}
// Je connectie
$dbServer = "localhost";
$dbUser = "root";
$dbPass = "wachtwoord";
$dbDbName = "ikki007";
$prefix = "gb_";
// De admin info voor je beheer
$user = 'test';
$password = 'admin';
$md5Pass = md5($password);
mysql_connect ($dbServer, $dbUser, $dbPass) or die (mysql_error());
mysql_select_db($dbDbName) or die (mysql_error());
if(!function_exists('gb_input')) {
function gb_input($value)
{
if (!in_array(ini_get('magic_quotes_gpc'), array('', '0', 'Off', 'False', 'No'))) {
$value = stripslashes($value);
}
if (!is_numeric($value)) {
$value = htmlentities($value);
}
return $value;
}
}
if(!function_exists('gb_checkemail')) {
function gb_checkemail($input) {
$pattern = "/^([a-z0-9_-]+\.)*[a-z0-9_-]+@([a-z0-9_-]{2,}\.)+([a-z0-9_-]{2,})$/i"; // Thanks to FangorN
return preg_match($pattern, $input);
}
}
if(!function_exists('gb_get')) {
function gb_get($item, $default) {
return (isset($_GET[$item]) ? $_GET[$item] : $default);
}
}
function die2($msg = '')
{
print $msg.'<br />';
// hier de rest van je footer plakken als de pagina gestopt wordt ivm met errors!
print '</body></html>';
exit;
}
// Error reporting
error_reporting(E_ALL ^ E_NOTICE);
?>
<?php
if ( ! defined ( 'GB_SYS' ) || GB_SYS
!== TRUE ) { die2( "Hacking attempt" ) ;
}
// Je connectie
$dbServer = "localhost" ;
$dbUser = "root" ;
$dbPass = "wachtwoord" ;
$dbDbName = "ikki007" ;
$prefix = "gb_" ;
// De admin info voor je beheer
$user = 'test' ;
$password = 'admin' ;
$md5Pass = md5 ( $password ) ;
function gb_input( $value )
{
}
}
return $value ;
}
}
function gb_checkemail( $input ) {
$pattern = "/^([a-z0-9_-]+\.)*[a-z0-9_-]+@([a-z0-9_-]{2,}\.)+([a-z0-9_-]{2,})$/i" ; // Thanks to FangorN
}
}
function gb_get( $item , $default ) {
return ( isset ( $_GET [ $item ] ) ?
$_GET [ $item ] : $default ) ;
}
}
function die2( $msg = '' )
{
// hier de rest van je footer plakken als de pagina gestopt wordt ivm met errors!
}
// Error reporting
?>
gastenboek.php
<?php
ob_start();
session_start();
define("GB_SYS", true);
// ===============================================================================
// GUESTBOOK
// ===============================================================================
// /gastenboek.php
// ===============================================================================
// Including the config
require_once("config.inc.php");
$select = mysql_query("SELECT * FROM ".$prefix."berichten ORDER BY id DESC");
$aantal = @mysql_num_rows($select);
if($aantal > 0) {
print 'Aantal berichten: '.$aantal.'<br /><br />';
while($fetch = mysql_fetch_assoc($select)) {
echo $fetch['id'].' - Naam: <a href="mailto:'.$fetch['email'].'">'.$fetch['naam'].'</a> - Datum: '.$fetch['datum'].'<br />Bericht: '.$fetch['bericht'].'<br /><hr><br />';
}
} else {
print 'Het gastenboek is leeg';
}
print '<br /><br /><a href="toevoegen.php">Bericht toevoegen</a>';
?>
<?php
// ===============================================================================
// GUESTBOOK
// ===============================================================================
// /gastenboek.php
// ===============================================================================
// Including the config
require_once ( "config.inc.php" ) ;
$select = mysql_query ( "SELECT * FROM " . $prefix . "berichten ORDER BY id DESC" ) ;
if ( $aantal > 0 ) {
print 'Aantal berichten: ' . $aantal . '<br /><br />' ;
echo $fetch [ 'id' ] . ' - Naam: <a href="mailto:' . $fetch [ 'email' ] . '">' . $fetch [ 'naam' ] . '</a> - Datum: ' . $fetch [ 'datum' ] . '<br />Bericht: ' . $fetch [ 'bericht' ] . '<br /><hr><br />' ;
}
} else {
print 'Het gastenboek is leeg' ;
}
print '<br /><br /><a href="toevoegen.php">Bericht toevoegen</a>' ; ?>
toevoegen.php
<?php
ob_start();
session_start();
define("GB_SYS", true);
// ===============================================================================
// GUESTBOOK
// ===============================================================================
// /toevoegen.php
// ===============================================================================
// Including the config
require_once("config.inc.php");
// Getting the action
$action = gb_get('action', 'x');
if($action == 'toevoegen') {
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$email = gb_input($_POST['email']);
$naam = gb_input($_POST['name']);
$bericht = gb_input($_POST['msg']);
if(gb_checkemail($email) && strlen($email) < 256) {
if(preg_match("/^[a-zA-Z]+$/", $naam) && strlen($naam) < 51) {
if(strlen($bericht) < 65536) {
$dag = (strlen(date("j")) == 1 ? 0 : '');
$datum = $dag.date("j/m/y H:i:s");
$query = mysql_query("INSERT INTO ".$prefix."berichten (naam, email, bericht, datum) VALUES ('".$naam."', '".$email."', '".$bericht."', '".$datum."')");
if($query) {
header('Location: gastenboek.php');
} else {
print 'Er is iets misgegaan bij het toevoegen van uw bericht. Neem contact op met de beheerder.';
}
} else {
die2('Uw bericht is te lang');
}
} else {
die2('Ongeldige naam');
}
} else {
die2('Ongeldig emailadres');
}
} else {
die2('Hacking attempt');
}
} else {
?>
<form action="?action=toevoegen" method="post">
Naam:<br />
<input type="text" name="name" maxlength="50"><br />
Email:<br />
<input type="text" name="email" maxlength="255"><br />
Bericht:<br />
<textarea name="msg" cols="70" rows="20" maxlength="65535"></textarea><br />
<br />
<input type="submit" value="Toevoegen">
</form>
<?php
}
?>
<?php
// ===============================================================================
// GUESTBOOK
// ===============================================================================
// /toevoegen.php
// ===============================================================================
// Including the config
require_once ( "config.inc.php" ) ;
// Getting the action
$action = gb_get( 'action' , 'x' ) ;
if ( $action == 'toevoegen' ) {
if ( $_SERVER [ 'REQUEST_METHOD' ] == 'POST' ) {
$email = gb_input( $_POST [ 'email' ] ) ;
$naam = gb_input( $_POST [ 'name' ] ) ;
$bericht = gb_input( $_POST [ 'msg' ] ) ;
if ( gb_checkemail
( $email ) && strlen ( $email ) < 256 ) {
if ( strlen ( $bericht ) < 65536 ) {
$datum = $dag . date ( "j/m/y H:i:s" ) ; $query = mysql_query ( "INSERT INTO " . $prefix . "berichten (naam, email, bericht, datum) VALUES ('" . $naam . "', '" . $email . "', '" . $bericht . "', '" . $datum . "')" ) ;
if ( $query ) {
header ( 'Location: gastenboek.php' ) ; } else {
print 'Er is iets misgegaan bij het toevoegen van uw bericht. Neem contact op met de beheerder.' ; }
} else {
die2( 'Uw bericht is te lang' ) ;
}
} else {
die2( 'Ongeldige naam' ) ;
}
} else {
die2( 'Ongeldig emailadres' ) ;
}
} else {
die2( 'Hacking attempt' ) ;
}
} else {
?>
<form action="?action=toevoegen" method="post">
Naam:<br />
<input type="text" name="name" maxlength="50"><br />
Email:<br />
<input type="text" name="email" maxlength="255"><br />
Bericht:<br />
<textarea name="msg" cols="70" rows="20" maxlength="65535"></textarea><br />
<br />
<input type="submit" value="Toevoegen">
</form>
<?php
}
?>
admin/beheer.php
<?php
ob_start();
session_start();
define("GB_SYS", true);
// ===============================================================================
// GUESTBOOK
// ===============================================================================
// /admin/beheer.php
// ===============================================================================
// Including the config
require_once("../config.inc.php");
$action = gb_get('action', 'view');
$id = gb_get('id', 'x');
if($_SESSION['ingelogd'] != 1) {
header('Location: inloggen.php');
exit();
} else {
if($action == 'view') {
print '<a href="uitloggen.php">Uitloggen</a><br /><br />';
$select = mysql_query("SELECT * FROM ".$prefix."berichten ORDER BY id DESC");
if(mysql_num_rows($select) > 0) {
while($fetch = mysql_fetch_assoc($select)) {
echo $fetch['id'].' - Naam: <a href="mailto:'.$fetch['email'].'">'.$fetch['naam'].'</a> - Datum: '.$fetch['datum'].' <a href="?action=verwijderen&id='.$fetch['id'].'">[verwijderen]</a><br />Bericht: '.$fetch['bericht'].'<br /><hr><br />';
}
} else {
print 'Het gastenboek is leeg';
}
} elseif($action == 'verwijderen' && is_numeric($id)) {
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$query = mysql_query("DELETE FROM ".$prefix."berichten WHERE id =".$id."");
if($query) {
header('Location: beheer.php?action=view');
} else {
print 'Het bericht kon niet verwijdert worden, controleer de connectie met de database.';
}
} else {
print '
<form action="?action=verwijderen&id='.$id.'" method="post">
Weet je zeker dat je het bericht wilt verwijderen?
<br />
<br />
<input type="submit" value="Verwijderen">
</form>
';
}
} else {
die2('Hacking attempt');
}
}
?>
<?php
// ===============================================================================
// GUESTBOOK
// ===============================================================================
// /admin/beheer.php
// ===============================================================================
// Including the config
require_once ( "../config.inc.php" ) ;
$action = gb_get( 'action' , 'view' ) ;
$id = gb_get( 'id' , 'x' ) ;
if ( $_SESSION [ 'ingelogd' ] != 1 ) {
header ( 'Location: inloggen.php' ) ; } else {
if ( $action == 'view' ) {
print '<a href="uitloggen.php">Uitloggen</a><br /><br />' ;
$select = mysql_query ( "SELECT * FROM " . $prefix . "berichten ORDER BY id DESC" ) ;
echo $fetch [ 'id' ] . ' - Naam: <a href="mailto:' . $fetch [ 'email' ] . '">' . $fetch [ 'naam' ] . '</a> - Datum: ' . $fetch [ 'datum' ] . ' <a href="?action=verwijderen&id=' . $fetch [ 'id' ] . '">[verwijderen]</a><br />Bericht: ' . $fetch [ 'bericht' ] . '<br /><hr><br />' ;
}
} else {
print 'Het gastenboek is leeg' ;
}
} elseif ( $action == 'verwijderen' && is_numeric ( $id ) ) {
if ( $_SERVER [ 'REQUEST_METHOD' ] == 'POST' ) {
$query = mysql_query ( "DELETE FROM " . $prefix . "berichten WHERE id =" . $id . "" ) ;
if ( $query ) {
header ( 'Location: beheer.php?action=view' ) ; } else {
print 'Het bericht kon niet verwijdert worden, controleer de connectie met de database.' ; }
} else {
<form action="?action=verwijderen&id=' . $id . '" method="post">
Weet je zeker dat je het bericht wilt verwijderen?
<br />
<br />
<input type="submit" value="Verwijderen">
</form>
' ;
}
} else {
die2( 'Hacking attempt' ) ;
}
}
?>
admin/inloggen.php
<?php
ob_start();
session_start();
define("GB_SYS", true);
// ===============================================================================
// GUESTBOOK
// ===============================================================================
// /admin/inloggen.php
// ===============================================================================
// Including the config
require_once("../config.inc.php");
// Getting the action
$action = gb_get('action', 'x');
if($action == 'login') {
if($_SERVER['REQUEST_METHOD'] == 'POST') {
if(gb_input($_POST['username']) == $user && md5(gb_input($_POST['password'])) == $md5Pass) { // Checking login
$_SESSION['ingelogd'] = 1;
header('Location: beheer.php');
} else { // Wrong login
die2('Foutieve login informatie');
}
} else {
die2('Hacking attempt');
}
} elseif($_SESSION['ingelogd'] != 1) {
?>
<form action="?action=login" method="post">
Gebruikersnaam:<br />
<input type="text" name="username"><br />
Wachtwoord:<br />
<input type="password" name="password"><br />
<br />
<input type="submit" value="Inloggen">
</form>
<?php
} else {
header('Location: beheer.php');
}
?>
<?php
// ===============================================================================
// GUESTBOOK
// ===============================================================================
// /admin/inloggen.php
// ===============================================================================
// Including the config
require_once ( "../config.inc.php" ) ;
// Getting the action
$action = gb_get( 'action' , 'x' ) ;
if ( $action == 'login' ) {
if ( $_SERVER [ 'REQUEST_METHOD' ] == 'POST' ) {
if ( gb_input
( $_POST [ 'username' ] ) == $user && md5 ( gb_input
( $_POST [ 'password' ] ) ) == $md5Pass ) { // Checking login
$_SESSION [ 'ingelogd' ] = 1 ;
header ( 'Location: beheer.php' ) ;
} else { // Wrong login
die2( 'Foutieve login informatie' ) ;
}
} else {
die2( 'Hacking attempt' ) ;
}
} elseif ( $_SESSION [ 'ingelogd' ] != 1 ) {
?>
<form action="?action=login" method="post">
Gebruikersnaam:<br />
<input type="text" name="username"><br />
Wachtwoord:<br />
<input type="password" name="password"><br />
<br />
<input type="submit" value="Inloggen">
</form>
<?php
} else {
header ( 'Location: beheer.php' ) ;
}
?>
admin/uitloggen.php
<?php
ob_start();
session_start();
// ===============================================================================
// GUESTBOOK
// ===============================================================================
// /admin/uitloggen.php
// ===============================================================================
if($_SESSION['ingelogd'] != 1) {
header('Location: inloggen.php');
} else {
unset($_SESSION['ingelogd']);
session_destroy();
header('Location: inloggen.php');
}
?>
<?php
// ===============================================================================
// GUESTBOOK
// ===============================================================================
// /admin/uitloggen.php
// ===============================================================================
if ( $_SESSION [ 'ingelogd' ] != 1 ) {
header ( 'Location: inloggen.php' ) ; } else {
unset ( $_SESSION [ 'ingelogd' ] ) ; header ( 'Location: inloggen.php' ) ; }
?>
Download code (.txt)
Stemmen
Niet ingelogd.