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

    Di preciso, quando sfruttare gli attributi di "enctype"?

    Sto studiando HTML5 e vorrei capire meglio a cosa serva "enctype" nei form.
    Ho capito fino ad ora che application/x-www-form-urlencoded, viene usato per codificare i caratteri in un URL, con nome della variabile e valore in chiaro, con i segni "&" e "+", come anche nel link di questa discussione in alto probabilmente, e che sia quello di default.
    Poi ci sono multipart/form-data, per i dati inviati in binario o comunque non in ascii, e text/plain per (non ho capito la sua esclusività).

    Vi chiedo quindi:
    1) Farmi capire la differenza fra il valore di default e text/plain.
    2) Soprattutto, quando usare questi valori! Cioè, vorrei capire "perchè esistono". Il primo, quello di default, ci sono casi in cui va specificato lo stesso anche se è automatico? Il secondo, quando devo utilizzarlo? Quando è necessario, e quando è superfluo? E l'ultimo?
    Perchè sceglierne uno al posto dell'altro?


    Mi servirebbero proprio dei casi pratici di utilizzo di questi valori.

    Grazie mille!

  2. #2
    Ciao

    http://www.w3.org/TR/html5/forms.html#attr-fs-enctype

    qui ne parlano fattalità

    Comunque il default lo usi sempre.. Il multipart/form-data lo usi quando hai la necessità di caricare dei file passando attraverso un form html

    il text/plain semplicemente non fa nulla visto che gli attributi non vengono parsati..

    comunque puoi provare anche da solo mettendo una <form action="test.php"> e fare le prove di invio con i vari enctype.

    Su test.php
    Codice PHP:
    print_r$_POST );
    print_r$_GET ); 
    Questa volta, più che un voto.. è favoreggiamento.

  3. #3
    Quote Originariamente inviata da Al_katraz984 Visualizza il messaggio
    Ciao

    http://www.w3.org/TR/html5/forms.html#attr-fs-enctype

    qui ne parlano fattalità

    Comunque il default lo usi sempre.. Il multipart/form-data lo usi quando hai la necessità di caricare dei file passando attraverso un form html

    il text/plain semplicemente non fa nulla visto che gli attributi non vengono parsati..

    comunque puoi provare anche da solo mettendo una <form action="test.php"> e fare le prove di invio con i vari enctype.

    Su test.php
    Codice PHP:
    print_r$_POST );
    print_r$_GET ); 

    Ciao, non sto chiedendo "come traducano il testo" queste codifiche ma a cosa serva fare queste codifiche, cioè i casi in cui mi servano o siano obbligatori, che vantaggi mi danno, che svantaggio mi dà non metterle ed in che casi... Se no li uso a caso e vorrei capire il perchè di cosa faccio.
    Per esempio, per passare un file devo mettere obbligatoriamente "multipart/form-data"? Se non lo metto cosa succede? Oppure, perchè scegliere "text/plain" al posto di quello di default? E viceversa?

    Mi servono delle ipotesi pratiche di utilizzo...

  4. #4
    Quote Originariamente inviata da geo-agric Visualizza il messaggio
    Mi servono delle ipotesi pratiche di utilizzo...
    Le ipotesi pratiche di utilizzo te le ho già date, forse tu no le capisci.. e qui c'è solo che da studiare.

    Di default il parsing viene effettuato nella querystring inviata dal form.

    application/x-www-form-urlencoded effettua l'associazione dei dati.

    Questo significa verranno inviati i valori associati ai campi:
    Codice PHP:
    <form action="test.php">
     <
    input name="nome" value="Andrea">
    </
    form
    La pagina test.php riceve $_POST['name'] = "Andrea";


    text/plain non effettua nessuna associazione quindi teoricamente
    Codice PHP:
    <form enctype="text/plain" action="test.php">
     <
    input name="nome" value="Andrea">
    </
    form
    La pagina test.php riceve $_GET['nome'] = "Andrea";
    Qui è importante capire che se il form ha come method POST non verranno inviati dati perchè il parsing dei post per text/plain non esiste.


    multipart/form-data come già detto prima serve per fare l'upload di files binari. Se vuoi caricare un file sul server tramite client e non inserisci questo method nel form il file che vuoi caricare non verrà caricato. Esempi di upload ne trovi a bizzeffe.

    Quindi, quando usare questi enctype?
    Sempre -> application/x-www-form-urlencoded
    Per caricare file -> multipart/form-data

    se provavi a fare il test c'arrivavi anche tu spero.
    Questa volta, più che un voto.. è favoreggiamento.

  5. #5
    Quote Originariamente inviata da Al_katraz984 Visualizza il messaggio
    Le ipotesi pratiche di utilizzo te le ho già date, forse tu no le capisci.. e qui c'è solo che da studiare.

    Di default il parsing viene effettuato nella querystring inviata dal form.

    application/x-www-form-urlencoded effettua l'associazione dei dati.

    Questo significa verranno inviati i valori associati ai campi:
    Codice PHP:
    <form action="test.php">
     <
    input name="nome" value="Andrea">
    </
    form
    La pagina test.php riceve $_POST['name'] = "Andrea";


    text/plain non effettua nessuna associazione quindi teoricamente
    Codice PHP:
    <form enctype="text/plain" action="test.php">
     <
    input name="nome" value="Andrea">
    </
    form
    La pagina test.php riceve $_GET['nome'] = "Andrea";
    Qui è importante capire che se il form ha come method POST non verranno inviati dati perchè il parsing dei post per text/plain non esiste.


    multipart/form-data come già detto prima serve per fare l'upload di files binari. Se vuoi caricare un file sul server tramite client e non inserisci questo method nel form il file che vuoi caricare non verrà caricato. Esempi di upload ne trovi a bizzeffe.

    Quindi, quando usare questi enctype?
    Sempre -> application/x-www-form-urlencoded
    Per caricare file -> multipart/form-data

    se provavi a fare il test c'arrivavi anche tu spero.
    Ok, adesso che so che multipart/form-data è obbligatorio, chiudo per forza di cose i dubbi annessi.

    Con "parsing" intendi la codifica suppongo.
    Invece con text/plain dunque cosa faccio? A cosa mi serve inserire questa codifica?
    Che vantaggio ho, insomma, a vedere nell'url una roba codificata con il application/x-www-form-urlencoded o con text/plain?


    (P.S. Esistono i neofiti nel mondo e bisogna prenderne atto, così come gli imbecilli, tipo me. E poichè lo studio è cosa seria, specie quando commissionato dall'azienda in cui lavori e il libro che ti acquistano non è esaustivo, si dovrebbero evitare affronti personali di mezzo).

  6. #6
    Quote Originariamente inviata da geo-agric Visualizza il messaggio
    Ok, adesso che so che multipart/form-data è obbligatorio, chiudo per forza di cose i dubbi annessi.

    Con "parsing" intendi la codifica suppongo.
    Invece con text/plain dunque cosa faccio? A cosa mi serve inserire questa codifica?
    Che vantaggio ho, insomma, a vedere nell'url una roba codificata con il application/x-www-form-urlencoded o con text/plain?
    per parsing intento: "lettura e associazione dei dati del form"

    quando tu scrivi <input name="nome" value="Andrea" /> in questo caso il parsing effettua l'associazione 'nome="andrea"' che in base al "method" usato si traduce in $_POST['nome'] = "Andrea"; (tramite headers) o in $_GET['nome'] = "Andrea"; (tramite querystring)

    Con text/plain non fai niente semplicemente perchè PHP non gestisce text/plain
    Puoi usarlo ma a differenza di application/x-www-form-urlencoded non effettua l'encrypt quindi un valore, ad esempio "Casa mia", con text/plain rimane "Casa mia" (solo GET)

    Se usavi application/x-www-form-urlencoded "Casa mia" diventava "Casa+mia"

    Qui trovi la risposta ufficiale degli sviluppatori dove affermano in sostanza che PHP non gestisce il text/plain
    https://bugs.php.net/bug.php?id=33741

    (P.S. Esistono i neofiti nel mondo e bisogna prenderne atto, così come gli imbecilli, tipo me. E poichè lo studio è cosa seria, specie quando commissionato dall'azienda in cui lavori e il libro che ti acquistano non è esaustivo, si dovrebbero evitare affronti personali di mezzo).
    si lo so, anche io lo sono stato e capisco benissimo come ti senti, ma per quanto ti "richiami" velatamente alla fine la spiegazione te la do, quindi accetta i consigli per quello che sono e non come un affronto diretto a te. Con un po' di curiosità le risposte le trovavi anche da solo e io non ricevo soldi per risponderti quindi capisci anche il mio punto di vista senza polemica

    Siete cosi tanti qua dentro che se dovessi perdermi sul personale ogni volta avrei un fegato da 4kg
    Questa volta, più che un voto.. è favoreggiamento.

  7. #7
    Quote Originariamente inviata da Al_katraz984 Visualizza il messaggio
    per parsing intento: "lettura e associazione dei dati del form"

    quando tu scrivi <input name="nome" value="Andrea" /> in questo caso il parsing effettua l'associazione 'nome="andrea"' che in base al "method" usato si traduce in $_POST['nome'] = "Andrea"; (tramite headers) o in $_GET['nome'] = "Andrea"; (tramite querystring)

    Con text/plain non fai niente semplicemente perchè PHP non gestisce text/plain
    Puoi usarlo ma a differenza di application/x-www-form-urlencoded non effettua l'encrypt quindi un valore, ad esempio "Casa mia", con text/plain rimane "Casa mia" (solo GET)

    Se usavi application/x-www-form-urlencoded "Casa mia" diventava "Casa+mia"

    Qui trovi la risposta ufficiale degli sviluppatori dove affermano in sostanza che PHP non gestisce il text/plain
    https://bugs.php.net/bug.php?id=33741

    [I]

    si lo so, anche io lo sono stato e capisco benissimo come ti senti, ma per quanto ti "richiami" velatamente alla fine la spiegazione te la do, quindi accetta i consigli per quello che sono e non come un affronto diretto a te. Con un po' di curiosità le risposte le trovavi anche da solo e io non ricevo soldi per risponderti quindi capisci anche il mio punto di vista senza polemica

    Siete cosi tanti qua dentro che se dovessi perdermi sul personale ogni volta avrei un fegato da 4kg
    Ok, ho capito quello che hai detto e ci credo che con text/plain non faccio funzionare nulla con POST, grazie.
    Rimane il dubbio principale: Perchè esiste? A me interessa sapere cosa possa capitare per cui io abbia bisogno di formattare il testo con text/plain.
    Ho appena trovato questo link: http://webdesign.about.com/od/forms/...2699mailto.htm
    in cui spiega che sia adatto per l'invio di mail. Presumo dunque che usando GET, tutto il testo della mail compaia nell'url? E' giusto?
    Il fatto è che io non capisco cosa possa importare se nell'url si vedano o meno caratteri speciali codificati o no, perchè non ho mai programmato e non posso sapere quale sia l'utilità di ciò.

    Cioè se io codifico una mail con application/x-www-form-urlencoded insomma viene recapitata con tutti i caratteri speciali codificati e quindi illeggibili? O è solo per "vedere l'url in un certo modo"?


    Grazie per la tua disponibilità

  8. #8
    esiste perchè sebbene PHP non sia in grado di gestire dati in text/plain (non ne ha bisogno), ci sono altri servizi e linguaggi che lo fanno.. Un esempio è il body della mail come hai visto nel sito che hai postato tu. Probabilmente alcuni headers di invio mail funzionano con text/plain

    Ma questa nozione è troppo specifica, tu comune mortale ti affiderai ad una libreria per gestire l'invio delle mail (tipo swift mail o simile). E' un argomento abbastanza complesso da affrontare.
    Questa volta, più che un voto.. è favoreggiamento.

  9. #9
    Quote Originariamente inviata da Al_katraz984 Visualizza il messaggio
    esiste perchè sebbene PHP non sia in grado di gestire dati in text/plain (non ne ha bisogno), ci sono altri servizi e linguaggi che lo fanno.. Un esempio è il body della mail come hai visto nel sito che hai postato tu. Probabilmente alcuni headers di invio mail funzionano con text/plain

    Ma questa nozione è troppo specifica, tu comune mortale ti affiderai ad una libreria per gestire l'invio delle mail (tipo swift mail o simile). E' un argomento abbastanza complesso da affrontare.

    Bene ottimo.
    Hai risolto tutte le insicurezze che potevo avere in merito.

    Thank you very much.
    Denise

Tag per questa discussione

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.