Visualizzazione dei risultati da 1 a 6 su 6

Discussione: problema upload.php

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    3

    problema upload.php

    Ciao a tutti ho un problema con un file upload.php che non so come risolvere

    Questo il file:

    <?php

    $directory = $_POST['directory'];


    if(!is_dir($directory)) mkdir($directory, 0777);

    $tmp_name = $_FILES["Filedata"]["tmp_name"];
    $name = $_FILES["Filedata"]["name"];
    move_uploaded_file($tmp_name, "$directory/$name");
    chmod("$directory/$name", 0777);
    return "Upload Complete";

    ?>


    Questo il log errori:
    PHP Warning: mkdir() [function.mkdir]: No such file or directory in /home/xxx/public_html/xxx/upload.php on line 7
    PHP Warning: move_uploaded_file(./http://www.xxx.com/xxx/foto.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/xxx/public_html/xxx/upload.php on line 9
    PHP Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/var/tmp/phpwrSSXl' to './http://www.xxx.com/xxx/foto.jpg' in /home/xxx/public_html/xxx/upload.php on line 9
    PHP Warning: chmod() [function.chmod]: No such file or directory in /home/xxx/public_html/xxx/upload.php on line 10






    Il file viene caricato ma la directory non viene creata e quindi il file non viene spostato dentro....
    Inoltre il file caricato viene cercato di salvare usando il percorso http://miosito.com/file.jpg per esempio e non nella directory che avrebbe dovuto essere creata

    Qualche idea o suggerimento???

    Grazie in anticipo

    Marc

  2. #2
    Moderatore di Off Topic, Kickstarter e XML L'avatar di Sky
    Registrato dal
    Jul 2000
    residenza
    Roma
    Messaggi
    1,053
    Direi che il problema è nel contenuto della variabile $directory. Dove viene specificata, in un form?

    PS: così com'è lo script è altamente vulnerabile ad attacchi, se puoi affidati ad una classe già creata che sia anche robusta e affidabile. Rischi che ti carichino di tutto e di più sul server :P
    Qui una bella directory di classi: http://www.phpclasses.org/
    Lo Stato deve dare ai cittadini, come diritto, ciò che la mafia dà come favore.
    Carlo Alberto dalla Chiesa

    Facebook | Twitter | Last.fm | LinkedIn | Quora

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    3
    Ciao Sky,
    grazie della risposta....

    modificato così funziona......


    <?php

    $directory = $_GET['directory'];

    if(!is_dir("./MyDir/$directory")) mkdir("./MyDir/$directory", 0755);

    move_uploaded_file($_FILES['Filedata']['tmp_name'], "./MyDIr/$directory/".$_FILES['Filedata']['name']);
    chmod("./MyDIr/$directory/".$_FILES['Filedata']['name'], 0777);
    return "Upload Complete";
    ?>


    Ora.....io non sono molto esperto...potresti aiutarmi a rendere il tutto un po' più sicuro....

    Grazie

    Marc

  4. #4
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    In primis devi controllare l'estensione del file che sia solo dei formati accettati dal tuo sistema.

    In secundis devi controllare la dimensione del file che nn sia troppo grande.

    In terzis devi stare attento ai permessi che setti sulla dir, poi dipende da come vorrai gestire gli acessi ai files.

    In quartis non dare mai permessi di esecuzione al file ma solo di lettura/scrittura.

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    3
    Ciao Visus,
    potresti essere un po' più specifico...
    ho iniziato da poco a masticare queste cose e mi fanno un po' male i denti...
    Grazie.......

  6. #6
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Ti posto una buona guida di base se haiprob fa un fischio :

    http://www.w3schools.com/PHP/php_file_upload.asp

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.