login  Naam:   Wachtwoord: 
Registreer je!
 Scripts:

Scripts > PHP > Foto gallerijen > albumsysteem met volledige php sturing

albumsysteem met volledige php sturing

Auteur: biertie - 18 december 2004 - 13:33 - Gekeurd door: Dennisvb - Hits: 24894 - Aantal punten: 2.28 (9 stemmen)




Dit is een foto album waar ik een toevoeg pagina aan gemaakt heb. album.php komt van Webbie XL.

Functies van het Album.
Het album bestaat uit 2 delen.
- album.php
- albumlijst.php
- albumtoevoegen.php
- config.php

Album.php werkt heel simpel.
Je moet je map met foto's uploaden naar je server. Deze map is direct al het album.
Het enige wat je dan nog moet doen, is het album toevoegen in albumtoevoegen.php. makkelijker kan het niet 

belangrijk: ik heb ik het script aangepast daj je pagina= moet hebben, tis maar dat ge het weet [met die include toestanden enzo. $_GET['pagina'] met je dan doen



album zorgt ervoor dat alle foto's als thumbnails te voorschijn komen in je album. Deze thumbnails dienen dan ook als link om naar de foto zelf te gaan.


het reactie systeem heb ik er ook ingelaten, voor de liefhebbers .

later komt er maak ik er nog een albumverander.php pagina bij, zodat je dingen aan je albumlijst kan veranden, en een albumverwijder.php bij.

nog later zorg ik ervoor dat je je foto's een titel kan meegeven, en als het mij ook ooit lukt op thumbnails eenvoudig te laten inladen, en die dan te linken met de originele foto, zal ik dat ook nog eens doen, dat zal in ieder geval de snelheid ten goed komen .

Hope you enjoy it!
Biertie

Code:
MySQL databases:
  1. CREATE TABLE fotos (
  2. id tinyint(4) NOT NULL auto_increment,
  3. naam varchar(20) NOT NULL default '',
  4. albumurl varchar(11) NOT NULL default '',
  5. uitleg text NOT NULL,
  6. albumfotovb varchar(50) NOT NULL default '',
  7. PRIMARY KEY (id)
  8. ) TYPE=MyISAM;
  9.  
  10. -------------------------------------
  11.  
  12. CREATE TABLE fotosreacties (
  13. id int(11) NOT NULL auto_increment,
  14. boek varchar(60) NOT NULL default '',
  15. foto varchar(60) NOT NULL default '',
  16. naam varchar(30) NOT NULL default '',
  17. datum int(11) NOT NULL default '0',
  18. reactie text NOT NULL,
  19. PRIMARY KEY (id)
  20. ) TYPE=MyISAM;

config.php
  1. <?php
  2. mysql_connect ("localhost", "gebruikersnaam", "paswoord");
  3. mysql_select_db ("databasenaam");
  4. $max = 8; // het maximaal aantal album's op een pagina.
  5. $aantalFotos = 18; // aantal fotos per pagina
  6. ?>

albumtoevoegen.php
  1. <!doctype html public "-//W3C//DTD HTML 4.0 //EN">
  2. <?php
  3.  
  4. include ("config.php");
  5.  
  6. //Als men op Submit gedrukt heeft
  7. if ($_POST['Submit']) {
  8.  
  9. //We gaan controleren of alle velden zijn ingevuld en dat e-mailadres bestaat
  10.  
  11. if (!trim($_POST['naam']))
  12. {
  13. $error="Je moet je naam voor het album invullen";
  14. }
  15. elseif(!trim($_POST['albumurl']))
  16. {
  17. $error.="Je moet de map waar de foto's instaan invullen<br>";
  18. }
  19. elseif(!trim($_POST['albumfotovb']))
  20. {
  21. $error.="je moet een voorbeeld foto ingeven<br>";
  22. }
  23. elseif (!trim($_POST['uitleg']))
  24. {
  25. $error.="je moet uileg geven over je album<br>";
  26. }
  27. //Als er een veld niet is ingevuld komt er een error
  28.  
  29. if(isset($error)) {
  30.  
  31. ?>
  32. <center> <table class=\"fotos\" width=\"100%\" border=\"1\" cellspacing=\"0\" cellpadding=\"2\">
  33. <tr>
  34. <td align=\"center\">
  35. <b><?php echo".$error."; ?> </b>
  36. <br>
  37. <form method=\"post\" action=\"javascript:history.go(-1)\">
  38. <input type=\"submit\" name=\"Terug\" value=\"Terug\">
  39. </form>
  40. </td>
  41. </tr>
  42. </table>
  43. </center>
  44. <?
  45. //Als alles correct is ingevuld gaan we over naar het posten van de gegevens naar de database
  46. }
  47. else
  48. {
  49. $naam = addslashes(htmlspecialchars($_POST['naam']));
  50. $albumurl = addslashes(htmlspecialchars($_POST['albumurl']));
  51. $uitleg = addslashes(htmlspecialchars($_POST['uitleg']));
  52. $albumfotovb = addslashes(htmlspecialchars($_POST['albumfotovb']));
  53. $query= "INSERT INTO fotos (naam, albumurl, uitleg, albumfotovb)
  54. VALUES ('".$naam."', '".$albumurl."', '".$uitleg."', '".$albumfotovb."')";
  55. mysql_query($query) or die (mysql_error());
  56. ?>
  57. <p>het album is succesvol toegevoegd!</p>
  58. <p><a href="albumtoevoegen.php">klik hier om nog een album toe te voegen</a><br>
  59. <a href="albumlijst.php">klik hier om de albumlijst te bezichtigen</a></p>
  60.  
  61. <?php
  62. }
  63.  
  64. }
  65. else
  66. {
  67. //Als men nog niet op Submit gedrukt heeft krijgt men natuurlijk het formulier te zien
  68. ?>
  69. </p>
  70. <center>
  71. <form name="fotos" action="<? echo $_SERVER['PHP_SELF']; ?>" method="post">
  72. <table class="fotos" width="100%" border="1" cellspacing="0" cellpadding="2">
  73. <tr>
  74. <td height="20" colspan="2"><strong>album toevoegen op de site: </strong></td>
  75. </tr>
  76. <tr>
  77. <td width="44%">Naam album:</td>
  78. <td width="56%">
  79. <input name="naam" type="text" id="naam" size="30" maxlength="50">
  80. </td>
  81. </tr>
  82. <tr>
  83. <td align="left" valign="top">url naar map album: (gewoon de naam van de map noemen)</td>
  84. <td>
  85. <input name="albumurl" type="text" id="albumurl" size="30" maxlength="50"></td>
  86. </tr>
  87. <tr>
  88. <td>voorbeeldfoto: (+naam van de map! vb: map1/foto1.jpg) </td>
  89. <td>
  90. <input name="albumfotovb" type="text" id="albumfotovb" size="30" maxlength="50">
  91. </td>
  92. </tr>
  93. <tr>
  94. <td colspan="2"><div align="left">uitleg:<br>
  95. <textarea name="uitleg" cols="50" rows="7" id="uitleg"></textarea>
  96. <br>
  97. </div> </td>
  98. </tr>
  99. <tr>
  100. <td height="25" colspan="2" align="center">
  101. <input type="submit" name="Submit" value="Verzenden">&nbsp;
  102. <input name="Reset" type="submit" id="Reset" value="Opnieuw">
  103. </td>
  104. </tr>
  105. </table>
  106. </form>
  107. </center>
  108. <?php
  109. }
  110. ?>

albumlijst.php
  1. <!doctype html public "-//W3C//DTD HTML 4.0 //EN">
  2. <?php
  3. include ("config.php");
  4.  
  5. <br>
  6. #### Begin Navigatie code ####
  7. $query = mysql_query("SELECT id FROM fotos ORDER BY id DESC") or die(mysql_error());
  8. $aantal = mysql_num_rows($query);
  9. $aantal/=$max;
  10.  
  11. if ($aantal == 0) {
  12. echo "<div align=center>Er zijn nog <b>geen album's</b> op deze site!</div>";
  13. } else {
  14.  
  15. $nav=$_GET['nav'];
  16. if (empty($nav)) {
  17. $nav=1;
  18. }
  19. $van=($nav-1)*$max;
  20.  
  21. if ($nav > ceil($aantal)) {
  22. $nav=1;
  23. }
  24.  
  25. for ($i = 1; $i <= ceil($aantal); $i++) {
  26. if ($nav == $i)
  27. $navs[$i] = "<b>$i</b>";
  28. else
  29. $navs[$i] = "<a href=\"lezen.php?nav=$i\">$i</a>";
  30. }
  31.  
  32. $navs= implode(" | ", $navs);
  33.  
  34. $vorige = ($nav-1) ? "<a href=\"index.php?pagina=albumlijst&nav=" . ($nav - 1) . "\">&lt; Vorige</a>" : "";
  35. $volgende = ($nav-ceil($aantal)) ? "<a href=\"index.php?pagina=albumlijst&nav=" . ($nav + 1) . "\">Volgende &gt;</a>" : "";
  36.  
  37. if ($vorige && $volgende) {
  38. $navigatie = $vorige." | ".$navs ." | ".$volgende;
  39. }
  40. else {
  41. $navigatie = $vorige." | ".$navs." | ".$volgende;
  42. }
  43. //Einde Navigatie code
  44. }
  45.  
  46. //Nu gaan we de albums selecteren
  47. $query=mysql_query("SELECT * FROM fotos ORDER BY id DESC LIMIT $van, $max") or die (mysql_error());
  48.  
  49. //Nu worden alle berichten weergegeven dmv een while
  50. while ($obj = mysql_fetch_object($query)) {
  51. //nl2br() zorgt er voor dat er bij elke enter ook een nieuwe lijn komt
  52. $uitleg=nl2br($uitleg);
  53.  
  54. ?>
  55. <table class="fotos" width="100%" border="0" cellspacing="0" cellpadding="2">
  56. <tr>
  57. <td colspan="2" valign="top">
  58. <strong>naam album </strong>: <span class="style1">
  59. <?=$obj->naam?>
  60. </span></td>
  61. </tr>
  62. <tr>
  63. <td width="11%" rowspan="2" valign="top">
  64. <a href="index.php?pagina=album&boek=<?=$obj->albumurl?>"><img src="<?=$obj->albumfotovb?>" height="100" border="0"></a>
  65. </td>
  66. <td width="89%" height="73" valign="top"><p>
  67. <?=$obj->uitleg?>
  68. </a></p>
  69. <p align="center">&nbsp;</p></td>
  70. </tr>
  71. <tr>
  72. <td valign="top"><div align="center">&gt;&gt;<a href="index.php?pagina=album&boek=<?=$obj->albumurl?>" class="style2">bekijk het album</a> </div></td>
  73. </tr>
  74. <tr>
  75. <td colspan="2" valign="top"><hr></td>
  76. </tr>
  77. </table>
  78. <br>
  79. <?php
  80. //Deze loop wordt herhaald tot dat alle berichten zijn weergegeven
  81. }
  82. ?>
  83. <br>
  84. <table class="fotos" width="100%" border="1" cellspacing="0" cellpadding="1">
  85. <tr>
  86. <td align="center" height="19"><?=$navigatie?></td>
  87. </tr>
  88. </table>
  89. <br>

album.php
  1. <!doctype html public "-//W3C//DTD HTML 4.0 //EN">
  2. <?
  3. include ("config.php");
  4. if(is_dir($_GET['boek'])){
  5. // configuratie
  6. $boek = $_GET['boek'];
  7. $originalPath = $boek; //de map aangeroepen in de url
  8. $path = $boek; // path naar de foto
  9.  
  10. $fotoArray = array();
  11.  
  12. $d = dir("$path");
  13.  
  14. while($entry=$d->read()) {
  15. if(eregi(".jpg|.jpeg|.gif|.bmp|.png", $entry)){
  16.  
  17. $foto = $path . "/" . $entry ;
  18. $fotoArray[] = $foto;
  19.  
  20. }
  21.  
  22. }
  23.  
  24. $d->close();
  25. $count = count($fotoArray);
  26.  
  27. $pathspatie = str_replace("_", "&nbsp;", $originalPath);
  28.  
  29.  
  30. // reactie Plaatsen
  31. if(isset($_POST["submitreactie"])){
  32. $query = "insert into fotosreacties (boek,foto,naam,datum,reactie) values ";
  33. $query .= "('" . $_GET['boek'] . "','" . $fotoArray[$_GET["fotoID"]] . "','" . $_POST["naam"] . "','" . time() . "','" . $_POST["reactie"] . "')";
  34.  
  35. if($result = mysql_query($query)){
  36. echo "Je reactie is geplaatst";
  37. } // end if
  38. else {
  39. echo "Sorry, je reactie kon niet geplaatst worden.";
  40. } // end else
  41.  
  42. } // end if
  43.  
  44.  
  45.  
  46. // kijken hoeveel reacties iedere foto heeft
  47. $reacties;
  48. $query = "select foto from fotosreacties where boek = '" . $_GET['boek'] . "'";
  49. if($result = mysql_query($query)){
  50. while ($r = mysql_fetch_array($result)){
  51. while ($foto = current($fotoArray)) {
  52. if ($foto==$r["foto"]){
  53. $key = key($fotoArray);
  54. } // end if
  55. next($fotoArray);
  56. } // end while
  57. if(!isset($reacties[$key])){
  58. $reacties[$key] = 1;
  59. } // end if
  60. else {
  61. $reacties[$key]++;
  62. } // end else
  63. reset($fotoArray);
  64.  
  65. } // end while
  66. } // end if
  67. ?>
  68.  
  69. <html>
  70. <head>
  71. <title>Fotos</title>
  72. </head>
  73.  
  74. <body>
  75.  
  76.  
  77. <table width="100%"><tr><td align="center" width="100%">
  78.  
  79. <?
  80.  
  81.  
  82. // 1 FOTO PER PAGINA
  83.  
  84. if((isset($_GET['fotoID'])) AND (intval($_GET['fotoID']>=0)) AND (intval($_GET['fotoID'] < $count))){
  85. $showFoto = intval($_GET['fotoID']);
  86.  
  87. echo "<table width='40%'><tr><td colspan='3' align='center'><b>" . $pathspatie . "</b>
  88. <br><br><small>Foto " . ($showFoto + 1) . " / " . $count . "</small></big></font> </td></tr><tr>";
  89.  
  90. echo "<tr><td colspan='3' align='center'><a href='" . $fotoArray[$showFoto] . "' target='_blanc'><img src='" . $fotoArray[$showFoto] . "' height='300' border='0'></a></td></tr>";
  91. echo "<tr><td width='40%'>";
  92. if($showFoto!=0){
  93. $prevFoto = ($showFoto - 1);
  94. echo "<a href='" . $_SERVER['PHP_SELF'] . "?pagina=album&boek=" . $originalPath . "&fotoID=" . $prevFoto . "'>vorige</a> ";
  95. } // end if
  96. echo "</td><td width='33%'>";
  97. $pageNR = floor($_GET['fotoID'] / $aantalFotos);
  98. $pageNR = $pageNR * 18;
  99. echo "<a href='" . $_SERVER['PHP_SELF'] . "?pagina=album&boek=" . $originalPath . "&vanafFoto=" . $pageNR . "'>lijst</a> ";
  100. echo "</td><td align='right'>";
  101. if($showFoto!=($count -1)){
  102. $nextFoto = ($showFoto + 1);
  103. echo "<a href='" . $_SERVER['PHP_SELF'] . "?pagina=album&boek=" . $originalPath . "&fotoID=" . $nextFoto . "'>volgende</a> ";
  104. } // end if
  105. echo "</td></tr></table>";
  106.  
  107.  
  108. echo "<br><br><b>Reacties</b>";
  109.  
  110. $reacties;
  111. $query = "SELECT * FROM fotosreacties where foto = '" . $fotoArray[$showFoto] . "' order by datum ASC";
  112. if($result = mysql_query($query)){
  113. if(mysql_numrows($result)==0){
  114. echo "<br><br>Er zijn nog geen reacties";
  115. } // end if
  116. else {
  117. echo "<table width='40%' cellspacing='0' border='0' cellpadding='0'>";
  118. echo "<tr><td colspan='2'><hr></td></tr>";
  119. while ($r = mysql_fetch_array($result)){
  120. echo "<tr><td><b>" . $r["naam"] . "</b> ";
  121. echo "</td><td width='40%'><small>[ " . date("d/m/Y @ H:i",$r["datum"]) . " ]</small></td><tr>";
  122. echo "<tr><td colspan='2'>" . $r["reactie"] . "</td></tr>";
  123. echo "<tr><td colspan='2'><hr></td></tr>";
  124. } // end while
  125. echo "</table>";
  126. } // end else
  127. } // end if
  128.  
  129. echo "<form method='post' action=''>";
  130. echo "<table>";
  131. echo "<tr>";
  132. echo "<td>Naam:<br><input type='text' name='naam'></td></tr>";
  133. echo "<tr><td>Uw Reactie:<br><textarea name='reactie' cols='30' rows='5'></textarea><br></td></tr>";
  134. echo "<tr><td><input type='submit' name='submitreactie' value='Verzenden'></td></tr>";
  135. echo "</table>";
  136. echo "</form>";
  137.  
  138.  
  139.  
  140. } // end if
  141.  
  142. // X FOTOS PER PAGINA
  143.  
  144. else {
  145.  
  146. // configuratie
  147. $clm = "3"; // Aantal kolommen
  148.  
  149.  
  150. $countFotos = count($fotoArray);
  151. $thumbPath = $path . "/"; //Path naar thumps
  152. $path2 = $path . "/";
  153.  
  154.  
  155.  
  156. echo "<br><table ><tr>";
  157.  
  158. echo "<td align='center' colspan='" . $clm . "'>";
  159.  
  160.  
  161. // navigatie
  162. $navigation;
  163. if($countFotos < ($aantalFotos + 1)){
  164. $begin = 0;
  165. $eind = $countFotos;
  166.  
  167. } // end if
  168. else {
  169.  
  170. $aantalPages = ceil($countFotos / $aantalFotos) ;
  171. for($i=1; $i < $aantalPages + 1; $i++){
  172. $pageNR = ($i - 1) * $aantalFotos;
  173.  
  174. if($pageNR==$_GET["vanafFoto"]){
  175. $navigation .= "<small><font color='#990000'>" . $i . "</font></small> ";
  176. }
  177. else {
  178. $navigation .= "<a href='?pagina=album&boek=" . $originalPath . "&vanafFoto=" . $pageNR . "'>" . $i . "</a> ";
  179. }
  180. } // end for
  181.  
  182.  
  183. if((isset($_GET['vanafFoto'])) AND (intval($_GET['vanafFoto']>=0)) AND (intval($_GET['vanafFoto'] < $countFotos))){
  184. $begin = intval($_GET['vanafFoto']);
  185.  
  186. if(($begin + $aantalFotos) <= $countFotos){
  187. $eind = ($begin + $aantalFotos);
  188. } // end if
  189. else {
  190. $eind = $countFotos;
  191. } // end else
  192.  
  193. } // end if
  194. else {
  195. $begin = 0;
  196. $eind = $aantalFotos;
  197. } // end else
  198.  
  199. $countFotos = count($fotoArray);
  200.  
  201.  
  202. // path naar echte foto
  203.  
  204. } // end else
  205.  
  206. echo "<table border='0' cellpadding='0' cellspacing='2'><tr><td ><b>" . $pathspatie . "</b> <small>(" . $count . ")</small>
  207. <br><br><center><small>Pictures " . ($begin + 1) . " - " . $eind . "</small></center></td></tr></table>";
  208.  
  209.  
  210.  
  211. if(($begin - $aantalFotos) >= 0){
  212. $navigation = "<a href='" . $_SERVER['PHP_SELF'] . "?pagina=album&boek=" . $originalPath . "&vanafFoto=" . ($begin - $aantalFotos) . "'><</a> " . $navigation;
  213. } // end if
  214.  
  215.  
  216. if(($begin + $aantalFotos) < $count){
  217. $navigation .= " <a href='" . $_SERVER['PHP_SELF'] . "?pagina=album&boek=" . $originalPath . "&vanafFoto=" . ($begin + $aantalFotos) . "'>></a>";
  218. } // end if
  219.  
  220. echo $navigation . "<br><br>";
  221. echo "</td></tr><tr>";
  222. $fotonr = 1;
  223. for($i=$begin; $i < $eind; $i++){
  224.  
  225.  
  226. $thumb = str_replace($path2, $thumbPath, $fotoArray[$i]);
  227.  
  228.  
  229. echo "<td align='center'><a href='" . $_SERVER['PHP_SELF'] . "?pagina=album&boek=" . $originalPath . "&fotoID=" . $i . "'><img border='0' src='" . $thumb . "' height='100'><br>";
  230. echo "<small>reacties (";
  231. if($reacties[$i]==0){
  232. echo "0";
  233. } // end if
  234. else {
  235. echo $reacties[$i];
  236. } // end else
  237. echo ")</small>";
  238. echo "</a></td>";
  239. $fotonr++;
  240. if($fotonr == ($clm + 1)){
  241. echo "</tr>\n<tr>";
  242. $fotonr = 1;
  243. } // end if
  244.  
  245.  
  246.  
  247.  
  248. } // end for
  249. echo "</tr>";
  250.  
  251. echo "<td align='center' colspan='" . $clm . "'>";
  252.  
  253. echo $navigation;
  254.  
  255. echo "</td></tr><tr>";
  256.  
  257. echo "</table>";
  258.  
  259. } // end else if
  260. } // end if
  261. else {
  262. echo "Dit fotoalbum bestaat niet";
  263. } // end else
  264. ?>
  265. </td></tr></table>
  266.  
  267. </body>
  268. </html>
Download code! Download code (.txt)

 Stemmen
Niet ingelogd.

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