Visualizzazione risultati 1 fino 18 di 18

Discussione: [php] memorizzare in file quanto scritto in form html

  1. #1
    Guest

    Predefinito [php] memorizzare in file quanto scritto in form html

    Salve ragazzi, mi servirebbe uno script php-html che facesse questo lavoro:

    Da dei form html inviare ad un file php quello che sta scritto e il file php lo scrivesse sotto quello che sta scritto in un file .txt

    Io avevo trovato questo:
    File html:
    Codice:
    <html>
    <head>
    <title>Ciao</title>
    </head>
    <body>
    <form action="result.php" method="post">
    Scrivi il tuo nome: <input type="text" size="30" name="nome">
    <br>Scrivi il tuo cognome: <input type="text" size="30" name="cognome">
    <br>Scrivi il tuo indirizzo e-mail: <input type="text" size="30" name="email">
    <br><input type="submit" value="Invia"></form>
    </body>
    </html>
    File php:
    Codice:
    <?php
    $nome = $_POST['nome'];
    $cognome = $_POST['cognome'];
    $email = $_POST['email'];
    $fp = fopen("tuo_file.txt","w"); //apro il file dove salvare i dati
    fwrite($fp,"Nome: {$nome} Cognome: {$cognome} Email: {$email}"); //scrivo i dati ricavati
    fclose($fp); //chiudo il file
    ?>
    Ora ci sono due problemi che non sono riuscito a risolvere...
    Problema A:
    Quando una persona compila il form e lo invia lo script php cancella tutto quello che sta scritto nel file .txt e lo sovrascrive...
    Problema B:
    Vorrei mettere dopo che lo script php invia il form una pagina di avvenuto invio del form e se questa non è avvenuta, una pagina in cui si dice che non è avvenuto l'invio...
    Ho provato con il sistema "False-true" ma non ci sono riuscito, ora cosa posso fare?? Potete aiutarmi anche solo per il primo problema? (Problema A)

    GRAZIE IN ANTICIPO!

  2. #2
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Prova a sostituire il tuo codice PHP con questo:
    Codice PHP:
    <?php
    $nome
    = $_POST['nome'];
    $cognome = $_POST['cognome'];
    $email = $_POST['email'];
    $fp = fopen("tuo_file.txt","a+"); //apro il file dove salvare i dati
    if(fwrite($fp,"Nome: {$nome} Cognome: {$cognome} Email: {$email}")){
    echo
    "SCRITTURA RIUSCITA";
    }else{
    echo
    "SCRITTURA NON RIUSCITA";
    }
    fclose($fp); //chiudo il file
    ?>
    Il mio codice oltre ad avvertirti se la scrittura è riuscita o meno al posto di sovrascrivere i dati li scrive alla fine. Se invece vuoi che vengano scritte su righe differenti (quindi il tuo form, 1° riga, il mio form 2° riga...ecc..in pratica va a capo ogni volta) basta sostituire:
    Codice PHP:
    if(fwrite($fp,"Nome: {$nome} Cognome: {$cognome} Email: {$email}")){
    Con:
    Codice PHP:
    if(fwrite($fp,"Nome: {$nome} Cognome: {$cognome} Email: {$email}\r\n")){
    Apprezzi l'aiuto? Offrimi un caffè!

  3. #3
    Guest

    Predefinito

    Ora provo! Ti faccio sapere!

    EDIt: va benissimo grazie!!

    Ma se volessi fare che il primo campo lo legge da 1 file che sta nel computer come faccio?
    Ultima modifica di tlsgaming : 02-07-2009 alle ore 22.36.27

  4. #4
    Guest

    Predefinito

    Citazione Originalmente inviato da tlsgaming Visualizza messaggio
    Ma se volessi fare che il primo campo lo legge da 1 file che sta nel computer come faccio?
    Crei nel form un campo per l'upload del file, lo carichi sul tuo server e poi lo leggi tramite PHP, ricavando il valore del campo che ti interessa. Quando ti assicuri che non ti serve più lo elimini.

  5. #5
    Guest

    Predefinito

    fa niente :D

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,253

    Predefinito

    Citazione Originalmente inviato da tlsgaming Visualizza messaggio
    Ma se volessi fare che il primo campo lo legge da 1 file che sta nel computer come faccio?
    Cioè? Cosa intendi per computer?

    1->Il tuo spazio
    2->Il tuo PC di casa
    3->Il PC del visitatore del tuo sito

    Risoluzioni:

    1-->Apri il fle con fopen come hai fatto prima, ma invece di scrivere con fwrite(), potresti leggere con ad esempio fgets() o file()...

    2-->Devi avere il tuo PC connessio in internet (tipo server), ma non credo che vuoi fare questo

    3-->La soluzione detta da camba: un upload ovvero fai caricare il file dall'utente, ma poi ritorni al punto 1

    Ciao!

  7. #7
    Guest

    Predefinito

    già è complicato... ma giusto per andare un secondo offtopic, dove devo chiedere un supporto vb se si può chiedere?
    Comunque praticamente mi servirebbe la soluzione 3... che poi torna alla soluzione 1 che poi dovrebbe cancellare il file.
    Poi ho letto la tua discussione, ti spiego un attimo cosa devo fare:
    Ho un programma VB che mette un file con un codice dentro (cosidetto GUID) che lo legge il programma e chiunque lo trovi... ma mi servirebbe che lo script uploddasse il file lo leggesse e poi lo cancellasse, è possibile senza che l'utente veda tutto questo?
    Ultima modifica di tlsgaming : 04-07-2009 alle ore 12.41.03

  8. #8
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,253

    Predefinito

    Per caricare il file, usa il link che ti ho dato, e se non capisci qualcosa dillo.
    Poi, una volta caricato, te lo trovi nella cartella che vuoi te (impostando $dir).

    Quindi lo apri con la fopen ecc ecc.

    Per eliminarlo, basta che usi la funzione unlink("file");

    Ciao!

  9. #9
    Guest

    Predefinito

    domanda: ma per upparlo e cancellarlo ci mette molto?

  10. #10
    Guest

    Predefinito

    Tutto dipende dalle dimensioni del file, ricorda che non puoi "uppare" file superiori a 10 mega, e devi impostare il limite tramite il file .htaccess modificabile dal tuo pannello di controllo.

  11. #11
    Guest

    Predefinito

    allora io creo una pagina (GUID.php) con questo codice:
    Codice:
    <?php
        $dir = 'dir/';
        $tName = $_FILES['userfile']['tmp_name'];
        $name = $_FILES['userfile']['name'];
        if (move_uploaded_file($tName, $dir . $name)) 
            echo "Inviato";
        else
            echo "NO";
    ?>
    e la pagina di upload:
    Codice:
    <form enctype="multipart/form-data" action="file.php" method="POST">
    <input type="hidden" name="MAX_FILE_SIZE" value="30000">
    File: <input name="userfile" type="file">
    <input type="submit" value="Invia">
    poi xò ad esempio il fopen lo devo inserire dove?? e se poi volessi far uploddare un file ke io so dove sta? (ad esempio nella cartella C:\lol il file 123.txt) dove c'è scritto prova123, e lo volessi far uscire in una pagina senza che lutente deve uploddarlo da selezionandolo?

    Vi spiego il perché:
    Ho un programma che da un codice automatico, e nel form di prima si deve scrivere, solo, visto che molti degli utenti non sapranno cosa sarà volevo farlo uscire automaticamente in una pagina, questo codice si trova in un file di testo (ad esempio 123.txt nella cartella C:\lol). Come faccio praticamente a far uscire fuori il codice in una pagina senza nient'altro o almeno con su scritto "IL TUO CODICE é "PINCOPALLINO"???

    Io volevo provare come avete detto voi:
    aprire il file uploddato con fopen() e poi leggerlo con file() e poi cancellarlo.
    Oppure qualcosa di + semplice: dopo che uno clicca su un link "qui il tuo codice" che porta ad una pagina aperta in nuova finestra esce aperto tramite l'upload automatico e il fopen() il codice anche in .txt e dopo aver chiuso la finestra, semmai con un codice javascript cancellare il file...

    Se non avete capito rispiego

  12. #12
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,253

    Predefinito

    Non ho capito tanto, comunque:

    La fopen la dovrai inserire DOPO aver "uploadato" il file, no? E quindi nella pagina GUID.php (dopo, appunto, il caricamento del file).

    Non so come si fa (e se si può) far caricare "automaticamente" un file (se è questo che vuoi). Al massimo, (credo, ma non son capace) puoi impostare una directory "di default", nel senso che appena uno clicca su "carica file", gli si apre la finestra con selezionata una cartella cha vuoi (ripeto, non so se si può fare e io non son capace)

    Dell'ultima frase, non ci ho capito tanto, comunque non puoi cancellare un file con JS, proprio perché questo viene eseguito sul computer del tuo visitatore; invece il file risiede sul server e quindi dovrai usare PHP {in particolare, come già detto, con la funzione unlink()}

    Ciao!
    Ultima modifica di alemoppo : 05-07-2009 alle ore 01.40.34

  13. #13
    Guest

    Predefinito

    vabbè lascio stare ci vuole troppo tempo e ho solo un paio di minuti al giorno :p

    Comunque sai dove chiedere supporto per Visual Basic? anche esterno ad altervista...

  14. #14
    Guest

    Predefinito

    vabbè lascio stare ci vuole troppo tempo e ho solo un paio di minuti al giorno :p

    Comunque sai dove chiedere supporto per Visual Basic? anche esterno ad altervista...

  15. #15
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,253

    Predefinito

    No.

    Comunque ti ricordo che su AV non si possono scrivere 2 post uno dietro l'altro (consecutivi )

    Ciao!

  16. #16
    Guest

    Predefinito

    opss doppio post non è colpa miaaa server buggatooo :D scusa non l'ho fatto apposta forse per sbaglio ho inviato 2 volte il messaggio ma non l'ho scritto 2 volte...

  17. #17
    Guest

    Predefinito

    ragazzi ho trovato un errore nel 1° script... (quello del commento). A me serve che se uno scrive il 1° campo e lo registra, poi non può più scriverlo, Si può fare?

  18. #18
    Guest

    Predefinito

    up
    Perfavore ditemi se è possibile!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •