• User

    Ciao,
    l'ho fatto, molto velocemente ma credo di averlo fatto bene..
    mi restituisce questo messaggio di errore:
    Parse error: syntax error, unexpected T_ELSE in D:\Inetpub\webs\comunedicanepinait\uploadit.php on line **24

    :bho:

    Stasera riprovo a rifarlo in diverse directory o a riverede il codice completo, X ora ho solo sotituito la stringa che mi hai suggerito e non va..

    Grazie a presto
    **


  • Super User

    Quell'errore non dipende dalla stringa che ti ho fatto sostituire io 🙂
    Forse hai messo un else in più o in meno 😉
    Ciao!


  • User

    Niente.. ho cambiato directory ma il messaggio di errore è lo stesso..

    Parse error: syntax error, unexpected T_ELSE in D:\Inetpub\webs\comunedicanepinait\armyupload\uploadit.php on line **24

    :arrabbiato:
    **


  • Super User

    Leggi sopra 😉


  • User

    Allora.. Naturalmente avevi ragione e il problema era di sintassi.. guardando alla riga 24 ho scoperto che c'era un ";" di troppo.. Ora lo script gira ma da come risultato "invio del file fallito"..
    C'è un if proprio quello che mi hai fatto modificare che contiene la destinazione del file uploadato.. sembra che quell'if non si verifichi e dia false come risultato e mandi all'else con il messaggio di errore "invio file fallito.." Perchè c'è bisogno di quell'if? non si potrebbe mettere solo la funzione che effettua l'upload direttamentente? e comunque peche l'if in questione da false? Dovrebbe essere tutto settato correttamente..
    Se vuoi dare un ulteriore sguardo di riposto entrambi i codici come sono pubblicati attualmente in seguito alle modifiche che abbiamo apportato insieme:

    FILE upload.html
    <HTML>
    <BODY>
    <HR>
    <FORM METHOD=POST ACTION="uploadit.php "ENCTYPE="multipart/form-data">
    <TABLE WIDTH="70%" BORDER="8" CELLSPACING="0">
    <TR><TD>
    <B>Inserisci il nome del file da inviare </B><INPUT TYPE=FILE NAME="uploadfile"><BR><BR>
    <INPUT TYPE="SUBMIT" VALUE="Invia le informazioni!">
    <INPUT TYPE="RESET" VALUE="Cancella!">
    </TR></TD>
    </TABLE>
    </FORM>
    </BODY>
    </HTML>

    FILE uploadit.php
    <?php
    echo "<PRE>";
    echo "nome del file locale creato dopo l'invio: $uploadfile\n";
    echo "nome originale del file remoto: $uploadfile_name\n";
    echo "dimensioni del file in byte: $uploadfile_size\n";
    echo "tipo di file: $uploadfile_type\n";
    echo "</PRE>";
    echo "<HR>";

    abbiamo veramente un file?

    if ( $uploadfile == "none" ) {
    echo "Non è stato inviato alcun file<BR>";
    echo "Ritorna al form per inviare il <A HREF="upload.html">file</A>";
    exit;
    }

    controlla innanzitutto le dimensioni del file

    se è meno di 3 KB

    if ($uploadfile_size < 60003072 ) {

    lo copia in una nuova posizione

    if (copy($uploadfile,"./delibere/".$uploadfile_name)){
    echo "Invio del file riuscito";

    cancella il file temporaneo

    unlink($uploadfile);
    } else {
    echo "Invio del file fallito";
    }
    } else {
    echo "Spiacente, il file da inviare non deve superare le dimensioni di 3 KB<BR>";
    }
    ?>
    Ritorna al form per inviare i <A HREF="upload.html">file</A>

    A presto


  • User

    Aiutooooo

    Non mi abbandonare proprio sul più bello! Please!...:?


  • User

    anche io ho questo problema..sto bestemmiando tutti i santi..una giornata persa a trovare una soluzione che nn è arrivata.


  • User

    Danko quì non rispondono più, comunque se può esserti d'aiuto io facendo numerosi tentativi ho scoperto che lo spazio web sul quale testavo gli script non permette a priori (per motivi di sicurezza) di impostare i permessi di scrittura sui file (il chmod777) quindi nessuno degli oltre 10 script e applicazioni che ho testato, compreso quello in questa discussione poteva funzionare.. inoltre alcuni provider dei servizi di hosting oltre a non dare tali permessi non permettono nemmeno il corretto funzionamento di alcune funzioni del php come l'invio di email direttamente da proprio sito..

    Ho risolto (almeno provvisoriamente) aprendo uno spazio free e testando li sopra gli script.. che alla fine.. e dico alla fine con molta pazienza hanno funzionato..

    Prima ho provato su http://utenti.lycos.it perchè avevo già tale spazio aperto.. Poi però sono passato ad altervista perche su lycos ci sono pubblicità su pubblicità che invadono a forza le pagine del proprio spazio!

    A te..

    Spero possa esserti d'aiuto.

    In aternativa puoi contattare il tuo provider e chiedere se è possibile avere i permessi di scrittura sulle directory del proprio spazio. Dovrebbe trattarsi del server su cui è ospitato il tuo sito, da quanto ho letto in giro se sei su server windows hai questo problema e per risolverlo il provider dovrebbe spostarti su un server UNIX/LINUX.. Non prendere queste info alla lettera informati!

    Ciao 😉


  • User

    bhe non è detto che se non ti fanno impostare i permessi a 777 non puoi caricare ugualmente i tuoi file!!! dipende dalla configurazione del server.

    con permessi 777 puoi avere problemi di sicurezza!!!

    ad esempio nel nostro servizio di hosting gratuito
    ti facciamo settare i permessi a 777 ma non sono assolutamente necessari!!!

    basterebbe un 700 o 644 l'importante che il tuo utente abbia permessi di scrittura.


  • User

    E come si fa a dare i permessi di scrittura ad un solo utente?

    Prendiamo poi l'esempio di una news.. l'utente inserirsce una news.. la pagina che contiene le news deve essere scritta ed aggiornata.. Se non si danno permessi 777 a tutta la directory che contiene tale file che va ad aggiurnarsi automaticamente in seguito alla compilazione del form lo script mostra che il messaggio è stato correttamente inserito ma nell'archivio news e nella pagina che contiene tutte le news non compare nada! Il file non viene scritto a meno che non si imposti il 777.. ho provato per curiosità con altri metodi 766 ecc ma non funzionava..

    Perchè proprio 700 o 644? Cosa cambia?

    E già che ci siamo vorrei sapere se qualcuno sa spiegarlo in breve e con certezza, quali rischi si corrono a lasciare una directory a 777?


  • User

    ma io sto provando lo script in locale e nn funziona


  • User

    dipende dalla configurazione del tuo server!!!

    perchè sicuramente apache gira come utente www-data e che quindi quando crei un file via php o lo carichi via upload lui ti imposta owner www-data

    ma la cartella dove stai creando o spostando il file ha i permessi del tuo utente e quindi apache non può scriverci tranne se imposti permessi adeguati per l'utente public oppure se il tuo utente fa parte dello stesso gruppo di apache basterà mettere i permessi di scrittura solo per il gruppo e non per public!


  • User

    Come si fa a rendere un utente membro dello stesso gruppo di apache? io non lavor in remoto, carico direttamente i file sul server per testarli....

    Boh...

    Non ci sto capendo più di tanto.. So solo che se tocco i permessi chmod non funziona piu niente..

    Mah..


  • User

    IL 700 FUNZIONA!

    LI AVEVO PROVATI TUTTI MA PENSO CHE QUESTO MI ERA SFUGGITO.. ORA LO SCRIPT FUNZIONA ANCHE CONIL CHMOD700

    CHE COSA SAREBBE CAMBIATO? Posso stare tranquillo riguardo al discorso sicurezza con tale impostazione del chmod?


  • User

    RETTIFICO: Il chmod che mi funziona attualmente è il 770.. non 777


  • User

    e neanche 700.. funziona solo con 777 ma non è sicuro (come mi dite) e ora ho scoperto che funzia anche con il 770


  • User Attivo

    Ciao
    dovrebbe bastarti anche il 666
    ovvero possibilità di lettura/scrittura da parte di tutti e esecuzione bloccata.

    Questo è il chmod classico dei database

    nel tuo caso devi solo leggere e scrivere


  • User Attivo

    Per una piccola spiegazione dei chmod ti riporto questa tabellina:

    Permessi Propietario

    lettura 4=si 0=no
    scrittura 2=si 0=no
    esecuzione 1=si 0=no

    Il totale fa la prima cifra

    Permessi gruppo

    lettura 4=si 0=no
    scrittura 2=si 0=no
    esecuzione 1=si 0=no

    Il totale fa la seconda cifra

    Permessi Utente

    lettura 4=si 0=no
    scrittura 2=si 0=no
    esecuzione 1=si 0=no

    Il totale fa la terza cifra

    Spero che sia chiaro

    Ciao


  • User

    si ma in ogni caso potrebbero ugualmente verificarsi problemi di sicurezza!!!

    molti provider neanche considerano questo fattore!!!

    se gli utenti hanno lo stesso gruppo e non è attivo ne safemode e ne open base dir potrei tranquillamente leggere i file degli altri utenti del server!! con tutte le conseguenze possibili!!

    🙂
    ma solitamente il pensiero che hanno è :" Basta che funziona chi se ne frega della sicurezza 🙂 "


  • User Attivo

    A parte i problemi di sicurezza che tanto non siamo mai sicuri e dobbiamo avere il bK del siti e del db sempre a portata di mano, ci può essere un'altro motivo per cui non vedi l'upload.

    In certi ftp devi sganciarti dal server e poi riagganciarti e lo vedi altrimenti sembra che non ti abbia caricato niente.

    Parlo per esperienze personali

    Ciao