Dateiausgabe und PHP5

Ha, Fehler gefunden und behoben ;)

Ich danke Dir für deine Zeit ;)

Das fertige Script sieht nun so aus ;)

PHP:
<div id="zeigedasbild"></div>
<?
ini_set("display_errors", 1);
error_reporting(E_ALL); 
$verzeichnis1=opendir($bildverz."/".$_GET['uverz']);
$verzeichnis=opendir($thumbs."/".$_GET['uverz']);
	echo"<table width=100% align=center cellspacing=8 cellpadding=8><tr><td class=black colspan=4 align=center>Bildergalerie</td></tr><tr>";
	$i=0;
		while($file=readdir($verzeichnis))
		{
			if ($i <= 3)
			{
		if(is_file($bildverz."/".$_GET['uverz']."/".$file))
					{?>
						<td align=center><a href="<?=$bildverz ?>/<?=$_GET['uverz'] ?>/<?=$file ?>"  rel="lightbox[galerie]"><img src="<?=$thumbs ?>/<?=$_GET['uverz'] ?>/<?=$file ?>" width="100" height="100" border="0"  style="filter:alpha(opacity=40);-moz-opacity:0.4" onmouseover="init_fader(this,5,20,40,99,1)"></a></td>
					<?	$i=$i+1;
					}
			}
		else
		{
			$i=1; ?>
			<tr><td align=center><a href="<?=$bildverz ?>/<?=$_GET['uverz'] ?>/<?=$file ?>" rel="lightbox[galerie]"><img src="<?=$thumbs ?>/<?=$_GET['uverz'] ?>/<?=$file ?>" width="100" height="100" border="0" style="filter:alpha(opacity=40);-moz-opacity:0.4" onmouseover="init_fader(this,5,20,40,99,1)"></a></td>
		<? }
	}
echo"</tr><tr><td colspan=4><center><font><a href=\"index.php?seite=bildgal/galerien\" target=\"_self\">zurück</a></font></center></td></tr></table>";
closedir($verzeichnis);
?>
 
Zuletzt bearbeitet:
Hi,

schön. Jetzt solltest Du aber noch $_GET['uverz'] überprüfen, ob da nicht jemand über die Adresszeile etwas unerwartetes eingegeben hat. ;)

LG
 
Hi,

schön. Jetzt solltest Du aber noch $_GET['uverz'] überprüfen, ob da nicht jemand über die Adresszeile etwas unerwartetes eingegeben hat. ;)

LG

Ok, neuer Abend neues Glück ;)

Bitte wie meinst Du das ? Was soll ich den da überprüfen ?
Sorry wenn ich mich da ein bissel doof anstellen, aber so genau hab ich mich damit noch nie beschäftigt ;)
 
Hi,

Du könntest prüfen, ob $_GET['uverz'] überhaupt ein Unterverzeichnis vom Bilder- und vom Thumbnailverzeichnis ist. Könnte ja sein, dass es mal jemand mit "../irgendwas" oder ähnlichem probiert.
Was man da so anstellen könnte, hängt natürlich von der Sicherheit des Servers ab, und was da so alles drauf rumliegt. Generell sollte man aber immer alle Usereingaben prüfen.

LG
 
Hi,

Du könntest prüfen, ob $_GET['uverz'] überhaupt ein Unterverzeichnis vom Bilder- und vom Thumbnailverzeichnis ist. Könnte ja sein, dass es mal jemand mit "../irgendwas" oder ähnlichem probiert.
Was man da so anstellen könnte, hängt natürlich von der Sicherheit des Servers ab, und was da so alles drauf rumliegt. Generell sollte man aber immer alle Usereingaben prüfen.

LG

N'Abend,

habs gestern nacht nicht mehr geschafft wach zu bleiben ;)
Aber heute bin ich wieder da ;)

Also habs jetzt mal so versucht, weil ich die funktion is_dir in der php doku gefunden habe.
Das Script:

PHP:
<div id="zeigedasbild"></div>
<?
ini_set("display_errors", 1);
error_reporting(E_ALL); 
$verzeichnis1=opendir($bildverz."/".$_GET['uverz']);
$verzeichnis=opendir($thumbs."/".$_GET['uverz']);
?>
	<table width=100% align=center cellspacing=8 cellpadding=8><tr><td class=black colspan=4 align=center><?=$_GET['uverz'] ?></td></tr><tr>
<?		
	$i=0;
		while($file=readdir($verzeichnis))
		{
			if ($i <= 3)
			{
				if(is_dir($bildverz."/".$_GET['uverz']))
				{
		if(is_file($bildverz."/".$_GET['uverz']."/".$file))
					{?>
						<td align=center><a href="<?=$bildverz ?>/<?=$_GET['uverz'] ?>/<?=$file ?>"  rel="lightbox[galerie]"><img src="<?=$thumbs ?>/<?=$_GET['uverz'] ?>/<?=$file ?>" width="100" height="100" border="0"  style="filter:alpha(opacity=40);-moz-opacity:0.4" onmouseover="init_fader(this,5,20,40,99,1)"></a></td>
					<?	$i=$i+1;
					}
			}
		}
		else
		{
			$i=1; ?>
			<tr><td align=center><a href="<?=$bildverz ?>/<?=$_GET['uverz'] ?>/<?=$file ?>" rel="lightbox[galerie]"><img src="<?=$thumbs ?>/<?=$_GET['uverz'] ?>/<?=$file ?>" width="100" height="100" border="0" style="filter:alpha(opacity=40);-moz-opacity:0.4" onmouseover="init_fader(this,5,20,40,99,1)"></a></td>
		<? }
	}
echo"</tr><tr><td colspan=4><center><font><a href=\"index.php?seite=bildgal/galerien\" target=\"_self\">zurück</a></font></center></td></tr></table>";
closedir($verzeichnis);
?>
Ich hoffe DU hast das so gemeint. Wenn ja dann kann ich mal stolz auf mich sein ;)
 
Zuletzt bearbeitet:
Sodele habe jetzt nochmal ein bisschen rumgebastelt.

Wenn ich jetzt ../bla/bla/bla eingebe, dann zeigt er eine Fehler meldung an die ich selber ausgesucht habe und bricht dann ab, kann mal einer drüber schauen und mir sagen ob der Code so nun sicher ist ?

PHP:
<div id="zeigedasbild"></div>
<?
ini_set("display_errors", 1);
error_reporting(E_ALL);
if(!is_dir($bildverz."/".$_GET['uverz']))
  {
     	echo"<center><font class=black>Also DU hast irgendwas versucht was Du nicht sollst</font></center>";
     	die();
  }
  else
  {
$verzeichnis1=opendir($bildverz."/".$_GET['uverz']);
$verzeichnis=opendir($thumbs."/".$_GET['uverz']);
?>
    <table width=100% align=center cellspacing=8 cellpadding=8><tr><td class=black colspan=4 align=center><?=$_GET['uverz'] ?></td></tr><tr>
<?        
    $i=0;
        while($file=readdir($verzeichnis))
    {
            if ($i <= 3)
            {
        if(is_file($bildverz."/".$_GET['uverz']."/".$file))
                    {?>
                        <td align=center><a href="<?=$bildverz ?>/<?=$_GET['uverz'] ?>/<?=$file ?>"  rel="lightbox[galerie]"><img src="<?=$thumbs ?>/<?=$_GET['uverz'] ?>/<?=$file ?>" width="100" height="100" border="0"  style="filter:alpha(opacity=40);-moz-opacity:0.4" onmouseover="init_fader(this,5,20,40,99,1)"></a></td>
                    <?    $i=$i+1;
                    }
            }
        else
        {
            $i=1; ?>
            <tr><td align=center><a href="<?=$bildverz ?>/<?=$_GET['uverz'] ?>/<?=$file ?>" rel="lightbox[galerie]"><img src="<?=$thumbs ?>/<?=$_GET['uverz'] ?>/<?=$file ?>" width="100" height="100" border="0" style="filter:alpha(opacity=40);-moz-opacity:0.4" onmouseover="init_fader(this,5,20,40,99,1)"></a></td>
     <? }
    }
echo"</tr><tr><td colspan=4><center><font><a href=\"index.php?seite=bildgal/galerien\" target=\"_self\">zurück</a></font></center></td></tr></table>";
closedir($verzeichnis);
}
?>
 
Funktionenwahn:
PHP:
<html>
  <head>
    <title>Bildergallerie</title>
  </head>
  <body>
<?
function _gallery($dir_use, $dir_main, $dir_thumbs){
  $dir_main = $dir_main . '/' . $dir_use;
  $dir_thumbs = $dir_thumbs . '/' . $dir_use;

  if(!is_dir($dir_main) || !is_dir($dir_thumbs)){
    echo('<center><font class=black>Also <strong>Du</strong> hast irgendetwas versucht, das Du nicht sollst</font></center>');
    return false;
  }
  
  $handle_dir_main = opendir($dir_main);
  $handle_dir_thumbs = opendir($dir_thumbs);
  
  if(!$handle_dir_main || !$handle_dir_thumbs){
    echo('<center><font class=black>Konnte Ordner nicht &oumlffnen</font></center>');
    return false;
  }
  
  echo('    <table width="100%" align="center" cellspacing="8" cellpadding="8">' . "\n" .
       '      <tr>' . "\n" .
       '        <td class="black" colspan="4" align="center">Verzeichnis: ' . $dir_use . '</td>' . "\n" .
       '      </tr>' . "\n");
  
  $file_count = 0;
  
  while($file_name = readdir($handle_dir_main)){
    if($file_name != '.' && $file_name != '..'){
      if(is_file($dir_main . '/' . $file_name)){
        echo('      <tr>' . "\n" .
             '        <td align="center"><a href="' . $dir_main . '/' . $file_name . '" rel="lightbox[galerie]"><img src="' . $dir_thumbs . '/' . $file_name . '" width="100" height="100" border="0" style="filter:alpha(opacity=40); -moz-opacity:0.4" onmouseover="init_fader(this,5,20,40,99,1)"></a></td>' . "\n" .
             '      </tr>' . "\n");
        $file_count++;
      }
    }
  }
  
  closedir($handle_dir_main);
  closedir($handle_dir_thumbs);
  
  echo('      <tr>' . "\n" .
       '        <td colspan="4"><center><font><a href="index.php?seite=bildgal/galerien" target="_self">zurück</a></font></center></td>' . "\n" .
       '      </tr>' . "\n" .
       '    </table>' . "\n");
}

if(isset($_GET['uverz']) && !empty($_GET['uverz'])){
  if(!@ereg('^[a-zA-Z0-9._-]*$', $_GET['uverz'])){
    echo('<center><font class=black>Unerlaubte Zeichen im Ordnernamen</font></center>');
    return false;
  }else{
    _gallery($_GET['uverz'], 'normal', 'klein');
  }
}else{
  echo('<center><font class=black>Du hast vergessen einen Ordner anzugeben</font></center>');
}

?>
  </body>
</html>
^^;
 
Ähhhhhhhhhh, danke, ich sehe ansetze von meinem alten Script........ aber öhm *schwitz*
Du hast mir nun eine aufgabe gegeben mich da durch zu arbeiten .......
 
Ist im Grunde nur dein Skript als Funktion. Ein paar Fehler und Ungereimtheiten habe ich "verbessert". Was ich nicht verstanden habe, bei dir, war:
PHP:
            if ($i <= 3)
            {
        if(is_file($bildverz."/".$_GET['uverz']."/".$file))
                    {?>
                        <td align=center><a href="<?=$bildverz ?>/<?=$_GET['uverz'] ?>/<?=$file ?>"  rel="lightbox[galerie]"><img src="<?=$thumbs ?>/<?=$_GET['uverz'] ?>/<?=$file ?>" width="100" height="100" border="0"  style="filter:alpha(opacity=40);-moz-opacity:0.4" onmouseover="init_fader(this,5,20,40,99,1)"></a></td>
                    <?    $i=$i+1;
                    }
            }
        else
        {
            $i=1; ?>
            <tr><td align=center><a href="<?=$bildverz ?>/<?=$_GET['uverz'] ?>/<?=$file ?>" rel="lightbox[galerie]"><img src="<?=$thumbs ?>/<?=$_GET['uverz'] ?>/<?=$file ?>" width="100" height="100" border="0" style="filter:alpha(opacity=40);-moz-opacity:0.4" onmouseover="init_fader(this,5,20,40,99,1)"></a></td>
     <? }
    }
Im Prinzip so wie
PHP:
<?php
for($i = 0; $i < 10; $i++){
  if($i < 5){
    echo("Das verstehe ich nicht<br />");
  }else{
    echo("Das verstehe ich nicht<br />");
  }
}
?>
und das ist ja das Gleiche wie auch
PHP:
<?php
for($i = 0; $i < 10; $i++){
  echo("Das verstehe ich nicht<br />");
}
?>
Deswegen sieht man bei mir noch Überbleibsel von $file_count (entspricht deinem $i), das kannst du ja nach Belieben wieder benutzen, oder es ganz wegmachen...
 
Zuletzt bearbeitet:
Na ja bin net so wirklich fit in PHP und noch am üben ;)
Und das funktionierte halt so wie ich es wollte, nämlich das er nach 4 bildern einen zeilen umbruch macht und dann weiter macht mit der bild ausgabe ;)
 
Zurück