Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    funzione copy() in foreach

    Ciao ragazzi ho un problema con l'itrerazione della funzione copy con un foreach:
    Questo form invia delle informazioni alla pagina col foreach:

    Codice PHP:
    <form action="nuovanotiziasubmit.php" method="post">
                <
    input type="hidden" name="unita[]" />
                
    Titolo <input type="text" name="titolo[]" />

                
    Descrizione <input type="text" name="descrizione[]" />

                
    Immagine <input type="file" name="immagine[]" />

                
    Alt <input type="text" name="alt[]" />

                
    Href <input type="text" name="href[]" />

                <
    input type="submit" value="Invio" />

                <
    input type="hidden" name="unita[]" />
                
    Titolo <input type="text" name="titolo[]" />

                
    Descrizione <input type="text" name="descrizione[]" />

                
    Immagine <input type="file" name="immagine[]" />

                
    Alt <input type="text" name="alt[]" />

                
    Href <input type="text" name="href[]" />

                <
    input type="submit" value="Invio" />

                <
    input type="hidden" name="unita[]" />
                
    Titolo <input type="text" name="titolo[]" />

                
    Descrizione <input type="text" name="descrizione[]" />

                
    Immagine <input type="file" name="immagine[]" />

                
    Alt <input type="text" name="alt[]" />

                
    Href <input type="text" name="href[]" />

                <
    input type="submit" value="Invio" />
            </
    form
    Come vedete ci sono delle parentesi graffe nel name delle input, questo fa capire al php della pagina successiva che si tratta di un'array (metodo già sperimentato ma senza la funzione dell'upload file)

    Questo è il php della pagina successiva

    Codice PHP:
    $unit $_POST['unita'];
    $titolo $_POST['titolo'];
    $descrizione $_POST['descrizione'];
    $immagine $_FILES['immagine'];
    $alt $_POST['alt'];
    $href $_POST['href'];

    echo 
    $immagine;

    foreach (
    $_POST['unita'] as $key => $value)
    {

    $path_imgup "../img/inevidenza/";
    $path_img "img/inevidenza/";

    copy($immagine[$key],  $path_imgup $immagine[$key]);

    $percorsonomeimg $path_img $immagine[$key];

        echo 
    "unità " $value '
    '
    ;
        echo 
    "Titolo " $titolo[$key] . '
    '
    ;
        echo 
    "Descrizione " $descrizione[$key] . '
    '
    ;
        echo 
    "Immagine " $percorsonomeimg '
    '
    ;
        echo 
    "Alt " $alt[$key] . '
    '
    ;
        echo 
    "Href " $href[$key] . '


    '

    ho provato con immagine[$value] invece di [$key] il fatto è che non ho mai gestito questa variabile in un foreach. la copia del file sul server non avviene ne tantomeno la stampa del percorso dell'immagine (le stampe sono ovviamente prove per vedere se le variabili sono piene, poii ci andrà l'insert)

    Qualche consiglio?
    Grazie a tutti

  2. #2
    NON usare copy per gestire gli upload. USA move_uploaded_file().

    Per quanto riguarda il tuo problema specifico, studiati questo codice:
    Codice PHP:
    <form method="post">
    <input type="hidden" name="value[10]" value="1" />
    <input type="hidden" name="value[20]" value="2" />
    <input type="hidden" name="value[30]" value="3" />
    <input type="submit" />
    </form>
    <pre><?php print_r($_POST); ?></pre>

  3. #3
    Ciao filippo. Grazie intanto per la risposta.

    Penso sia stato proprio tu l'altra volta a consigliarmi il xxx[] nei form per iterare le variabili.
    Il fatto qui è che pass correttamente la variabile $_FILE alla pagina successiva ma in questa non ottengo alcuna risposta dagli script di debug (come hai consigliato tu proverò ora ad usare l'altra funzione, vediamo cosa succede) ma quel che rimane strano è che non milegge neanche il nome del file...


    Edit:
    neanche con move_uploaded_file () funziona l'upload del file....
    mi viene un dubbio.... che un $_FILE non si possa iterare?

    qual'era quella funzione che restituiva il contenuto di una variabile? (per fare delle prove)

  4. #4
    Ciao,

    per prima cosa, per poter inviare files, devi aggiungere
    codice:
    enctype="multipart/form-data"
    agli attributi del form.

    Poi i files li trovi dentro $_FILES e non dentro $_POST
    L'array $_FILES, nel tuo caso, avrà questa struttura:

    codice:
    $_FILES['immagine']['name'][0]
    $_FILES['immagine']['name'][1]
    $_FILES['immagine']['name'][2]
    
    $_FILES['immagine']['type'][0]
    $_FILES['immagine']['type'][1]
    $_FILES['immagine']['type'][2]
    
    $_FILES['immagine']['tmp_name'][0]   
    $_FILES['immagine']['tmp_name'][1]
    $_FILES['immagine']['tmp_name'][2]
    (questi sono i file temporanei da spostare con move_uploaded_file())
    
    $_FILES['immagine']['error'][0]
    $_FILES['immagine']['error'][1]
    $_FILES['immagine']['error'][2]
    
    $_FILES['immagine']['size'][0]
    $_FILES['immagine']['size'][1]
    $_FILES['immagine']['size'][2]
    Alessandro
    Full Stack Developer presso Advice Lab
    Bonus Bitcoin
    Moon Bitcoin

  5. #5
    Ciao ho fatto queste prove

    if(!isset($_FILES)) {
    echo "C'è generico" . '
    ' . '
    ';
    }

    if($_FILES['immagine']){
    echo "C'è" . '
    ' . '
    ';
    }else{
    echo "Non c'è" . '
    ' . '
    ';
    }


    e va sempre sull'else quindi non riconosce proprio la variabile dalla pagina precedente eppure il form è corretto:

    Immagine <input type="file" name="immagine[]" />

  6. #6
    Ciao,
    hai corretto
    Codice PHP:
    <form action="nuovanotiziasubmit.php" method="post"
    con
    Codice PHP:
    <form action="nuovanotiziasubmit.php" method="post" enctype="multipart/form-data"
    ?
    Full Stack Developer presso Advice Lab
    Bonus Bitcoin
    Moon Bitcoin

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.