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

    Invertire lettura file txt e ritorno a capo

    Ciao a tutti,
    sto studiando un pò di html e mi è venuta la fissa di provare a creare un blog da zero
    però ho scoperto che senza php non si va molto lontano
    allora per il momento ho deciso di prendere in prestito qualche codice dalla rete
    e devo dire che ho trovato quello che fa al caso mio.

    File index.php :
    codice:
    <html>
    <head>
    <title>Un guestbook in PHP senza MySQL</title>
    </head>
    <body>
    
    <h1>Firma il guestbook</h1>
    
    Vai all'ultimo messaggio
    
    <form method="post" action="guestbook.php">
    Tuo nome
    
    
    <input type="text" name="nome">
    
    
    Messaggio
    
    
    <textarea name="messaggio" rows="5" cols="30"></textarea>
    
    
    
    <input type="submit" value="Firma il guestbook">
    </form>
    
    
    <?
    include("guestbook.txt");
    ?> 
    
    Vai a inizio pagina
    
    </body>
    </html>
    File guestbook.php :
    codice:
    <?
        // Recupero i campi dal modulo
        $nome = $_POST["nome"];
        $messaggio = $_POST["messaggio"];
    
        // Recupero la data corrente
        $data = date("d/m/Y H:i:s");
    
        // Recupero il file di testo in cui scrivere i messaggi
        $file = "guestbook.txt";
    
        // Controlo che i dati siano corretti
        if ($nome == "")
        {
            echo "Inserisci il tuo nome";
        }
        elseif ($messaggio == "")
        {
            echo "Inserisci il messaggio";
        }
        else
        {
            // Apro il file di testo e ci srivo dentro
            $guestbook = fopen($file, "a");
            $scrivi = "" . $nome . "
    \r";
            $scrivi .= $messaggio . "
    \r";
            $scrivi .= "Scritto in data " . $data . "<hr>\r";
            fwrite($guestbook, $scrivi);
            fclose($guestbook);
    
    
            // Rimando l'utente alla pagina principale
            Header("Location: sitoweb");
        }
    ?>
    è possibile fare in modo che il file di testo venga visualizzato dal basso verso l' alto
    cioè che i messaggi scritti per ultimi compaiano all' inizio sulla pagina web
    e che vengano riconosciuti i ritorno a capo?
    So che è meglio usare mysql ma per ora vorrei provare così.
    ho cercato qui sul forum e un pò in rete, ma tutte le soluzioni trovate
    non so come implementarle e non so se possono andare bene per quello che cerco di fare.
    Grazie!!!

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Ciao http://it.php.net/manual/en/function.fopen.php prova a cambiare le opzioni di fopen con "r+" dovrebbe aggiungere/scrivere in testa al file lasciando quel che c'e'.

    "a" punta alla fine del contenuto gia' presente.

  3. #3
    Grande!!!
    Mamma mia le ho provate tutte ma r+ mi è proprio sfuggita
    grazie mille!!
    per il ritorno a capo sai darmi qualche consiglio?

    EDIT: ho cantato vittoria troppo presto...con r+ mi da lo stesso effetto di w+
    cioè mi cancella il testo scritto in precedenza e inserice il nuovo messaggio

  4. #4
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  5. #5
    "a" è l' impostazione che c'era già nel file originale
    e mi mette i messaggi uno sotto l' altro
    io vorrei che mettesse l' utimo messaggio sopra gli altri
    ma con "r+" mi cancella tutti quelli scritti in precedenza

  6. #6
    Ho risolto il ritorno a capo modificando così il file index.php:
    Codice PHP:
    </head>
    <body>

    <h1>Firma il guestbook</h1>

    [url="#BOTTOM"]Vai all'ultimo messaggio[/url]

    <form method="post" action="guestbook.php">
    Tuo nome


    <input type="text" name="nome">


    Messaggio


    <textarea name="messaggio" rows="5" cols="30"></textarea>



    <input type="submit" value="Firma il guestbook">
    </form>



    <?
    $guestbook
    =fopen("guestbook.txt","r");
    $leggi=fread($guestbook,filesize("guestbook.txt"));
    $ritorno=nl2br($leggi);
    fclose($guestbook);
    echo 
    $ritorno;
    ?>


    [url="#TOP"]Vai a inizio pagina[/url]

    </body>
    </html>
    ora mi manca solo l' inversione di lettura o scrittura dei commenti
    ma qui la vedo dura
    perchè effettivamente "r+" come mi è stato consigliato dovrebbe essere
    l' opzione giusta, però non so perchè mi da lo stesso risultato di un "w+"
    cancellando i messaggi scritti in precedenza.
    Grazie.

  7. #7
    Ragazzi non so se vi interessa ma ci sono riuscito
    sicuramente si può fare meglio
    però visto che i consigli sono pochi per il momento mi accontento
    grazie comunque a tutti
    a presto...
    ecco come ho modificato il codice per inserire i commenti dall' utimo al primo :

    Codice PHP:
    <?
        
    // Recupero i campi dal modulo
        
    $nome $_POST["nome"];
        
    $messaggio $_POST["messaggio"];

        
    // Recupero la data corrente
        
    $data date("d/m/Y H:i:s");

        
    // Recupero il file di testo in cui scrivere i messaggi
        
    $file "guestbook.txt";

        
    // Controlo che i dati siano corretti
        
    if ($nome == "")
        {
            echo 
    "Inserisci il tuo nome";
        }
        elseif (
    $messaggio == "")
        {
            echo 
    "Inserisci il messaggio";
        }
        else
        {
            
    // Apro il file di testo e ci srivo dentro
            
    $old_content file_get_contents("guestbook.txt");
            
    $guestbook fopen($file"w");
            
    $scrivi "[b]" $nome "[/b]
    \r"
    ;
            
    $scrivi .= $messaggio "
    \r"
    ;
            
    $scrivi .= "[i]Scritto in data " $data "[/i]<hr>\r";
            
    fwrite($guestbook$scrivi $old_content);
            
    fclose($guestbook);

            
    // Rimando l'utente alla pagina principale
            
    Header("Location: paginaprincipalesito_web.com");
        }
    ?>

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.