kostenloser Webspace werbefrei: lima-city


php bilder album

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    p*******4

    hallo,
    ich brauche ein fotoalbum das alle bilder in einem ordner darstellt. Also ich meine damit das man alle bilder in einen ordner tut und das fotoalbum die bilder dann nimmt un darstellt, aba ich möchte nicht die bildernamen angeben müssen.
    Danke schon mal im voraus.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. du könntest eine tabelle in der db anlegen mit:
    id - name - pfad

    und dann per script alle einträge auslesen und die bilder ausgeben lassen.
  4. Autor dieses Themas

    p*******4

    ich kenne mich eig nur mit html un flash aus. also köntest du mir vllt so nen script un die tabelle geben?
    danke
  5. also wenn du nen script suchst gehste am besten mal auf http://www.phpwelt.de/archiv/ dort findet man so gut wie alles;)
  6. g*****y

    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.
  7. Autor dieses Themas

    p*******4

    ok danke
    aba wie willste das schicken??
  8. g*****y

    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
  9. Autor dieses Themas

    p*******4

    ok vielen dank
  10. 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
  11. g*****y

    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.
  12. g*****y

    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
  13. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!