login  Naam:   Wachtwoord: 
Registreer je!
 Scripts:

Scripts > PHP > Gastenboeken > Simpel gastenboek (zelf uit te breiden)

Simpel gastenboek (zelf uit te breiden)

Auteur: ikki007 - 02 september 2007 - 18:36 - Gekeurd door: marten - Hits: 20436 - 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
  1. CREATE TABLE gb_berichten (
  2. id INT(11) AUTO_INCREMENT,
  3. naam VARCHAR(50) NOT NULL DEFAULT '',
  4. email VARCHAR(255) NOT NULL DEFAULT '',
  5. bericht TEXT,
  6. datum VARCHAR(20) NOT NULL DEFAULT '',
  7. PRIMARY KEY (id)
  8. ) TYPE=MyISAM;


config.inc.php
  1. <?php
  2. if(!defined('GB_SYS') || GB_SYS !== TRUE) {
  3. die2("Hacking attempt");
  4. }
  5.  
  6. // Je connectie
  7. $dbServer = "localhost";
  8. $dbUser = "root";
  9. $dbPass = "wachtwoord";
  10. $dbDbName = "ikki007";
  11. $prefix = "gb_";
  12.  
  13. // De admin info voor je beheer
  14. $user = 'test';
  15. $password = 'admin';
  16.  
  17. $md5Pass = md5($password);
  18.  
  19. mysql_connect ($dbServer, $dbUser, $dbPass) or die (mysql_error());
  20. mysql_select_db($dbDbName) or die (mysql_error());
  21.  
  22. if(!function_exists('gb_input')) {
  23.  
  24. function gb_input($value)
  25. {
  26. if (!in_array(ini_get('magic_quotes_gpc'), array('', '0', 'Off', 'False', 'No'))) {
  27. $value = stripslashes($value);
  28. }
  29.  
  30. if (!is_numeric($value)) {
  31. $value = htmlentities($value);
  32. }
  33.  
  34. return $value;
  35. }
  36. }
  37.  
  38.  
  39. if(!function_exists('gb_checkemail')) {
  40.  
  41. function gb_checkemail($input) {
  42.  
  43. $pattern = "/^([a-z0-9_-]+\.)*[a-z0-9_-]+@([a-z0-9_-]{2,}\.)+([a-z0-9_-]{2,})$/i"; // Thanks to FangorN
  44. return preg_match($pattern, $input);
  45.  
  46. }
  47.  
  48. }
  49.  
  50. if(!function_exists('gb_get')) {
  51.  
  52. function gb_get($item, $default) {
  53.  
  54. return (isset($_GET[$item]) ? $_GET[$item] : $default);
  55.  
  56. }
  57.  
  58. }
  59.  
  60. function die2($msg = '')
  61. {
  62. print $msg.'<br />';
  63.  
  64. // hier de rest van je footer plakken als de pagina gestopt wordt ivm met errors!
  65. print '</body></html>';
  66.  
  67. }
  68.  
  69. // Error reporting
  70. error_reporting(E_ALL ^ E_NOTICE);
  71. ?>


gastenboek.php
  1. <?php
  2. define("GB_SYS", true);
  3.  
  4. // ===============================================================================
  5. // GUESTBOOK
  6. // ===============================================================================
  7. // /gastenboek.php
  8. // ===============================================================================
  9.  
  10.  
  11. // Including the config
  12. require_once("config.inc.php");
  13.  
  14.  
  15. $select = mysql_query("SELECT * FROM ".$prefix."berichten ORDER BY id DESC");
  16. $aantal = @mysql_num_rows($select);
  17.  
  18. if($aantal > 0) {
  19.  
  20. print 'Aantal berichten: '.$aantal.'<br /><br />';
  21.  
  22. while($fetch = mysql_fetch_assoc($select)) {
  23.  
  24. echo $fetch['id'].' - Naam: <a href="mailto:'.$fetch['email'].'">'.$fetch['naam'].'</a> - Datum: '.$fetch['datum'].'<br />Bericht: '.$fetch['bericht'].'<br /><hr><br />';
  25.  
  26. }
  27.  
  28. } else {
  29.  
  30. print 'Het gastenboek is leeg';
  31.  
  32. }
  33.  
  34. print '<br /><br /><a href="toevoegen.php">Bericht toevoegen</a>';
  35. ?>


toevoegen.php
  1. <?php
  2. define("GB_SYS", true);
  3.  
  4. // ===============================================================================
  5. // GUESTBOOK
  6. // ===============================================================================
  7. // /toevoegen.php
  8. // ===============================================================================
  9.  
  10.  
  11. // Including the config
  12. require_once("config.inc.php");
  13.  
  14. // Getting the action
  15. $action = gb_get('action', 'x');
  16.  
  17. if($action == 'toevoegen') {
  18.  
  19. if($_SERVER['REQUEST_METHOD'] == 'POST') {
  20.  
  21. $email = gb_input($_POST['email']);
  22. $naam = gb_input($_POST['name']);
  23. $bericht = gb_input($_POST['msg']);
  24.  
  25. if(gb_checkemail($email) && strlen($email) < 256) {
  26.  
  27. if(preg_match("/^[a-zA-Z]+$/", $naam) && strlen($naam) < 51) {
  28.  
  29. if(strlen($bericht) < 65536) {
  30.  
  31. $dag = (strlen(date("j")) == 1 ? 0 : '');
  32.  
  33. $datum = $dag.date("j/m/y H:i:s");
  34. $query = mysql_query("INSERT INTO ".$prefix."berichten (naam, email, bericht, datum) VALUES ('".$naam."', '".$email."', '".$bericht."', '".$datum."')");
  35.  
  36. if($query) {
  37. header('Location: gastenboek.php');
  38. } else {
  39. print 'Er is iets misgegaan bij het toevoegen van uw bericht. Neem contact op met de beheerder.';
  40. }
  41.  
  42. } else {
  43.  
  44. die2('Uw bericht is te lang');
  45.  
  46. }
  47.  
  48. } else {
  49.  
  50. die2('Ongeldige naam');
  51.  
  52. }
  53.  
  54. } else {
  55.  
  56. die2('Ongeldig emailadres');
  57.  
  58. }
  59.  
  60. } else {
  61.  
  62. die2('Hacking attempt');
  63.  
  64. }
  65.  
  66. } else {
  67. ?>
  68.  
  69. <form action="?action=toevoegen" method="post">
  70. Naam:<br />
  71. <input type="text" name="name" maxlength="50"><br />
  72. Email:<br />
  73. <input type="text" name="email" maxlength="255"><br />
  74. Bericht:<br />
  75. <textarea name="msg" cols="70" rows="20" maxlength="65535"></textarea><br />
  76. <br />
  77. <input type="submit" value="Toevoegen">
  78. </form>
  79.  
  80. <?php
  81. }
  82. ?>


