GalaxyWarrior
Erfahrenes Mitglied
Hi, ich habe versucht einen Dateibrowser zu bauen. Da ich das Verzeichniss in welchem man sich befindet über eine Variable in der URL weitergebe, wird diese, sobald man auf ../ klickt ( Verzeichniss hoch ) um ../ erweitert. Es fubktioniert zwar, aber 1. ist das mist wenn in der URL irgendwann web0/html/../files/images/../../html usw steht, 2. kann ich damit nicht wirklich weiterarbeite. Naja, hab ich mir gedacht, ich kann ja mal die Variable in der URL auf die Zeichenfolge .. prüfen und das dann entfernen, genauer so:
allerdings geht das nicht. Irgendwie geht der jetzt immer in die 1. if abfrage, also egal was da steht, ich denke er sucht bei .. einfach alles. aber wie kann ich das anders machen?
Wenn ich "/../" mit "/html/" ersetze, dann macht er das immer wenn html in der Variablen vorkommt. Warumm also nicht bei "/../"
Ich hoffe es war verständlich.
Gruß GalaxyWarrior
PHP:
$before = $new;
$dir = $dirurl."/";
$verzeichnis=opendir($dir);
while ($file = readdir ($verzeichnis)) {
$cwd = getcwd();
if(preg_match("/../", $dir)){
$back = eregi_replace("$before","", $dir);
$back = eregi_replace("../","", $dir);
?>
<meta http-equiv="refresh" content="0; url=<? echo 'dateibrowser.php?sid='.session_id().'&dirurl='.$back.'' ?>">
<?
}else{
if ($file != "." && $file != "..") {
$test = filetype($dir . $file);
if($test == "dir"){
echo "<a href=dateibrowser.php?sid=".session_id()."&dirurl=".$dir.$file."&new=".$file."&alt=".$before.">".$file."</a><br>";
}elseif($test == "file"){
echo "<a href=dateibrowser.php?sid=".session_id()."&fileurl=".$dir.$file.">".$file."</a><br>";
}
}
}
}
allerdings geht das nicht. Irgendwie geht der jetzt immer in die 1. if abfrage, also egal was da steht, ich denke er sucht bei .. einfach alles. aber wie kann ich das anders machen?
Wenn ich "/../" mit "/html/" ersetze, dann macht er das immer wenn html in der Variablen vorkommt. Warumm also nicht bei "/../"
Ich hoffe es war verständlich.
Gruß GalaxyWarrior