Avatar billede a330 Nybegynder
24. februar 2005 - 09:36 Der er 8 kommentarer og
1 løsning

upload script virker ikke

Hej har hentet dette upload script Hotscripts.com får følgende fejl

change permission to 755 failed.

billedet skal ligge i en mappe som er /forum/imagessalg.

nogle som kan gennemskue det?

min udbyder er B_one

<?php
$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 = "/forum/imagessalg/";
$upload_url = $url_dir."/forum/imagessalg/";
$message ="";

/************************************************************
*    Create Upload Directory
************************************************************/
if (!is_dir("files")) {
  if (!mkdir($upload_dir))
      die ("upload_files directory doesn't exist and creation failed");
  if (!chmod($upload_dir,0755))
      die ("change permission to 755 failed.");
}

/************************************************************
*    Process User's Request
************************************************************/

if ($_REQUEST[del])  {
  $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);  //possible hacking
  else if (strpos($_REQUEST[del],"files/") === false); //possible hacking
  else if (substr($_REQUEST[del],0,6)=="files/") {
    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);

  $message = do_upload($upload_dir, $upload_url);
  print "<script>window.location.href='$url_this?message=$message'</script>";
}
else if (!$_FILES['userfile']);
else
    $message = "Invalid File Specified.";

/************************************************************
*    List Files
************************************************************/
$handle=opendir($upload_dir);
$filelist = "";
while ($file = readdir($handle)) {
  if(!is_dir($file) && !is_link($file)) {
      $filelist .= "<br><a href='$upload_dir$file'>".$file."</a>";
      $filelist .= "    <a href='?del=$upload_dir$file' title='delete'>x</a>";
  }
}

function do_upload($upload_dir, $upload_url) {

    $temp_name = $_FILES['userfile']['tmp_name'];
    $file_name = $_FILES['userfile']['name'];
    $file_type = $_FILES['userfile']['type'];
    $file_size = $_FILES['userfile']['size'];
    $result    = $_FILES['userfile']['error'];
    $file_url  = $upload_url.$file_name;
    $file_path = $upload_dir.$file_name;

    //File Name Check
    if ( $file_name =="") {
        $message = "Invalid File Name Specified";
        return $message;
    }
    //File Size Check
    else if ( $file_size > 2000000) {
        print $file_size;
        $message = "The file size is over 1MB.";
        return $message;
    }
    //File Type Check  -- may cause possible attacks
    else if ( strpos($file_name,".php") !== false
          || strpos($file_name,".cgi") !== false
          || strpos($file_name,".htm") !== false
          || strpos($file_name,".phtm") !== false )
      return;
    else if ( strpos($file_type,"image") !== false
      || $file_type == "application/msword");
    else {
        $message = "Sorry, demo. only allows image or ms-word upload." ;
        $message .= "<br>You may allow other types(i.e, .zip) on your own server." ;
        return $message;
    }

    $result  =  move_uploaded_file($temp_name, $file_path);
    if (!chmod($file_path,0755))
        $message = "change permission to 755 failed.";
    else
      $message = ($result)?"$file_name uploaded successfully." :
                "Somthing is wrong with uploading a file.";

    return $message;
}

?>
<center>
  <font color=red><?=$_REQUEST[message]?></font>
  <br>
  <form name="upload" id="upload" ENCTYPE="multipart/form-data" method="post">
    Upload File <input type="file" id="userfile" name="userfile">
    <input type="submit" name="upload" value="Upload">
  </form>
 
  <br>
  <br><b>My Files</b>
  <hr width=70%>
  <?=$filelist?>
</center>

<?
if ($_REQUEST[debug]==1) print "------------------Debugging Info----------------<br>";
if ($_REQUEST[debug]==1) print "site=$site_name<br>dir=$url_dir<br>url=$url_this<br>";
if ($_REQUEST[debug]==1) print "upload dir=$upload_dir<br>upload url=$upload_url<br>";
?>
Avatar billede greew Nybegynder
24. februar 2005 - 09:39 #1
Du har ikke umiddelbart tilladelse til at ændre mappens rettigheder i

/************************************************************
*    Create Upload Directory
************************************************************/
if (!is_dir("files")) {
  if (!mkdir($upload_dir))
      die ("upload_files directory doesn't exist and creation failed");
  if (!chmod($upload_dir,0755))          <---------- HER!
      die ("change permission to 755 failed.");
}

Du må kigge på, hvilke rettigheder du har til at ændre mapper og filer hos B-one.. Eventuelt om du kan ændre dette i et kontrol-panel eller noget lignende.
Avatar billede avminarm Juniormester
24. februar 2005 - 09:51 #2
b-one er vist ikke så samarbejdsvillige hvad angår uploads
Avatar billede alister_crowley Nybegynder
24. februar 2005 - 09:56 #3
det er jo også 777 der er skriverettigheder, 775 duer ikke.
Avatar billede greew Nybegynder
24. februar 2005 - 09:59 #4
Det kommer jo an på hvilken bruger, der tilgår mappen. Hvis det er ejeren af mappen, er det jo ikke noget problem.
Avatar billede erikjacobsen Ekspert
24. februar 2005 - 10:03 #5
Dit upload_dir kan ikke hedde /forum/... men skal være stien på serveren, noget i retning af

/home/www/ditdomæne/html/forum/....

...eller hvad det nu hedder på b_one
Avatar billede greew Nybegynder
24. februar 2005 - 10:06 #6
erikjacobsen: det er da stadig underligt, at
die ("upload_files directory doesn't exist and creation failed");
ikke kommer frem så, når den prøver at oprette mappen ??
Avatar billede erikjacobsen Ekspert
24. februar 2005 - 10:26 #7
Det kunne tyde på at "Warnings" er slået fra. Så skal man jo lede efter sine fejl i blinde.
Avatar billede a330 Nybegynder
24. februar 2005 - 11:05 #8
nu virker det skulle ligge scriptet i biblioteket hvor jeg vil have filen...
Avatar billede a330 Nybegynder
24. februar 2005 - 11:06 #9
+ slette denne her

************************************************************/
if (!is_dir("files")) {
  if (!mkdir($upload_dir))
      die ("upload_files directory doesn't exist and creation failed");
  if (!chmod($upload_dir,0755))
      die ("change permission to 755 failed.");
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester