Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di gabar-el
    Registrato dal
    Jun 2006
    Messaggi
    2,222

    campo allegato non rimane scritto in session

    ciao, ho un form nel quale vorrei che i campi, una volta compilati, in caso di errore potessere rimanere scritti. Ho implementato una session, ma un campo allegato non mi rimane scritto e non riesco a capire perchè. questa la parte del form:
    Codice PHP:
    <div><label for="titolo">Titolo: </label><input type="text" name="titolo" id="titolo" value="<?=$_SESSION['titolo']?>" /></div>
                    <div><label for="descrizione">Descrizione: </label><textarea rows="15" cols="40" name="descrizione" id="descrizione" ><?=$_SESSION['descrizione']?></textarea></div>
                    <div><label for="allegato">Allegato (documento): </label><input type="hidden" name="MAX_FILE_SIZE" value="3000000" />
                    <input type="file" name="allegato" id="allegato" value="<?=$_SESSION['allegato']?>" /></div>
    questo il codice session:
    Codice PHP:
    if(isset($_POST['titolo']) && $_POST['titolo'] != ''){
    $_SESSION['titolo'] = $_POST['titolo'];
    }
    if(isset(
    $_POST['descrizione']) && $_POST['descrizione'] != ''){
    $_SESSION['descrizione'] = $_POST['descrizione'];
    }
    if(isset(
    $_POST['allegato']) && $_POST['allegato'] != ''){
    $_SESSION['allegato'] = $_POST['allegato'];
    }
    unset(
    $_SESSION); 
    grazie
    Si fanno sempre nuove scoperte

  2. #2
    Codice PHP:
    unset($_SESSION); 
    Praticamente dopo avere assegnato i valori correttamente, cancelli la variabile! Prova a toglierla!

  3. #3
    Utente di HTML.it L'avatar di gabar-el
    Registrato dal
    Jun 2006
    Messaggi
    2,222
    scusa era rimasta li quella riga da alcune prove, non cambia nulla..... allegato non rimane in sessione....

    a proposito di quel unset, dove andrebbe di preciso?
    grazie
    Si fanno sempre nuove scoperte

  4. #4
    Non è possibile assegnare l'attributo "value" in maniera diretta al tag <input type="file">, per motivi di sicurezza.
    Per quanto riguarda gli altri campi, ora funzionano correttamente?

  5. #5
    Utente di HTML.it L'avatar di gabar-el
    Registrato dal
    Jun 2006
    Messaggi
    2,222
    si gli altir campi funzionano, lo facevano anche prima, quindi come dovrei implementare il value sul type file? cosa intendi per "diretta"?
    grazie
    Si fanno sempre nuove scoperte

  6. #6
    Internet Explorer and Netscape non usano l'attributo VALUE come contenuto di default dell'area di INPUT.
    Forse l'unico browser che supporta questo metodo è Opera, però non ne ho la certezza, non avendo mai effettuato test in proposito.
    Io personalmente non uso l'attributo value nei miei script, ma, quando l'utente desidera caricare un file e genera un errore, lo script riempie tutti i campi corretti del form con il valore inserito dall'utente, a parte i campi "file" che devono essere selezionati di nuovo.
    Credo che non ci siano alternative, anche se gradirei essere smentito

  7. #7
    Utente di HTML.it L'avatar di gabar-el
    Registrato dal
    Jun 2006
    Messaggi
    2,222
    ho capito, quindi fondamentalmente non si può mantenere il capmpo di un file in session e l'utente lo deve compilare nuovamente....
    circa opera non credo, io lo uso come browser standard e i test a riguardo li sto facendo proprio con questo browser...
    ok, attendiamo conferma da qualcun'altro, intanto ti chiedo se sai come fare un unico if(_POST) dei vari if che ho fatto io in session. Mi è stato detto che si possono controllare direttamente tutti i valori del form e rimandarli in session così....
    Si fanno sempre nuove scoperte

  8. #8
    Un esempio può essere questo (anche se sarebbe solo una base di partenza):
    Codice PHP:
    foreach ($_POST as $k => $v) {
       if (
    $v != "")
          
    $_SESSION[$k] = $v;

    Può andare? Comunque il mio consiglio è di inviare i dati alla pagina stessa, in modo da inserire nel form i dati direttamente presenti in $_POST, senza passare per $_SESSION. Comunque tutto dipende da come è strutturato il tuo script.


  9. #9
    Utente di HTML.it L'avatar di gabar-el
    Registrato dal
    Jun 2006
    Messaggi
    2,222
    grazie per lo script, ma stavo cercando di capire proprio il funzionamento dell'if post dedicato al form, se non ho capito male si riusciva a fare qualcosa del genere....
    Si fanno sempre nuove scoperte

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.