Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Upload

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317

    Upload

    Codice PHP:
    # qwe.php

            <form method="post" action="qwe.php" enctype="multipart/form-data">
                <input type="hidden" name="action" value="upload" />
                <label>Foto 1 :</label>
                <input type="file" name="file1" />
                <input type="submit" value="Carica online" />
                
            </form>
    [b]
    <?php

    $image 
    $_FILES['file1'];

    switch(
    $image['error'])
    {
        case 
    UPLOAD_ERR_PARTIAL:
        {
            print 
    'Errore in fase di caricamento.';
        }
        break;
        
        case 
    UPLOAD_ERR_OK:
        {
            if (
    $image['size']<50000)
            {
                
    move_uploaded_file($image['tmp_name'], 'upload/'.$image['name']);
            }
            else
                print 
    'Troppo grande';
        }
    }

    ?>
    cosa sbaglio?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    up

  3. #3
    purtroppo alla scuola di programmatori php insieme all'attestato non davano anche una sfera magica se magari dici qual'è il problema che hai possiamo provare a darti una mano
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    eh non effettua l'upload e non da errori, quindi non so cosa dire...

  5. #5
    codice:
    <html>
    	<body>
            <form method="post" action="?" enctype="multipart/form-data">
                <input type="hidden" name="action" value="upload" />
                <label>Foto 1 :</label>
                <input type="file" name="file1" />
                <input type="submit" value="Carica online" />    
            </form>
    
    <?php
    
    // Verifica se è stata effettuata la richiesta
    if (isset($_FILES['file1']) === true)
    {
    	// Verifica se il file è stato uploadato
    	if (is_uploaded_file($_FILES['file1']['tmp_name']) === true)
    	{
    		// Controlla la dimensione del file
    	    if ($_FILES['file1']['size'] <= 50 * 1024 /* Ovvero 50 Kbyte */)
    	    {
    	    	// Prova a spostare il file nel percorso di destinazione
    	        if (move_uploaded_file($_FILES['file1']['tmp_name'], 'upload/' . $_FILES['file1']['name']))
    	        {
    		        echo 'File caricato correttamente!';
    			}
    			else
    			{
    				echo 'Errore durante la copia del file uploadato!';
    			}
    	    }
    	    else
    	    {
    	        echo 'Troppo grande!';
    		}
    	}
    	else
    	{
    		echo 'Si è verificato un errore durante l\'upload!';
    	}
    }
    
    ?>
    	</body>
    </html>
    beh, a parte un pò di graffe messe a caso (quelle del case non servono) è probabile che tu stia lavorando con i warning, ed i notice, spenti e quindi non vedevi gli errori

    Ovviamente ti sconsiglio di usare questo script che ti ho sistemato perché è ESTRAMENTE facile effettuare attacchi tramite esso!!!

    Non viene effettuato nessun check REALE sul contenuto, se uploadassi dei file .php me li ritroverei belli belli nella cartella upload. Quindi direi che come prima cosa è fondamentale controllare l'estensione del file, ma, oltre questo, direi che è ancora meglio verificare pure il magic header del file (i primi byte) che ad esempio per le JPEG corrispondono a JFIF\0 (ovvero 5 byte dove l'ultimo è il carattere NULL ergo quello con il codice ASCII zero) o per le GIF è presente all'inizio GIF87a o GIF89a (se non ricordo male)

    In aggiunta a questo ci sarebbe da verificare se all'intero del file è presente <? o <?php in modo da controllare se si sta tentando l'inclusione di codice tramite un'immagine
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    si ma... perchè il mio non funzionava? xD

  7. #7
    non ho detto che dava problemi perché non li dava, lo script funziona se sono presenti le cartelle e tutto, anche se non gestisce i notice correttamente e non fa controlli aggiuntivi (motivo per il quale ho rifatto lo script)

    ripeto ... è probabile che tu stia lavorando con i warning/notice spenti e quindi non vedi eventuali errori che da lo script

    lancia un phpinfo e controlla il valore di error_reporting e display_error
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    ecco i valori:
    error_reporting 6143 6143
    display_errors On On

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.