php bilder album
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
angeben
array
ausgabe
auslese
backen
banner
bild
code
dank
design
file
fotoalbum
funktion
http
image
kommentar
ordner
pfad
relation
tabelle
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
ich kenne mich eig nur mit html un flash aus. also köntest du mir vllt so nen script un die tabelle geben?
danke -
also wenn du nen script suchst gehste am besten mal auf http://www.phpwelt.de/archiv/ dort findet man so gut wie alles;)
-
ich bin gerade am schreiben solch einer Gallery. aber dort fehlen noch einige funktionen. Das liest die vorhanden Ordner aus und die Bilder die dort liegen. Ich hat es extra so geschrieben das es keine Datenbank benötigt. wenn du dich selbst gerne versuchen möchtest, würde ich dir das morgen schicken.
Die einziege zusätzliche funktion ist eine Passwortschutz den ich aber noch verbessern möchte, ebenso den quelltext. -
ok danke
aba wie willste das schicken?? -
ich würde das script hochladen, bei mir auf den space und dir dann den link geben.
Aber das wird frühstens Sonntag was, weil ich das script dann nochmal aufräumen würde und 2 bis 3 bugs korriegieren würde, außerdem schreib ich dir kommentare dran.
wenn du zusätsliche funktionen haben möchtest, dann musst du dir wohl dann erstmal aneignen wie man php und sonnstige scriptsprachen schreibt.
P.s. Design wirst du aber selber machen müssen, ich bau dir nur ein standard html design und sowas
Beitrag geändert: 1.8.2008 13:51:01 von gblacky -
ok vielen dank
-
Ich habe einen Freund, der benutzt [ZenPhoto](http://www.zenphoto.org/). Er kann (glaube ich) Bilder von Ordner automatisch auslesen und sie dann als Album anzeigen.
Ryan -
bin soweit erstmal fertig, hab alles mit kommentaren versehen. Ist aber nur rellativ schnell hergezaubert.
config.php <?php //titell der Seite $titel=\'Meine Seite\'; //Bilder das Design, sollten alle verwendet werden, sonnst fehlen dir einige funktionen $banner=\'plugins/banner.jpg\'; $home=\'plugins/home-32x32.png\'; $back=\'plugins/folder-previous-32x32.png\'; $folder=\'plugins/folder-full-32x32.png\'; $skipback=\'plugins/skip-backward-32x32.png\'; $skipfor=\'plugins/skip-forward-32x32.png\'; $spacer=\'plugins/spacer.gif\'; //Um ein Passwort vergeben zu können, must du in den Ordner eine passwort.php legen //diese hat folgenden Inhalt //<?php //$date_pw=md5(\'testpasswort\'); //?\\> //in der Klammer vergibst du das Passwort und das \\ nach den Fragezeichen wegnehmen //Alle Datein für die Seite die nicht von den Script angezeigt werden sollen, kannst du in einen Ordner namens plugins dann legen. ?>
function.php <?php //ausgabe des derzeitige Ordners, also den letzten in der Variable, welche mit einen / getrennt wurde function shortname($name) { $name = explode(\"/\", $name); $name = array_slice($name, count($name)-1, count($name)); $name=implode(\"\", $name); return $name; } //gibt die Höhe eines Bildes zurück wenn die Breite 80px sein soll, wird im verhältniss beschaut function shrink_image($name) { $image_size=getimagesize($name) ; // 0 ist breite, 1 höhe if($image_size[0]>79){ //abfangen ob das nicht vllt ein bild ist, was nicht erkannt wird. $relation=$image_size[0]/80; $image_height=$image_size[1]/$relation; $test =\'width=\"80\" heigth=\"\'.ceil($image_height).\'\"\'; return $test; } } //funktion hollt sich eine get variable, und wenn sie nicht gesetzt wurde, gibt sie die exeption zurück function catch_get($name,$exception){ if((isset($_GET[$name]))AND($_GET[$name]!==\'\')){ $name=$_GET[$name]; return $name; }else{ return $exception; }; } ?>
index.php <?php //Include der Beiden zugehörigen Datein include(\'function.php\'); include(\'config.php\'); //Get Global setzen, damit ich auch aus der Funktion auf die Get Variablen Zugreifen kann global $_GET; //Hier hol ich den Pfad, wenn das ein Pfad ist, wird der gespeichert sonnst wird der defould Pfad, also Home Pfad gespeichert, es darf auch nicht im Pfad zurückgegangen werden, deswegen wird das auch ausgeschieden if ((catch_get(\'pfad\',\'./\')!=\"./..\")AND(is_dir(catch_get(\'pfad\',\'./\')))){ $pfad = catch_get(\'pfad\',\'./\'); }else{$pfad = \'./\';} //mit meiner Funktion aus function.php hol ich erstmal die ganzen Get Variablen, wenn diese nicht gegeben sind, werden diese durch Standardwerte ersetzt. $site = catch_get(\'site\',\'0\'); $top_pic = catch_get(\'pic\',\'0\'); $get_pw = catch_get(\'pw\',md5(0)); //wenn etwas in der Get Variable übergeben wurde, was nicht 32 Zeichen hat, wird der MD5 Algorythmus ausgeführt um diesen mit den Passwörter zu vergleichen. if(strlen($get_pw)!=32) $get_pw=md5($get_pw); //Setzen der Zähler Variable $i = 0; // Öffnen des verzeichnisses, damit dieses dann ausgelesen werden kann. und erstellung der Arrays für die Bilder und Ordner Navigation $verz = opendir ($pfad); $dir = array(); $image= array(); //In einer schleife das verzeichniss auslesen und die Bilder oder Ordner in das dazugehörige Array speichern. while ($file=readdir($verz)) { if (($pfad.$file!=\'./..\')AND(filetype($pfad.$file)==\'dir\')) { if($pfad.$file!=\'./plugins\'){$dir[]=$pfad.$file;} }else{ if((strpos($pfad.$file,\'.jpg\')==true)OR(strpos($pfad.$file,\'.gif\')==true)OR(strpos($pfad.$file,\'.png\')==true)OR(strpos($pfad.$file,\'.JPG\')==true)){ $image[]=$pfad.$file; } } }closedir($verz); //errechnen der Maximal Seiten eines verzeichnisses. if((count($image))%5>0) {$max_site=((count($image)-(count($image)%5))/5);} else {$max_site=count($image)/5;} //Dokumenten Kopf + Css, hat noch keine Lust das auszulagern, zum schluß kommt oben noch der Banner und der Home button echo \' <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"> <html xmlns=\"http://www.w3.org/1999/xhtml\"> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /> <title>\'.$titel.\'</title> <style type=\"text/css\"> <!-- img, table,td, tr, div{ border:0px; padding:0px; margin:0px; } body{ background-color:#000000; color:#FFFFFF; font-family: tahoma, verdana, Arial, Helvetica, sans-serif; } .midl{ margin: 0px auto; text-align:center; } #navi{ float:left; width: 150px; padding-top: 10px; } #footer{ font-size:9px; position:fixed; bottom:5px; right:5px; } #main{ padding-top: 10px; } .big{ width:500px; padding-top:10px; } .smaler{ padding-top:10px; } .small{ width:100px; } .item{ width:100px; text-align:center; color:#FFFFFF; } .item a:link { color:#FFFFFF; text-decoration:none; } .item a:visited { color:#FFFFFF; text-decoration:none; } .item a:active { color:#FF0000; text-decoration:none; } .item a:hover { color:#FFFFFF; text-decoration:none; } --> </style> </head> <body> <div> <div class=\"midl\"><a href=\"\'.$PHP_SELF.\'?pfad=./&pw=\'.$get_pw.\'\"><img src=\"\'.$banner.\'\"/></a></div> <div id=\"navi\"> <div class=\"item\"><a href=\"\'.$PHP_SELF.\'?pfad=./&pw=\'.$get_pw.\'\"><img src=\"\'.$home.\'\" /> <br />Home</a></div>\'; //kürzung des Pfades Damit der einen Ordner zurückgehen kann, aber nur wenn du nicht Home bist if($pfad!=\'./\' ){ $back_dir = explode(\"/\", $pfad); $back_dir = array_slice($back_dir, 0, count($back_dir)-2); $back_pfad=implode(\"/\", $back_dir); echo\'<div class=\"item\"><a href=\"\'.$PHP_SELF.\'?pfad=\'.$back_pfad.\'/&pw=\'.$get_pw.\'\"><img src=\"\'.$back.\'\" /><br>back</a></div>\'; } // Passwortschutz if (file_exists($pfad.\'passwort.php\')) { include($pfad.\'passwort.php\'); } if(($get_pw!=$date_pw)AND(file_exists($pfad.\'passwort.php\'))){ echo\' </div> <div id=\"main\" class=\"midl\"> <p>Achtung diese Kategorie ist Passwort geschützt, bitte geben sie das Passwort an!</p> <form action=\"\'.$PHP_SELF.\'\"> <input type=\"hidden\" name=\"pfad\" value=\"\'.$pfad.\'\"> <input type=\"hidden\" name=\"pic\" value=\"\'.$top_pic.\'\"> <input type=\"hidden\" name=\"site\" value=\"\'.$site.\'\"> <input name=\"pw\" type=\"text\" size=\"30\" maxlength=\"40\"> <input type=\"submit\" value=\" Bestätigen \"> </form>\'; }else{ // Wenn kein Passwort besteht, wird jetzt hier das Menu aus den Ordner ausgegeben foreach ($dir as $i) { if(strpos($i,\'/.\')==false){ echo\'<div class=\"item\"><a href=\"\'.$PHP_SELF.\'?pfad=\'.$i.\'/&pw=\'.$get_pw.\'\"><img src=\"\'.$folder.\'\" /> <br />\'.shortname($i).\'</a></div>\'; } } echo\'</div> <div id=\"main\" class=\"midl\">\'; //Sobalt die Seite nicht null ist, wird bei den Bildern ein Zurückbuttom eingeblendet if($site!=0){ echo \'<a href=\"\'.$PHP_SELF.\'?pic=\'.$top_pic.\'&pfad=\'.$pfad.\'&site=\'.($site-1).\'&pw=\'.$get_pw.\'\"><img src=\"\'.$skipback.\'\" /></a>\'; }else{ echo\'<img src=\"\'.$spacer.\'\" width=\"80\"/>\'; } //anzeige der Bilder für die Navi for($i=$site*5; $i < $site*5+5; $i++) { if(count($image)>=$site*5+5){ echo\'<a href=\"\'.$PHP_SELF.\'?pic=\'.$i.\'&pfad=\'.$pfad.\'&site=\'.($site).\'&pw=\'.$get_pw.\'\"> <img src=\"\'.$image[$i].\'\"\'.shrink_image($image[$i]).\'/></a> \'; } } //Der Vorbuttom wenn nicht die letzte seite erreicht ist. if($site+1<$max_site){ echo \'<a href=\"\'.$PHP_SELF.\'?pic=\'.$top_pic.\'&pfad=\'.$pfad.\'&site=\'.($site+1).\'&pw=\'.$get_pw.\'\"><img src=\"\'.$skipfor.\'\" /></a>\'; }else{ echo\'<img src=\"\'.$spacer.\'\" width=\"80\"/>\'; } //ausgabe der Seiten Informationen, wenn das nicht die Hauptseite ist if($max_site>0) echo\' <div>Seite \'.($site+1).\' von \'.$max_site.\'</div>\'; //ermittlung der Breite des Hauptbildes $pic_info = getimagesize($image[$top_pic]); //Anzeige des Hauptbildes und herunter Skalierung wenn das Bild zugroß ist if(($pic_info[0]>500)AND($pic_info[0]!=0)){ echo \'<a href=\"\'.$image[$top_pic].\'\" target=\"_blank\"><br /><img class =\"big\" src=\"\'.$image[$top_pic].\'\"/></a>\';} elseif(($pic_info[0]<500)AND($pic_info[0]!=0)){ echo \'<a href=\"\'.$image[$top_pic].\'\" target=\"_blank\"><br /><img class =\"smaler\" src=\"\'.$image[$top_pic].\'\"/></a>\';} } //Footer, Copieright bitte drinne lassen ;) echo\' </div> </div> <div id=\"footer\"><a href=\"mailto:blackflip@web.de\">Simple Black Gallery v0.1</a></div> </body> </html>\';
die Bilder für das Design musst du in der Config.php angeben, hoffe das bekommst du alleine hin, auch dir welche zusuchen. -
edit, mir fällt gerade auf warum ich das passwort nicht mit Post versende, naja wird in der Nächsten Version gefixt. hab das script aber jetzt nicht nochmal auf lima probiert sondern auf anderen Space
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage