Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    163

    Semplice sript file .txt come DB

    Il mio problema è questo.
    Inserisco in una casella di testo di un form una stringa che dopo andrò a scrivere in un file di testo.
    Il mio problema e che non riesco a non far eseguire il codice php fino a quando non è stato premuto il tasto invio.
    Lo script che sotto vi ho riportato funziona ma comunica sempre un errore.
    Potete darmi una mano?
    Grazie a tutti.


    <!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>Documento senza titolo</title>
    </head>
    <body>
    <table>inizio tabella form inserimento dati
    <form action="" method="post">
    <tr><td>
    Inserisci messaggio
    </td></tr>
    <tr><td>
    <input type="text" name="var1" size=25 maxlength=80>var1 la scriveremo nel file .txt
    Cliccando invia ti ricolleghi a questa pagina e memorizzi il messaggio nel file .txt
    <input type="submit" value="Invia">
    </form>
    </table>
    </body>
    <? //inizio codice PHP
    $var1=$_POST['var1'];//recupero la variabile globale var1 di tipo POST
    if ($var1!=null){//Attiviamo PHP solo se il form è stato cliccato
    echo "Risultato del file di testo:
    ";
    $var=fopen("cocco.txt","a+");//apro il file .txt (modalità lettura/scrittura)
    fwrite($var,$var1."\n");//scrivo la variabile del form nel file .txt
    $var2=file("cocco.txt");//estraggo l'array dal file .txt
    fclose($var);//chiudo il file .txt
    $i=count($var2);//conto gli elementi nell'array
    for($a=0; $a<=$i; $a++){//uso il ciclo for per guardare nell'array
    echo $var2[$a]."
    ";//scrivo tutti gli elementi dell'array, ma potevo eseguire qualunque altra operazione con le variabili!!!
    }//fine ciclo for
    }//fine ciclo if
    ?>

  2. #2
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    c'è un pò di casino eh?? ù

    innanzitutto definisci l' action del form che si rimanda a se stesso. supponiamo si chiami cocco.php e definiamo in submit name="invia"

    <!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>Documento senza titolo</title>
    </head>
    <body>
    <table>inizio tabella form inserimento dati
    <form action="cocco.php" method="post">
    <tr><td>
    Inserisci messaggio
    </td></tr>
    <tr><td>
    <input type="text" name="var1" size=25 maxlength=80>var1 la scriveremo nel file .txt
    Cliccando invia ti ricolleghi a questa pagina e memorizzi il messaggio nel file .txt
    <input type="submit" value="Invia" name="invia">
    </form>
    </table>
    </body>

    adesso viene il codice php che, fondamentalmente non era sbagliato eccetto alcuni punti che ti faccio vedere.

    Codice PHP:

    <? //inizio codice PHP
    $var1=$_POST['var1'];//recupero la variabile globale var1 di tipo POST #OK#

    if (isset($_POST['invia']) && $_POST['var1']!="")
    {
    //Attiviamo PHP solo se il form è stato cliccato  #MODIFICATO# se è stato premuto invia e var1 ha qualche contenuto
    echo "inseriscvo i dati nel file di testo...
    "
    ;

    $file=fopen("cocco.txt","a+");//apro il file .txt (modalità append!!!! cioè accoda le nuove info senza cancellare il resto)
    $var1.="\n";
    fwrite($file,$var1);//scrivo la variabile del form nel file .txt eADESSO chiudi il file
    fclose($file);//chiudo il file .txt
    // consiglio!!!! non usare nomi di variabili simili tipo var, var1, var 2 ecc... sennò rischi di perderti

    $result=file("cocco.txt");//estraggo l'array dal file .txt

    //perchè contare gli array e dpo fare un ciclo for??? fai così

    foreach($result as $line)
    echo 
    $line."
    "
    ;//scrivo tutti gli elementi dell'array
    }//fine ciclo if
    else
    die(
    "
    compila tutti i campi!!
    <a href=\"cocco.php\">premi qui</a>"
    );
    ?>
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    163

    mi comunica ancora un errore ...

    Mi comunica ancora un errore,sotto ti ho riportato il risultato con l'errore evidenziato.
    Grazie per la prontissima risposta.

    inizio tabella form inserimento dati Inserisci messaggio
    var1 la scriveremo nel file .txt Cliccando invia ti ricolleghi a questa pagina e memorizzi il messaggio nel file .txt

    Notice: Undefined index: var1 in c:\programmi\easyphp1-8\www\php\cocco.php on line 21


    compila tutti i campi!!
    premi qui

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    163

    MA!!!

    Mi sembra di capire che mi comunica errore perchè la variabile var1 all'inizio non è stat definita ...
    Come devo fare?
    Grazie ancora ...

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    163

    forse ho capito

    La riga
    $var1=$_POST['var1'];
    dev'essere all'interno del IF non fuori ...
    giusto?

    Grazie

  6. #6
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    cocco.php

    Codice PHP:


    <? //inizio codice PHP


    if (isset($_POST['invia']) && $_POST['commento']!="")
    {
    //Attiviamo PHP solo se il form è stato cliccato  #MODIFICATO# se è stato premuto invia e var1 ha qualche contenuto
    $var1=$_POST['commento'];//recupero la variabile globale var1 di tipo POST #OK#
    echo "inseriscvo i dati nel file di testo...
    "
    ;

    $file=fopen("cocco.txt","a+");//apro il file .txt (modalità append!!!! cioè accoda le nuove info senza cancellare il resto)
    $var1.="\n";
    fwrite($file,$var1);//scrivo la variabile del form nel file .txt eADESSO chiudi il file
    fclose($file);//chiudo il file .txt
    // consiglio!!!! non usare nomi di variabili simili tipo var, var1, var 2 ecc... sennò rischi di perderti

    $result=file("cocco.txt");//estraggo l'array dal file .txt

    //perchè contare gli array e dpo fare un ciclo for??? fai così

    foreach($result as $line)
    echo 
    $line."
    "
    ;//scrivo tutti gli elementi dell'array
    }//fine ciclo if
    else
    {
    ?>
    <!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>Documento senza titolo</title>
    </head>
    <body>
    <table>inizio tabella form inserimento dati
    <form action="cocco.php" method="post">
    <tr><td>
    Inserisci messaggio
    </td></tr>
    <tr><td>
    <input type="text" name="commento" size=25 maxlength=80>var1 la scriveremo nel file .txt
    Cliccando invia ti ricolleghi a questa pagina e memorizzi il messaggio nel file .txt
    <input type="submit" value="Invia" name="invia">
    </form>
    </table>
    </body>
    <?
    }
    ?>
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

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.