Visualizzazione risultati 1 fino 30 di 30

Discussione: Aiuto per Tag Board

  1. #1
    Guest

    Predefinito Aiuto per Tag Board

    Ciao a tutti,
    stavo scrivendo una semplicissima tag board in php, da mettere sul mio sito, ma ho alcuni problemi. Intanto vi spiego cosa di preciso deve fare lo script, poi passiamo alla parte codice :D

    Deve semplicemente aprire in una tabella fata in html e css un file di testo che raccoglie i messaggi. Poi, tramite un form, mi collego al file di testo che si aggiorna con il messaggio che lascia l'utente successivo. Preferirei se ad ogni messaggio, si aggiungesse un <br>, <hr> e un'altro <br>

    I problemi che mi si presentano sono due:

    1) Il meno grave, il testo non mi si inserisce nella tabella con sfondo rosa, ma si mette sopra...

    2) Quando provo a scrivere il messaggio tramite form, il risultato che ottengo è uno "0" stampato a video... e il file non si aggiorna...

    Il codice è questo:

    Pagina della Tag Board

    Codice PHP:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Planet Olsen Tag Board v.0.1 BETA Version</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <style>
    /*CSS for ItAndy90's TagBoard*/
    #table_content {
    width:60%;
    height:500px;
    background-color:#99CCFF;
    text-align:center;
    }

    #table_logo {
    width:100%;
    height:80px;
    background-color:#FFFFFF;
    text-align:center;
    }

    #table_text {
    width:80%;
    height:300px;
    background-color:#FFCCCC;
    padding: 0px 0px 0px 4px;
    border:1px;
    }

    .text {
    font-family:Arial, Helvetica, sans-serif;
    font-style:inherit;
    }
    </style>
    </head>

    <body>

    <table id="table_content">
    <table id="table_logo">
    <img src="style/logo.jpg">
    </table>
    <br><br>
    <table id="table_text">
    <?php
    $open_message_file
    = fopen("message.txt","a+");
    $read_message_file = fread($open_message_file,filesize("message.txt"));
    echo
    $read_message_file;
    ?>
    </table>
    <br>
    <form method="post" action="writemessage.php">
    <p class="text">NickName: </p><input type="text" name="nickname"><br>
    <p class="text">Testo: </p><input type="text" name="message"><br><br>
    <input type="submit" name="submit" value="Invia">
    </form>
    </table>

    </body>
    </html>
    Pagina writemessage.php
    Codice PHP:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Planet Olsen - Invio messaggio alla Tag Board</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <body>
    <?php

    $open_message_file
    = fopen("message.txt","r");
    $write_message_file = fwrite($open_message_file, (date('d M y - H:i'), " - ", ($_POST[nickname]), " - ", ($_POST[message]));

    echo
    $write_message_file;
    ?>
    </body>
    </html>
    Capisco che il codice è di una semplicità disarmante, ma le mie conoscienze per quanto riguard il php terminano qui

  2. #2
    Guest

    Predefinito

    Aggiorno: il codice che ho messo qui non mi da l'errore "0" ma mi restituisce un'altro errore:

    Parse error: parse error, unexpected ',' in /membri/mksoftware/writemessage.php on line 12

  3. #3
    Guest

    Predefinito

    ...

  4. #4
    Guest

    Predefinito

    Risolto da solo al problema dei post... Per il problema in HTML apro un topic apposito nella sezione giusta. Grazie comunque a chi almeno ci ha provato

  5. #5
    Guest

    Predefinito ciao

    scusami ho visto che hai fatto la tag board in php...
    ehm...
    volevo solo chioederti se potevi passarmi il codice per inserirne una anche sul mio sito...
    comunque se me lo passi poi io ci aggiungo la possibilità di bannare tramite IP gli utenti wscomodi...
    fammi sapere tu..
    a presto,
    Pascal

  6. #6
    Guest

    Predefinito

    Allora, intanto espongo un problemino, poi rispondo a Pascal.

    Non capisco perchè i messaggi nuovi , invece di andare sopra (in cima al messaggio erp capirsi) vanno sotto... coem posso fare? da quanto conosco io, tramite la funzione fwrite si può solo impaginare dall'alto verso il basso e non viceversa... se si fa fal basso all'alto, il messaggio precedente si cancella...

    Citazione Originalmente inviato da Pascal
    scusami ho visto che hai fatto la tag board in php...
    ehm...
    volevo solo chioederti se potevi passarmi il codice per inserirne una anche sul mio sito...
    comunque se me lo passi poi io ci aggiungo la possibilità di bannare tramite IP gli utenti wscomodi...
    fammi sapere tu..
    a presto,
    Pascal
    Il codice te lo posto qui corretto appena riesco a risolvere sto problemino. Poi mettiamo funzioni avanzate... se funzia male il metodo di impaginazione, è inutile permetterci l'uso di funzioni avanzate

    Comunque se conosci il php (se si sicuramente + di me) e ti va di lavorare puoi sempre prendere il codice e decidere di lavorarci insieme, oppure di lavorarci da solo (essendo scritto in open source, è gratuito...) cmq se sai il php l'errore lo trovi subito... è uan cavolata per la quale mi sono impazzito per ore....
    Ultima modifica di mksoftware : 07-02-2005 alle ore 23.42.56

  7. #7
    Guest

    Predefinito

    mmmm... io quando ho fatto la board in asp facevo caricare tutti i vecchi messaggi su un altro file come appoggio.. poi scrivevo l'ultimo messaggio sul file originale e dopo inserivo i vecchi messaggi....
    potresti usare questo stratagemma...
    ;)

  8. #8
    L'avatar di webscript
    webscript non è connesso Utente attivo
    Data registrazione
    28-11-2004
    Messaggi
    320

    Predefinito

    allora... nel fread metti r al posto di a e nel fwrite metti a...

    Per farli andar sopra... puoi fare cosi... o con un ciclo for... oppure leggi il log prendi il post e lo metti sopra.

    cosi

    $record = $post.$read;

  9. #9
    Guest

    Predefinito

    Citazione Originalmente inviato da webscript
    leggi il log prendi il post e lo metti sopra.

    cosi

    $record = $post.$read;
    Ma se non sbaglio, così solo il primo messaggio andrebbe in cima... e gli altri andrebbero sotto....
    Citazione Originalmente inviato da webscript
    Per farli andar sopra... puoi fare cosi... o con un ciclo for
    Che cosa intendi per ciclo for? Scusa ma sono un niubbo in php e non a caso se vedi il codice ha un costrutto elementare =)
    Citazione Originalmente inviato da webscript
    allora... nel fread metti r al posto di a e nel fwrite metti a...
    Già fatto.. infatti è per quello ke i messaggio non si vedevano ;)

    Cmq tramite un attributo al comando fwrite il messaggio viene scritto in cima... peccato che sovrascrive tutto quello ke c'era prima... perlomeno nel numero dei caratteri pari a quello del testo...
    Ultima modifica di mksoftware : 09-02-2005 alle ore 16.57.39

  10. #10
    Ospite Guest

    Predefinito

    dovete utilizzare array_reverse , che rovescia gli arry, creare un array delle righe del file di testo e poi rovesciare, almeno a me funge così..cmq vi passo una tag-board o gsbook che dir si voglia, pensavo di rifinirlo ma non ho mai il tempo.
    Controlla solo che nei campi sia scritto qualcosa, magari aggiungete qualche controllo. Ci sono dei commenti miei messi ora un po' alla svelta. E' un file unico.
    se lo migliorate magari postate il codice così serve per tutti.


    Codice PHP:
    <?php

    $dati_file
    = "dati.txt";

    if(isset(
    $_POST['submit'])){

    $nick = $_POST['nick'];
    $msg = $_POST['msg'];
    if(!
    $nick or !$msg) {
    echo
    "Devi riempire i campi del modulo, ritorna indietro";
    exit;
    }

    $data = date('j/n/y - g:i') ;
    $riga_messaggio = "$nick|$msg|$data\n"; //creo la riga di messaggio nel file di testo //con di dati e il separatore |

    $fp = fopen($dati_file, "a"); //apro il file di testo
    $fw = fwrite($fp, $riga_messaggio); //scrivo la riga del messaggio nel file di testo
    $fc = fclose($fp); //chiudo il file di testo
    }

    ?>

    <html>
    <body bgcolor="#FFFFFF" text="#000000">
    <h3>Libro</h3>
    <form name="formlibro" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?> ">
    <table>
    <tr>
    <td> Nick:</td>
    <td><input type="text" name="nick"></td>
    </tr>
    <tr>
    <td>Messaggio:</td>
    <td><textarea name="msg" rows="4"></textarea></td>
    </tr>

    <tr>
    <td></td>

    <td><input type="submit" name="submit" value="Invia">
    <input type="reset" name="Reset" value="Reimposta"></td>
    </tr>


    </table>

    </form>
    <hr>

    <?php

    if (file_exists($dati_file)) {
    $leggi_dati = file($dati_file) ; //creo un array delle righe del file

    $dati_rovesciati = array_reverse($leggi_dati); //rovescio le righe del file
    $num_msg = count($dati_rovesciati); //conto le righe del file

    //creo un ciclo per ottenere l'array dei dati
    for($c=0;$c<$num_msg-1;$c++){

    $dato = explode("|", $dati_rovesciati[$c]); //li separo con explode e il separatore
    //visualizzo i dati
    echo "<b>Data:</b> $dato[2]";
    echo
    "<br>";
    echo
    "<b>Nome:</b> $dato[0]";
    echo
    "<br>";
    echo
    "<b>Messaggio:</b> $dato[1]";
    echo
    "<br><br><hr>";
    }
    }
    ?>

    </body>
    </html>

  11. #11
    L'avatar di mythologia
    mythologia non è connesso Moderatore
    Data registrazione
    05-01-2004
    Messaggi
    2,614

    Predefinito

    metti un filesize, mi pare che risolva

  12. #12
    Guest

    Predefinito

    Grazie farlimas, cercherò di farne buon uso

    Mythologia, filesize apre soltanto un certo numero di bit di un file... come posso applicarlo a fwrite????? Forse gli faccio aprire 1 bit del file e mi scrive sovrascrivendo un bit?

  13. #13
    L'avatar di mythologia
    mythologia non è connesso Moderatore
    Data registrazione
    05-01-2004
    Messaggi
    2,614

  14. #14
    L'avatar di webscript
    webscript non è connesso Utente attivo
    Data registrazione
    28-11-2004
    Messaggi
    320

    Predefinito

    allora... il mio metodo... se ci son due messaggi... inizi a girarli, ne aggiungi uno va sopra, e gli altri due sono girati e cosi via...

  15. #15
    Ospite Guest

    Predefinito

    ma guarda che il mio codice ti fa comparire l'ultimo messaggio in cima...c'è tutto in codice. provalo qui se vuoi cmq la funzione array_reverse serve a quello...lo dice la parola stessa...
    http://farlimas.altervista.org/php/gb/libro.php

  16. #16
    Ospite Guest

    Predefinito

    Citazione Originalmente inviato da webscript
    allora... il mio metodo... se ci son due messaggi... inizi a girarli, ne aggiungi uno va sopra, e gli altri due sono girati e cosi via...
    ma perché non usi array_reverse?

  17. #17
    L'avatar di webscript
    webscript non è connesso Utente attivo
    Data registrazione
    28-11-2004
    Messaggi
    320

    Predefinito

    perchè non conoscevo quella funzione...

    E quindi me la cavavo con un for o con l'altro metodo

  18. #18
    Guest

    Predefinito

    Uhm ok... adesso mi studio bene la funzione. perchè so a mala pena come fare un array. Adesso do una bella vista al tuo codice, farlimas se il progetto riesce, e riesco a distribuirlo su qualke sito, vi metto tra i collaboratori ! Grazie a tutti ragazzi !
    Ultima modifica di mksoftware : 09-02-2005 alle ore 18.43.47

  19. #19
    L'avatar di mythologia
    mythologia non è connesso Moderatore
    Data registrazione
    05-01-2004
    Messaggi
    2,614

  20. #20
    Ospite Guest

    Predefinito

    quel guestbook è finito praticamente, tanto gli array li devi usare eventualmetne per forza anche per paginare....ciao a tutti ora stacco

  21. #21
    Ospite Guest

    Predefinito

    se hai un array $animali che è papero, cane, faina, oca, se fai
    array_reverse($animali)
    ti da oca, faina, cane papero, non è una cosa complicata...devo staccare per andare a fare le polpette :((

  22. #22
    L'avatar di mythologia
    mythologia non è connesso Moderatore
    Data registrazione
    05-01-2004
    Messaggi
    2,614

    Predefinito

    si, ho capito, ma funge anke come dico io

  23. #23
    Guest

    Predefinito

    Chiedo intanto scusa per aver risposto a un topic molto aperto, ma era inutile ricrearne un'altro per la medesima discussione...

    Non capisco perchè non mi funziona lo script, preparato (forse, perchè non so se è corretto ) secondo le istruzioni di farlimas

    Il codice è qui:

    Codice PHP:
    <body>

    <table id="table_content">
    <tr>
    <td>
    <table id="table_logo">
    <tr>
    <td>
    <img src="style/logo.jpg">
    </tr>
    </tr>
    </table>
    <br>
    <table id="table_text">
    <tr>
    <td>
    <?php
    $open_message_file
    = fopen("message.htm","a");
    $data_file = message.htm;

    if (
    file_exists($data_file)) {
    $read_data_file = file($data_file); //Make data-array
    $reversed_data = array_reverse($read_data_file); //Data is now reversed
    }
    echo
    $open_message_file;
    ?>
    </td>
    </tr>
    </table>
    <br>
    <form method="post" action="writemessage.php">
    <p class="text">NickName: </p><input type="text" name="nickname"><br>
    <p class="text">Testo: </p><input type="text" name="message"><br><br>
    <input type="submit" name="submit" value="Invia">
    </form>
    </td>
    </tr>
    </table>
    </body>
    Non ho inserito i css che sono inutili nella discussione... grazie in anticipo per eventuali risposte

  24. #24
    L'avatar di mythologia
    mythologia non è connesso Moderatore
    Data registrazione
    05-01-2004
    Messaggi
    2,614

  25. #25
    Guest

    Predefinito

    Se guardi qui: http://mksoftware.altervista.org/TagBoard.php
    vedrai che nella tabellina rosa nella quale devono comparire i messaggi, c'è scritto soltanto "resource id#2"

    :(

  26. #26
    Ospite Guest

    Predefinito

    Ma dove li hai recuperato i campi? io non lo vedo.
    cioè $nickname = $_POST['nickname'];....ecc..?? non ho capito qual'è l'action, cmq è melgio che usi un file di testo non un html come database

  27. #27
    Guest

    Predefinito

    I campi li ho recuperati da un file a parte. Usavo un file html perchè dopo il messaggio scrivevo (come se fosse tutto incluso come testo) un <hr> che salvato in un file html mi da una riga orizzontale invece che un <hr> scritto testualmente.

    Nessun suggerimento per quanto riguarda l'erroe che riscontro?

  28. #28
    Ospite Guest

    Predefinito

    ma guarda non ho capito qual'è il codice di questa tag, o lo posti tutto o non capisco.
    cmq se nel file di testo metti <br> o <hr> nella pagina esce lo spazio lo stesso

  29. #29
    Guest

    Predefinito

    Allora... questa è la prima pagina, che fa vedere il file di testo e ke contiene il form con i campi da completare...

    Codice PHP:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Planet Olsen Tag Board v.0.1 BETA Version</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <style>

    /*CSS by ItAndy90 for Tag Board 0.1 BETA*/

    #table_content {
    width:60%;
    height:500px;
    background-color:#FFCCFF;
    border:1px solid;
    border-color:#FF99FF; }

    #table_logo {
    width:100%;
    height:80px;
    background-color:#FFFFFF;
    border:1px solid;
    border-color:#FF99FF;
    text-align:center; }

    #table_text {
    width:60%;
    height:240px;
    background-color:#FFCCCC;
    border:1px solid;
    border-color:#FF99CC; }

    </style>
    </head>

    <body>

    <table id="table_content">
    <tr>
    <td>
    <table id="table_logo">
    <tr>
    <td>
    <img src="style/logo.jpg">
    </tr>
    </tr>
    </table>
    <br>
    <table id="table_text">
    <tr>
    <td>
    <?php
    $open_message_file
    = fopen("message.htm","a");
    $data_file = message.htm;

    if (
    file_exists($data_file)) {
    $read_data_file = file($data_file); //Make data-array
    $reversed_data = array_reverse($read_data_file); //Data is now reversed
    }
    echo
    $open_message_file;
    ?>
    </td>
    </tr>
    </table>
    <br>
    <form method="post" action="writemessage.php">
    <p class="text">NickName: </p><input type="text" name="nickname"><br>
    <p class="text">Testo: </p><input type="text" name="message"><br><br>
    <input type="submit" name="submit" value="Invia">
    </form>
    </td>
    </tr>
    </table>
    </body>
    </html>
    Poi questo è il file che scrive il messaggio sul file

    Codice PHP:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Planet Olsen - Invio messaggio alla Tag Board</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <body>
    <?php

    $open_message_file
    = fopen ("message.htm","r+");
    $write_message_file = fwrite($open_message_file, "<p><b> $_POST[nickname] </b> - $_POST[message] </p><hr>");

    echo
    $write_message_file;




    ?>
    </body>
    </html>

  30. #30
    Ospite Guest

    Predefinito

    guarda onestamente mi sono anche presa il codice ma con il php non sono al punto come nell html che riesco sempre ad individuare gli errori altrui, anche perchè il tuo codice è molto diverso dal mio.
    L' unica cosa che ho visto è nel primo file
    $data_file = message.htm; mancano le virtolette
    $data_file = "message.htm"; prova un po' se è quello magari

Regole di scrittura

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