• User Attivo

    @franz1386 said:

    PS
    Ci ho aggiunto la funzione che mi avevi detto tu e quella funziona alla grande! 😃 grazie...

    Figurati, anche se non ho capito come hai fatto a testarla visto che in quel codice non l'hai usata... ti posto l'algoritmo che hai postato "corretto" secondo le tue esigenze.

    [php]
    <?php
    function rimuovi_caratteri_speciali($name_of_uploaded_file) {
    return preg_replace('/^\w+$/', '_', $name_of_uploaded_file);
    }
    $marca = $_POST['marca'];
    $cassa = $_POST['cassa'];
    $movimento = $_POST['movimento'];
    $descrizione = $_POST['commento'];
    $email = $_POST['email'];

    //Get the uploaded file information
    $name_of_uploaded_file = rimuovi_caratteri_speciali(basename($_FILES['uploaded_file']['name']));

    //get the file extension of the file
    $type_of_uploaded_file = substr($name_of_uploaded_file, strrpos($name_of_uploaded_file, '.') + 1);

    $size_of_uploaded_file = $_FILES["uploaded_file"] / 1024; //size in KBs

    //Settings
    $max_allowed_file_size = 9100; // size in KB
    $allowed_extensions = array("jpg", "jpeg", "gif", "bmp");
    //Validations
    if ($size_of_uploaded_file > $max_allowed_file_size) {
    $errors .="\n Size of file should be less than $max_allowed_file_size";
    }
    //------ Validate the file extension -----
    $allowed_ext = false;
    for ($i = 0; $i < sizeof($allowed_extensions); $i++) {
    if (strcasecmp($allowed_extensions*, $type_of_uploaded_file) == 0) {
    $allowed_ext = true;
    }
    }
    if (!$allowed_ext) {
    $errors .="\n The uploaded file is not supported file type. " . " Only the following file types are supported: " . implode(',', $allowed_extensions);
    }

    //copy the temp. uploaded file to uploads folder
    $path_of_uploaded_file = $upload_folder . $name_of_uploaded_file;
    $tmp_path = $_FILES["uploaded_file"]["tmp_name"];
    if (is_uploaded_file($tmp_path)) {
    if (!move_uploaded_file($tmp_path, $path_of_uploaded_file)) {
    $errors .='\n error while copying the uploaded file';
    }
    }
    $to = "[email protected]";

    // IL SOGGETTO DELLA MAIL
    $subject = "Offerta orologio";

    // COSTRUZIONE DEL CORPO DEL MESSAGGIO
    $body = "Contenuto del modulo:\n\n";
    $body .="Marca: " . trim(stripslashes($_POST["marca"])) . "\n";
    $body .="Cassa: " . trim(stripslashes($_POST["cassa"])) . "\n";
    $body .="Movimento: " . trim(stripslashes($_POST["movimento"])) . "\n";
    $body .="Descrizione: " . trim(stripslashes($_POST["commento"])) . "\n";
    $body .="email: " . trim(stripslashes($_POST["email"])) . "\n";
    $body .="File: " . trim(stripslashes($_FILES['uploaded_file']['name'])) . "\n";
    if (@mail($to, $subject, $body)) {// SE L?INOLTRO E? ANDATO A BUON FINE?
    echo"L'invio ? andato a buon fine, premi indietro per tornare alla pagina precedente!";
    } else {// ALTRIMENTI?
    echo"Si sono verificati dei problemi nell?invio della mail.";
    }
    ?>
    [/php]

    EDIT: il mio script non funziona? Ti dà sempre Errore 500 - Internal Server Error o un altro errore?


  • User Attivo

    Ah...io l'avevo incollata lì in mezzo al codice, poi ho provato a inviare un file dal modulo e aveva funzionato...ora comunque ho usato il tuo che è sicuramente meglio! grazie...
    Comunque mi dà sempre Errore 500....


  • User Attivo

    Hai incluso anche lo slash finale nel percorso che ti ho dato per il tuo dominio (/web/htdocs/w w w . comproorologi.org/home**/**)?
    Se si, hai possibilità nel pannello di Aruba di guardare il log degli errori del webserver per vedere la descrizione dell'errore 500?

    EDIT: nel caso, prova a spostare i file in una sottocartella /files/, modifica il percorso in /web/htdocs/w w w . comproorologi.org/hom./files/, e a dare alla cartella files almeno i permessi 775.


  • User Attivo

    Sì, ce l'ho messo lo slash... gli errori che mi da sono questi:
    [TABLE="class: questionTab, width: 95%"]

    [TD][Thu Mar 14 15:20:15 2013] [error] [client 2.225.24.53:55078] - w w w . comproorologi . org - End of script output before headers: cancella.php[/TD]
    [/TR]

    [TD][Thu Mar 14 15:20:15 2013] [error] [client 2.225.24.53:55078] - w w w . comproorologi . org - AH01215: suexec policy violation: see suexec log for more details[/TD]
    [/TR]

    [TD][Thu Mar 14 15:07:52 2013] [error] [client 2.225.24.53:54340] - w w w . comproorologi.org - script not found or unable to stat: /web/htdocs/w w w . comproorologi.org/home/cancella.php

    E cmq non me li fa nemmeno spostare in una cartella...non ci posso proprio far niente con quei file, qualsiasi cosa faccio mi dice che non posso![/TD]
    [/TR]
    [/TABLE]


  • User Attivo

    Quindi Aruba utilizza suExec per la gestione dei permessi. Questa mi mancava. Mi puoi dire quali permessi sono impostati su quei files?


  • User Attivo

    Fai te che io non so nemmeno cosa sia suExec....comunque i permessi su quei file ( che non mi fa modificare!!! ) sono 644...


  • User Attivo

    @franz1386 said:

    Fai te che io non so nemmeno cosa sia suExec....comunque i permessi su quei file ( che non mi fa modificare!!! ) sono 644...

    Non te li fa modificare? E l'errore restituito sarebbe? Vai nel pannello di Aruba, vedi che c'è un tasto per ripristinare i permessi di files e cartelle, cliccalo, fagli ripristinare i permessi e verifica se quei 644 si modificano in qualcosa d'altro.


  • User Attivo

    Mi restituiva sempre lo stesso errore qualsiasi cosa faccia: 553 Prohibited file name: 1526'r+r$.jpg
    Però la cosa dei permessi ha funzionato e adesso i permessi sono 755...ho riprovato a richiamare il file.php con il tuo codice e adesso non mi da più l'errore...però mi restituisce una pagina bianca ed i file non si cancellano...


  • User Attivo

    Probabile io abbia sbagliato la regex... preg_match non restituisce un booleano, mi sono sbagliato. Prova a sostituire l'algoritmo con il seguente. Ho cambiato anche la funzione di rinominazione e cancellazione, se non riesce a cancellare ora ti dà un messaggio.

    [php]
    <?php
    function contiene_caratteri_speciali($stringa) {
    if (preg_match('/['^£$%&()}{@#~?><>,|=_+¬-]/', $stringa)) return true;
    else return false;
    }
    function rimuovi_caratteri_speciali($stringa) {
    return preg_replace('/['^£$%&
    ()}{@#~?><>,|=_+¬-]/', '', $stringa);
    }
    $percorso = "/web/htdocs/w w w .comproorologi.org/home/"; // specifica qui il percorso della cartella che contiene i files
    $operazione = "c"; // c sta per cancella e r sta per rinomina
    if (!is_dir($percorso)) {
    echo "Non è una cartella";
    exit();
    }
    $dir = opendir($percorso);
    if (!$dir) {
    echo "Non posso accedere alla cartella, controlla i permessi";
    exit();
    }
    while (($file = readdir($dir)) !== FALSE) {
    if (!is_dir($file) && $file != ".." && $file != ".") {
    if (contiene_caratteri_speciali($file)) {
    if ($operazione == "c") {
    if (!unlink($percorso . $file)) echo "Impossibile cancellare il file $file<br>";
    else echo "$file cancellato.<br>";
    }
    if ($operazione == "r") {
    $nuovonome = rimuovi_caratteri_speciali($file);
    if (!rename($percorso . $file, $percorso . $nuovonome)) echo "Impossibile rinominare il file $file<br>";
    else echo "$file rinominato in $nuovonome<br>";
    }
    }
    }
    }
    closedir($dir);
    ?>
    [/php]


  • User Attivo

    Adesso ha funzionato!!!! sei un grande....non capisco perchè non mi funziona in un altro sito che ho ma in quello ha funzionato!!! grazie mille...