Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    133

    form con testo salvabile su pc

    ciao è possibile inserire in una pagina un form personalizzabile dall'utente che abbia alcuni elementi di testo fissi e che poi alla fine della compilazione possa essere salvato dall'utente sul suo pc con l'estensione .html o .txt.
    vorrei farlo ma solo se poi non comporti l'accesso a virus o spam o altro malefico vario!

  2. #2
    certo che è possibile, ed è anche possibile che venga inserito uno script malefico, ma ovviamente puoi evitarlo controllando ciò che ti inserisce l'utente prima di salvarlo.

  3. #3
    Utente di HTML.it L'avatar di jcsnake
    Registrato dal
    Jun 2010
    Messaggi
    629
    Ciao, si certo che è possibile, dai un'occhiata qui

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    133
    grazie millle ma non è che mi sia molto chiaro, la mia conoscenza del php è mollto limitata, nello script linkato non vedo neanche quale sia il testo fisso nel form e poi io non voglio che il file ottenuto sia salvabile sul mio spazio ma sul pc dell'utente stesso che ha riempito il form.
    avete altri esempi o opinioni... in breve vi va di approfondire l'argomento?

  5. #5
    volentieri.
    Inizia a scrivere qualcosa, così vediamo dove hai problemi.

  6. #6
    Utente di HTML.it L'avatar di jcsnake
    Registrato dal
    Jun 2010
    Messaggi
    629
    io non voglio che il file ottenuto sia salvabile sul mio spazio ma sul pc dell'utente stesso che ha riempito il form
    per poter fare questo prima devi salvarlo nel tuo spazio web e poi farlo scaricare all'utente, non c'è altra soluzione.

    nello script linkato non vedo neanche quale sia il testo fisso nel form
    Certo che non c'è quello è un semplice esempio base...se tu vuoi un testo fisso lo aggiungerai alla stringa da passare alla funzione fwrite($file, $tua_stringa); dove, per l'appunto, $tua_stringa sarà l'insieme di quello che ha scritto l'utente e quello che vuoi che sia fisso...

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    133
    aggiungo qualche particolare ...il testo fisso deve essere quello di una pagina base html cioè:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Untitled Document</title>
    </head>

    <body>
    </body>
    </html>

    più che altro serve a me per avere a portata di mano il codice base su una pagina in rete, poi se anche dei visitatori vogliono utilizarlo...
    vado a guardare meglio il codice del link

  8. #8
    Allora, iniziamo un pò.
    Ometterò la parte HTML riguardante il form.

    Codice PHP:
    <?php

    /**
     * Qui ci vanno tutti i controlli
     * delle variabili che ricevi dal form.
     */

    $testoFisso  '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';
    $testoFisso .= '<html xmlns="http://www.w3.org/1999/xhtml">';
    $testoFisso .= '<head>';
    $testoFisso .= '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';
    $testoFisso .= '<title>Documento senza titolo</title>';
    $testoFisso .= '</head>';
    $testoFisso .= '<body>';

    $testoFissoFooter  '</body>';
    $testoFissoFooter .= '</html>';


    /**
     * Qui crei un nuovo file .txt o .html.
     * Lo apri in scrittura, scrivi il contenuto della textarea + il testo fisso
     * Salvi il file.
     */
    ?>
    L'ultima parte riguardante l'apertura del file, scrittura e chiusura, prova a farla seguendo il manuale di PHP.

    Nello specifico devi studiare le funzioni
    fopen()
    fwrite()
    fclose()

    I controlli iniziali invece sono semplici IF.
    Se hai problemi chiedi pure.

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    133
    grazie sir ci metterò un po' per studiare gli argomenti che mi hai indicato attualmente brancolo nel buio in fatto di php mi ci vorrà tempo per mettere la spunta di [risolto].
    sai mica se c'è gia qualcosa di pronto che faccia al caso mio, non è tanto la mancanza di voglia di studiare quanto invece la mia incapacità che so essere uno scoglio.
    anche se ho i miei dubbi sull'impresa ti dico un GRAZIE sentito!

  10. #10
    ti preparo qualcosa dopo se riesco.

    EDIT:

    Codice PHP:
    <?php 
    /**
     * Non faccio nessun controllo sul valore della textarea.
     * Presumo che contenga HTML quindi non elimino nessun tag e non aggiungo nessun 
    .
     * Mi limito ad eliminare spazi superflui all'inizio e alla fine del valore di $_POST['textarea'].
     * 
     * N.B. 'textarea' deve essere sostituito con il name della tua textarea. Ad esempio:
     *
     * <form method="POST" action="questaPagina.php">
     *     <label for="inputHTMLutente">Inserisci il tuo HTML</label>
     *       <textarea name="inputHTMLutente" id="inputHTMLutente" rows="40" cols="40"></textarea>
     *       


     *       <input type="submit" name="submit" id="submit" value="Invia" />
     *
     * </form>
     *
     * In questo caso $_POST['textarea'] viene sostituito con $_POST['inputHTMLutente'] poichè il nome della textarea nel form
     * è inputHTMLutente.
     */
    $testoTextarea trim($_POST['textarea']);

    /**
     * Imposto il testo fisso da PHP.
     * Non lo faccio da HTML perchè l'utente potrebbe cancellarlo.
     */
    $testoFisso  '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'
    $testoFisso .= '<html xmlns="http://www.w3.org/1999/xhtml">'
    $testoFisso .= '<head>'
    $testoFisso .= '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />'
    $testoFisso .= '<title>Documento senza titolo</title>'
    $testoFisso .= '</head>'
    $testoFisso .= '<body>'

    $testoFissoFooter  '</body>'
    $testoFissoFooter .= '</html>'

    /**
     * Imposto il testo completo che dovrà essere inserito nel file.
     */
    $testoCompleto $testoFisso $testoTextarea $testoFissoFooter;

    /**
     * Apro il file in scrittura. Se non esiste tento di crearlo.
     * N.B. Se il file tuoFile.html esiste già, il suo contenuto verrà sovrascritto
     * Se non vuoi che accada, cambia 'w' in 'a'.
     * In questo modo, il nuovo contenuto verrà aggiunto alla fine del file.
     */
    $fp fopen('tuoFile.html''w');


    /**
     * Questo metodo invece fa si che ogni volta che viene eseguito questo script, viene creato un nuovo file.
     * Questo perchè la funzione time() genera un nuovo valore ogni secondo.
     * Elimina questo commento se vuoi utilizzarlo e cancella la riga $fp = fopen('tuoFile.html', 'w');
     *
     * $fp = fopen(time() . '.html', 'w');
     */

    //Se c'è un errore durante l'apertura/creazione, termino lo script con un messaggio di errore.
    if(!$fp) {
        die(
    'Impossibile aprire il file.');    
    }

    //Scrivo all'interno del file il testoFisso + il valore della textarea
    if(fwrite($fp$testoCompleto) === false) {
        die(
    'Impossibile scrivere sul file.');
    }

    //Questa riga puoi eliminarla se non vuoi che venga stampato questo messaggio.
    echo 'Scrittura eseguita correttamente.';

    //Chiudo il file
    fclose($fp);
    ?>
    Se non ti è chiaro qualcosa chiedi pure.
    Non l'ho testato, quindi fammi sapere se ti da problemi.

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.