Fejl i fil håndterings script
Jeg har fået bikset et script sammen ved hjælp af andre scripts der er fundet på nettet. Det fungerer fint nok hvis jeg lader mit dir stå på chmod 777 hele tiden... Men, fejlen i scriptet, foregår i linie 32, 33 og 34... Den vil ikke slettet en fil i min oversigt når jeg vælger at slette det...kilde koden ses her:
<?php
include("style.css");
include("scroller.css");
$MAX_SIZE = 2000000;
$FILE_MIMES = array('image/jpeg','image/jpg','image/gif'
,'image/png','application/msword');
$FILE_EXTS = array('.rar','.jpg','.png','.gif');
$DELETABLE = true;
$site_name = $_SERVER['HTTP_HOST'];
$url_dir = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']);
$url_this = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
$upload_dir = "pics/";
$upload_url = $url_dir."/pics/";
$message ="";
if (!is_dir("pics")) {
if (!mkdir($upload_dir))
die ("Dir til upload, eksisterer ikke. Fejl i upload. Kontakt Sniper_h0e aka Deus.");
if (!chmod($upload_dir,0755))
die ("Chmod på dir skal være 755, kontakt Sniper_h0e aka Deus.");
}
if ($_REQUEST[del] && $DELETABLE) {
$resource = fopen("log.txt","a");
fwrite($resource,date("Ymd h:i:s")."DELETE - $_SERVER[REMOTE_ADDR]"."$_REQUEST[del]\n");
fclose($resource);
if (strpos($_REQUEST[del],"/.")>0);
else if (strpos($_REQUEST[del],$upload_dir) === false);
else if (substr($_REQUEST[del],0,6)==$upload_dir) {
unlink($_REQUEST[del]);
print "<script>window.location.href='$url_this?message=deleted successfully'</script>";
}
}
else if ($_FILES['userfile']) {
$resource = fopen("log.txt","a");
fwrite($resource,date("Ymd h:i:s")."UPLOAD - $_SERVER[REMOTE_ADDR]"
.$_FILES['userfile']['name']." "
.$_FILES['userfile']['type']."\n");
fclose($resource);
$file_type = $_FILES['userfile']['type'];
$file_name = $_FILES['userfile']['name'];
$file_ext = strtolower(substr($file_name,strrpos($file_name,".")));
if ( $_FILES['userfile']['size'] > $MAX_SIZE)
$message = "Filer større end 2mb kan ikke uploades. Kontakt Sniper_h0e aka Deus";
else if (!in_array($file_type, $FILE_MIMES)
&& !in_array($file_ext, $FILE_EXTS) )
$message = "Fejl, $file_name($file_type) kan ikke uploades. Typen ikke tilladt. Kontakt Sniper_h0e aka Deus.";
else
$message = do_upload($upload_dir, $upload_url);
print "<script>window.location.href='$url_this?message=$message'</script>";
}
else if (!$_FILES['userfile']);
else
$message = "Filtype ikke tilladt.";
$handle=opendir($upload_dir);
$filelist = "";
while ($file = readdir($handle)) {
if(!is_dir($file) && !is_link($file)) {
$filelist .= "<a href='$upload_dir$file'>".$file."</a>";
if ($DELETABLE)
$filelist .= " - <a href='?del=$upload_dir$file' title='delete'><font color='#cccccc'>x</font></a> - ";
$filelist .= "<sub><font color='#cccccc'> ".date("d-m H:i", filemtime($upload_dir.$file))
."</font></sub>";
$filelist .="<br>";
}
}
function do_upload($upload_dir, $upload_url) {
$temp_name = $_FILES['userfile']['tmp_name'];
$file_name = $_FILES['userfile']['name'];
$file_name = str_replace("\\","",$file_name);
$file_name = str_replace("'","",$file_name);
$file_path = $upload_dir.$file_name;
if ( $file_name =="") {
$message = "Invalid fil navn indtastet. Prøv igen.";
return $message;
}
$result = move_uploaded_file($temp_name, $file_path);
if (!chmod($file_path,0777))
$message = "Fejl i ændring af chmod til 777.";
else
$message = ($result)?"$file_name uploaded." :
"Noget er galt med uploading af fil.";
return $message;
}
?>
<center>
<font color=red><?=$_REQUEST[message]?></font>
<br>
<form name="upload" id="upload" ENCTYPE="multipart/form-data" method="post">
<h3>Upload af fil</h3>
<input type="file" id="userfile" name="userfile">
<input type="submit" name="upload" value="Upload">
</h1>
</form>
<br><b>Oversigt over filer</b>
<hr width=80% size="1">
<?=$filelist?>
<hr width=80% size="1">
</center>
