kostenloser Webspace werbefrei: lima-city


Problem mit erkennen und darstellen von bildern

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    t-li

    t-li hat kostenlosen Webspace.

    hi!

    hab nen problem, höchstwahrscheinlich liegts am php-tag/code">code.

    ich habe mir ein fotoalbum geschrieben, ein skript, welches bilder in einem ordner erkennt, und in einer bestimmten reihenfolge darstellt etc. die bilder müssen dazu nach einem schema id-name.tag benannt sein (bsp: 12-Ein Hase.jpg). auf dem localen server (Xampp) funktioniert es einwandfrei, aber nicht auf lima city (egal ob firefox oder IE). habe den fehler selbst nicht finden können, hab schon (fast) alles probiert.

    hier ist der quellcode:
    <div class="album">
    <ul>
    <hr>
    <?php 
    	$img = $_GET['img'];
    	$pre1 = $_GET['dir'];
    	if(empty($img) && empty($pre1)){ include('42'); } //der teil ist unwichtig, hat nix mit dem fehler zu tun. (einbindung der ordnerliste)
    ?>
    <hr>
    <div>
    
    <?PHP
    	$dir = 'img/album'; //der ordner, in dem die einzelnen alben und bilder liegen
    	
    	$d = dir($dir);
    	
    	$anzahl = 5; //Anzahl der Bilder pro Zeile
    	$bildbreite = substr(100 / $anzahl, 0, 2); //Breite, die ein bild zur verfügung hat (in %) 
    	$layout = 'picpreview'; //css-klasse für thumbnails
    	
    	if(!empty($pre1)){ //wenn ein album per id ausgewählt wurde
    	
    	while (false !== ($entry = $d->read())){ //jeder eintrag im ordner wird überprüft, ob er ein album ist und ob er zur id passt
    	
    			if(substr($entry, 0, strpos($entry, '-')) === $pre1){ $dir .= '/'.$entry; 
    				//Album Name
    				if(strpos($entry, '-') == true){ 
    					// wenn ordnername '-' enthält, wird der teil bis zum ersten '-' abgeschnitten (präfix zur nummerierung)
    					$dirname = substr($entry, strpos($entry, '-')+1);
    				}else{
    					// wenn ordnername kein '-' enthält, ...
    					$dirname = substr($entry, strpos($entry, '-'), strpos($entry, '.')-strpos($entry, '-'));
    				}
    				
    			continue; //wenn das richtige album gefunden wurde, wird schleife abgebrochen
    			}
    		}
    
    	}
    	$d = dir($dir);
    	$content = 0;
    	
    	
    	if(empty($img)){//wen keine bild id explizit verlangt wird
    		
    //festlegen der laufvariablen
    		if(!empty($pre1)){ $j=1; 
    			echo '<li class="'.$layout.'" id="maindir_l_'.$pre1.'" style="width:'.$bildbreite.'%;" ><a href="index.php?page=4&intro=0"><div class="img" id="maindir_l_d_'.$pre1.'"><img id="maindir_l_d_i_'.$pre1.'" src="img/folder_1.png" title="Zur&uuml;ck"></div><br /><div class="txt"><span>Zur&uuml;ck</span></div></a></li>';
    		}else{ $j=0; }
    		$id=0;
    		
    		//Verwechslungsgefahr: wenn $tag = false ist, geht die schleife weiter.
    		
    		//schmeißt nicht-bild-dateien raus
    		while (false !== ($entry = $d->read())){ //schleife, listet die bilder (thumbnails) auf
    		$tag = false;
    		if(strpos(strtolower($entry), ".jpg") === false
    		&& strpos(strtolower($entry), ".png") === false
    		&& strpos(strtolower($entry), ".gif") === false
    		){ $tag = true; }
    		
    		// prefix wird ermittelt (für bild)
    		$pre = substr($entry,0,strpos($entry, '-'));
    		
    		// Bild-Name wird erzeugt
    		if(strpos($entry, '-') == true){ 
    			// wenn dateiname '-' enthält, wird der teil bis zum ersten '-' abgeschnitten (prefix zur nummerierung)
    			$name = substr($entry, strpos($entry, '-')+1, strpos($entry, '.')-strpos($entry, '-')-1);
    		}else{
    			// wenn dateiname kein '-' enthält, ...
    			$name = substr($entry, strpos($entry, '-'), strpos($entry, '.')-strpos($entry, '-'));
    		}
    		if($name === 'album'){$name = $dirname; } //wenn bildname = album, dann nimmt bildname den albennamen an
    		$album = 'index.php?page=4&intro=0&dir='.$pre1.'&img='.$pre.''; //dient zur abkürzung (bin etwas schreibfaul)
    		$id++;
    		
    			//nicht-bild-dateien werden nicht angezeigt
    			if($tag == true) continue;
    			
    			 //versteckte dateien werden nicht angezeigt
    			if (substr($entry,0,1)==".") continue;
    			
    			$content = 1;
    			// bild-reihe wird erzeugt, mit $anzahl bildern
    			$j++;
    			if($j <= $anzahl) {
    	  		echo '<li class="'.$layout.'" id="l_'.$id.'" style="width:'.$bildbreite.'%;" onmouseover="zoomIn('.$id.');" onmouseout="zoomOut('.$id.');"><a href="'.$album.'"><div class="img" id="l_d_'.$id.'"><img id="l_d_i_'.$id.'" src="'.$dir.'/'.$entry.'" title="'.$name.'"></div><br /><div class="txt"><span>'.$name.'</span></div></a></li>';
    			}else{
    			echo '</div><hr><div>';
    			$j=1;
    			echo '<li class="'.$layout.'" id="l_'.$id.'" style="width:'.$bildbreite.'%;" onmouseover="zoomIn('.$id.');" onmouseout="zoomOut('.$id.');"><a href="'.$album.'"><div class="img" id="l_d_'.$id.'"><img id="l_d_i_'.$id.'" src="'.$dir.'/'.$entry.'" title="'.$name.'"></div><br /><div class="txt"><span>'.$name.'</span></div></a></li>';
    			}
    			
    		}
    	}else{ //wenn eine bild id gegeben ist
    		
    		
    		//vorheriges + nächstes bild
    		$bw = $img - 1;
    		$fw = $img + 1;
    		
    
    //erzeuge linken und rechten button
    		$button1 = '<a href="index.php?page=4&intro=0&dir='.$pre1.'&img='.$bw.'" ><img height="50" style="left:0px; text-decoration:none;" src="img/links2.png" height="20"></a>';
    		$button2 = '<a href="index.php?page=4&intro=0&dir='.$pre1.'&img='.$fw.'" ><img height="50" style="right:0px; text-decoration:none;" src="img/rechts2.png" height="20"></a>';
    		if($img <= 10 && $img > 1){ $button1 = '<a href="index.php?page=4&intro=0&dir='.$pre1.'&img=0'.$bw.'" ><img height="50" style="left:0px; text-decoration:none;" src="img/links2.png" height="20"></a>'; }//klappt
    		if($img <= 8){ $button2 = '<a href="index.php?page=4&intro=0&dir='.$pre1.'&img=0'.$fw.'" ><img height="50" style="right:0px; text-decoration:none;" src="img/rechts2.png" height="20"></a>'; }//klappt
    		
    		//Datei Name (für quellpfad)
    		//$dir = 'img/album';
    		$d = dir($dir);
    		while (false !== ($entry = $d->read())){
    			if(substr($entry, 0, strpos($entry, '-')) === $img){ $imgsrc = $entry; //bild zur bild-id wird gesucht (analog zu oben / album-suche)
    				$content = 1;
    				$nextcontent = 1;
    				//Bild Name
    				if(strpos($entry, '-') == true){ 
    					// wenn dateiname '-' enthält, wird der teil bis zum ersten '-' abgeschnitten (prefix zur nummerierung)
    					$name = substr($entry, strpos($entry, '-')+1, strpos($entry, '.')-strpos($entry, '-')-1);
    				}else{
    					// wenn dateiname kein '-' enthält, ...
    					$name = substr($entry, strpos($entry, '-'), strpos($entry, '.')-strpos($entry, '-'));
    				}
    				if($name === 'album'){$name = $dirname; }
    				
    			continue; 
    			}
    			
    		}
    		
    		if($nextcontent != 1){ $button2 = '<a href="index.php?page=4&intro=0&dir='.$pre1.'" ><img height="50" style="right:0px; text-decoration:none;" src="img/rechts2.png" height="20"></a>'; }
    		//echo '<div class="outerpicture"><!--div class="left">'.$button1.'</div><!-- --><div class="innerpicture"><a href="index.php?page=4&intro=0"><img class="picture" title="name" src="bla.gif"></a></div><!--div class="right">'.$button2.'</div--><hr>';
    		echo '<table class="outerpicture" border="0"><tr><td class="left">'.$button1.'</td><td class="innerpicture"><a href="index.php?page=4&intro=0&dir='.$pre1.'"><img class="picture" title="name" src="'.$dir.'/'.$imgsrc.'"></a></td><td class="right">'.$button2.'</td></tr>';
    		echo '<tr><td colspan="3"><hr></td></tr><tr><td></td><td>';
    		echo 'Bild '.$img.', <br>';
    		echo $name;
    		echo '<br><br><font size="1">(klicken sie auf das Bild, um zurück zu gelangen)</font></td><td></td></tr></table>';
    	}
    		
    		
    		
    ?>
    
    
    </div>
    <?PHP 
    if($content != 1 && empty($img)){
    	if(empty($pre1)){
    		echo "Bitte wählen Sie ein Fotoalbum aus";
    	}else{
    		echo "In diesem Album befinden sich noch keine Bilder!"; 
    	} 
    }
    ?>
    <hr>
    </ul>
    </div>


    wie gesagt, auf dem localhost klappt es wunderbar, aber online nicht. liegt es an der php version?? ist mein php veraltet? sind auf dem server bestimmte funktionen deaktiviert?

    es ist sehr wichtig für mich, und wenn einer von euch weiß woran es liegt und mr helfen kann, wäre das echt toll!

    mfg

    PS: hier kann man sich das online anscheuen (auf dem lc server):
    http://t-li.lima-city.de/balloninsel/ballon/index.php?page=4&intro=0

    Beitrag zuletzt geändert: 25.7.2011 12:03:14 von t-li
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. Also so wie es scheint, liegt es nicht am PHP-Code, denn immerhin wird im Quelltext folgendes angezeigt:
    <img class="picture" title="name" src="img/album/1-Glücksballon I/07-album.JPG">

    was ja dafür spricht, dass PHP das Bild findet und den HTML-Tag richtig erstellt.

    Bist du dir sicher, dass du absolut die gleiche Ordnerstruktur wie auf deinem Localhost verwendest?
    Überprüfe nochmal manuell ob der angegebene Pfad auch existiert!
    Und am besten auch Leerzeichen in Orndernamen vermeiden (siehe: 1-Glücksballon I)
  4. Autor dieses Themas

    t-li

    t-li hat kostenlosen Webspace.

    alfr3d schrieb:
    Also so wie es scheint, liegt es nicht am PHP-Code, denn immerhin wird im Quelltext folgendes angezeigt:
    <img class="picture" title="name" src="img/album/1-Glücksballon I/07-album.JPG">

    was ja dafür spricht, dass PHP das Bild findet und den HTML-Tag richtig erstellt.

    Bist du dir sicher, dass du absolut die gleiche Ordnerstruktur wie auf deinem Localhost verwendest?
    Ja ;)

    Überprüfe nochmal manuell ob der angegebene Pfad auch existiert!
    hab ich, und dabei ist mir etwas aufgefallen:
    es lag am umlaut!
    ich hab das ü jetzt durch ue ersetzt und noch eine kleine funktion für die anzeige geschrieben, jetzt klappts!
    vielen dank :-)

    Und am besten auch Leerzeichen in Orndernamen vermeiden (siehe: 1-Glücksballon I)


    jau, mach ich jetzt auch, obwohls daran nicht lag .

    noch eine zweite frage:

    die bilder werden außerdem in falscher reihenfolge angezeigt. zur besseren übersicht habe ich das skript erweitert und lasse vor jedem bild seine id anzeigen. eigentlich sollten sie in dieser reihenfolge angezeigt werden, und das funktioniert auch auf xampp, aber nicht auf lima. im ftp programm werden sie auch in richtiger reihenfolge angezeigt, aber im fotoalbum sind sie kreuz und quer.

    weiß jemand, woran das liegen könnte??

    hier nochmal der link:
    http://t-li.lima-city.de/balloninsel/ballon/index.php?page=4&intro=0&dir=1&img=0

    danke!
  5. 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!