U bevindt zich hier: Forum » Tutorials » [PHP] Simpel gastenboek OO
   Actief Topic: [PHP] Simpel gastenboek OO

Vorige ( 1 ) Volgende

Ricardo
member
avatar
# Gepost op 19-01-2010 22:33
Bewerkt door Ricardo op 19-01-2010 22:59


Zojuist heb ik even een simpel gastenboekje in elkaar geflanst.

Misschien heeft iemand er wat aan. Het is nog erg simpel en er zit dus ook geen/weinig beveiliging op, maar je kunt zelf de CAPTCHA implementeren.;)

Inhoudsopgave

  1. MySQL
  2. index.php
  3. includes/config.php
  4. includes/gastenboek.class.php


Top

MySQL


Plain | Plain new window | SQL code:
  1. CREATE TABLE IF NOT EXISTS `reacties` (
  2.   `ID` int(1) NOT NULL AUTO_INCREMENT,
  3.   `onderwerp` text NOT NULL,
  4.   `naam` text NOT NULL,
  5.   `email` text NOT NULL,
  6.   `inhoud` longtext NOT NULL,
  7.   `datum` date NOT NULL,
  8.   `ip` text NOT NULL,
  9.   PRIMARY KEY  (`ID`),
  10.   UNIQUE KEY `ID` (`ID`)
  11. ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;INSERT INTO `reacties` (`ID`, `onderwerp`, `naam`, `email`, `inhoud`, `datum`, `ip`) VALUES
  12. (1, 'Succesvol geinstalleerd!', 'Mr. Gastenboek', 'geen@adres.nl', 'Als je dit ziet dan heb je succesvol je eigen gastenboek opgezet!, ik hoop dat je er veel plezier mee hebt!', '0000-00-00', '127.0.0.1');


Top

index.php


Dit is de index.php waarop dus alle berichten getoont worden
Plain | Plain new window | PHP code:
  1. <?php
  2.  
  3. include('includes/config.php');
  4. include('includes/gastenboek.class.php');
  5.  
  6. if(isset($_GET['actie']) && $_GET['actie'] == "reageer"){
  7.     if($_POST['submit']){
  8.         print $gastenboek->reageer();
  9.     }
  10.     else{
  11.     ?>
  12.                 <form action="index.php?actie=reageer" method="post" accept-charset="iso-8859-1">
  13.             <p>
  14.             De gegevens die u via het volgende formulier invult, worden op het gastenboek geplaatst en zullen voor iedereen zichtbaar zijn behalve als er bij vermeld wordt dat dit niet het geval is.
  15.             </p>
  16.             <p>
  17.             Naam: <br>
  18.             <input name="naam" type="text" size="40" tabindex="1000">
  19.             </p>
  20.             <p>
  21.             E-mail: (niet vertoond)<br>
  22.             <input name="email" type="text" size="40" tabindex="1001">
  23.             </p>
  24.             <p>
  25.             Onderwerp:<br>
  26.             <input name="onderwerp" type="text" size="40" tabindex="1003">
  27.             </p>
  28.             <p>
  29.             Uw bericht: <br>
  30.             <textarea name="bericht" rows="8" cols="40" tabindex="1004"></textarea>
  31.             </p>
  32.             <p>
  33.             <input type="submit" name="submit" value="Verstuur" title="Verstuur dit formulier" tabindex="1005">
  34.             </p>
  35.     <?
  36.     }
  37. }
  38. else{
  39.     print $gastenboek->laadreacties();
  40.     echo "<br /><a href=?actie=reageer>Reageren in dit gastenboek</a>";
  41. }
  42.  
  43. ?>

Top

includes/config.php


Dit is dus de config-file hier moet je alles naar wens instellen
Plain | Plain new window | PHP code:
  1. <?php
  2. # De mysql host, waar je database op draait. Is meestal localhost
  3. define("mysql_host", 'localhost');
  4.  
  5. # De mysql gebruikersnaam. Is meestal niet root
  6. define("mysql_user", 'root');
  7.  
  8. # Het mysql wachtwoord, is eigenlijk nooit leeg
  9. define("mysql_password", 'farina');
  10.  
  11. # De tabel waar het systeem op draait. Als je de SQL niet hebt uitgevoerd moet je deze aanpassen
  12. define("mysql_database", 'gastenboek');
  13.  
  14. # IP van de eigenaar, als je dit instelt dan kan je de e-mail en ip van degene die de bericht heeft geplaatst bewonderen
  15. define("owner_ip", '127.0.0.1');
  16.  
  17. ?>


Top

includes/gastenboek.class.php


Nu wordt het tijd voor een van de belangrijkste (lees:belangrijkste) bestand.

Plain | Plain new window | PHP code:
  1. <?php
  2. class gastenboek{
  3.     public function __construct(){
  4.         #Laten we een verbinding maken
  5.         $verbinding = mysql_connect(mysql_host, mysql_user, mysql_password);
  6.         mysql_select_db(mysql_database, $verbinding);
  7.     }
  8.  
  9.     function laadreacties(){
  10.         #En nu een query om maar is wat reacties uit de database te trekken
  11.         $query = mysql_query("SELECT * FROM reacties ORDER BY id DESC") or die (mysql_error());
  12.             while($row = mysql_fetch_assoc($query)){
  13.                 ?>
  14.                 <table class="tabel" width="500">
  15.                     <tr class="naam">
  16.                         <td>Naam:</td>
  17.                         <td><?php echo $row['naam']; ?></td>
  18.                     </tr>
  19.                     <tr class="onderwerp">
  20.                         <td>Onderwerp:</td>
  21.                         <td><?php echo $row['onderwerp']; ?></td>
  22.                     </tr>
  23.                     <?php
  24.                     if($_SERVER['REMOTE_ADDR'] == owner_ip){
  25.                     ?>
  26.                     <tr class="email">
  27.                         <td>E-mail:</td>
  28.                         <td><?php echo $row['email']; ?></td>
  29.                     </tr>
  30.                     <tr class="ip">
  31.                         <td>IP:</td>
  32.                         <td><?php echo $row['ip']; ?></td>
  33.                     </tr>                  
  34.                     <?php
  35.                     }
  36.                     ?>
  37.                     <tr class="datum">
  38.                         <td>Geplaatst op:</td>
  39.                         <td><?php echo $row['datum']; ?></td>
  40.                     </tr>
  41.                     <tr class="inhoud">
  42.                         <td><?php echo $row['inhoud']; ?></td>
  43.                     </tr>
  44.                 </table><br /><br />
  45.                 <?
  46.             }
  47.     }
  48.     function reageer(){
  49.  
  50.         #alle $_POST's in een mysql_real_escape_string zetten
  51.         $naam = mysql_real_escape_string($_POST['naam']);
  52.         $email = mysql_real_escape_string($_POST['email']);
  53.         $onderwerp = mysql_real_escape_string($_POST['onderwerp']);
  54.         $bericht = mysql_real_escape_string($_POST['bericht']);
  55.         $ip = $_SERVER['REMOTE_ADDR'];
  56.         #query maken
  57.  
  58.         $sql = "insert INTO reacties (
  59.             onderwerp,
  60.             naam,
  61.             email,
  62.             inhoud,
  63.             datum,
  64.             ip
  65.             ) VALUES(
  66.             '$onderwerp',
  67.             '$naam',
  68.             '$email',
  69.             '$bericht',
  70.             CURDATE(),
  71.             '$ip'
  72.             )";
  73.         mysql_query($sql) or die(mysql_error());
  74.         echo "<p>Uw bericht is geplaatst, <a href=index.php>ga terug</a></p>";
  75.     }
  76. }
  77. $gastenboek = new gastenboek();
  78. ?>


Zo en dan heb je dus een simpel gastenboek!
Het is nog zo standaard dat het er niet echt optimaal uit ziet, dit is gemakkelijk aan te passen ;)

Downloaden: ZIP | TAR.GZ

Groeten,
Ricardo

Ricardo
member
avatar
# Gepost op 20-01-2010 19:04
Bewerkt door Ricardo op 25-01-2010 20:03


Toch maar geen uitgebreide versie, probeer er zelf maar wat mee te kloten ;)

Vorige ( 1 ) Volgende

U moet aangemeld zijn om een reactie te kunnen plaatsen.

Indien u nog geen account heeft kunt u zich hier registreren.



© copyright 2009/2010 WebProjects 1.02 - Template van Sebastaan Franken