admin/beheer.php
  1. <?php
  2. define("GB_SYS", true);
  3.  
  4. // ===============================================================================
  5. // GUESTBOOK
  6. // ===============================================================================
  7. // /admin/beheer.php
  8. // ===============================================================================
  9.  
  10.  
  11. // Including the config
  12. require_once("../config.inc.php");
  13.  
  14. $action = gb_get('action', 'view');
  15. $id = gb_get('id', 'x');
  16.  
  17. if($_SESSION['ingelogd'] != 1) {
  18. header('Location: inloggen.php');
  19. exit();
  20. } else {
  21.  
  22. if($action == 'view') {
  23.  
  24. print '<a href="uitloggen.php">Uitloggen</a><br /><br />';
  25.  
  26. $select = mysql_query("SELECT * FROM ".$prefix."berichten ORDER BY id DESC");
  27.  
  28. if(mysql_num_rows($select) > 0) {
  29.  
  30. while($fetch = mysql_fetch_assoc($select)) {
  31.  
  32. 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 />';
  33.  
  34. }
  35.  
  36. } else {
  37.  
  38. print 'Het gastenboek is leeg';
  39.  
  40. }
  41.  
  42. } elseif($action == 'verwijderen' && is_numeric($id)) {
  43.  
  44. if($_SERVER['REQUEST_METHOD'] == 'POST') {
  45.  
  46. $query = mysql_query("DELETE FROM ".$prefix."berichten WHERE id =".$id."");
  47.  
  48. if($query) {
  49. header('Location: beheer.php?action=view');
  50. } else {
  51. print 'Het bericht kon niet verwijdert worden, controleer de connectie met de database.';
  52. }
  53.  
  54. } else {
  55.  
  56.  
  57. <form action="?action=verwijderen&id='.$id.'" method="post">
  58. Weet je zeker dat je het bericht wilt verwijderen?
  59. <br />
  60. <br />
  61. <input type="submit" value="Verwijderen">
  62. </form>
  63.  
  64. ';
  65.  
  66. }
  67.  
  68. } else {
  69.  
  70. die2('Hacking attempt');
  71.  
  72. }
  73.  
  74. }
  75.  
  76. ?>


admin/inloggen.php
  1. <?php
  2. define("GB_SYS", true);
  3.  
  4. // ===============================================================================
  5. // GUESTBOOK
  6. // ===============================================================================
  7. // /admin/inloggen.php
  8. // ===============================================================================
  9.  
  10.  
  11. // Including the config
  12. require_once("../config.inc.php");
  13.  
  14. // Getting the action
  15. $action = gb_get('action', 'x');
  16.  
  17. if($action == 'login') {
  18.  
  19. if($_SERVER['REQUEST_METHOD'] == 'POST') {
  20.  
  21. if(gb_input($_POST['username']) == $user && md5(gb_input($_POST['password'])) == $md5Pass) { // Checking login
  22.  
  23. $_SESSION['ingelogd'] = 1;
  24.  
  25. header('Location: beheer.php');
  26.  
  27. } else { // Wrong login
  28.  
  29. die2('Foutieve login informatie');
  30.  
  31. }
  32.  
  33.  
  34. } else {
  35.  
  36. die2('Hacking attempt');
  37.  
  38. }
  39.  
  40. } elseif($_SESSION['ingelogd'] != 1) {
  41. ?>
  42.  
  43. <form action="?action=login" method="post">
  44. Gebruikersnaam:<br />
  45. <input type="text" name="username"><br />
  46. Wachtwoord:<br />
  47. <input type="password" name="password"><br />
  48. <br />
  49. <input type="submit" value="Inloggen">
  50. </form>
  51.  
  52. <?php
  53. } else {
  54.  
  55. header('Location: beheer.php');
  56.  
  57. }
  58. ?>


admin/uitloggen.php
  1. <?php
  2.  
  3. // ===============================================================================
  4. // GUESTBOOK
  5. // ===============================================================================
  6. // /admin/uitloggen.php
  7. // ===============================================================================
  8.  
  9. if($_SESSION['ingelogd'] != 1) {
  10. header('Location: inloggen.php');
  11. } else {
  12. unset($_SESSION['ingelogd']);
  13. header('Location: inloggen.php');
  14. }
  15.  
  16. ?>
Download code! Download code (.txt)

 Stemmen
Niet ingelogd.

 Reacties
Post een reactie
Lees de reacties (8)
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.075s