• Consiglio Direttivo

    Puoi creare un semplice form ove l'utente scrive in una textarea e quanto scritto va ad inserirsi in un Db MySql o in un file di testo, per la visualizzazione poi ti prenderai i dati dal txt o dal Db e li visualizzi per come più ti aggrada 😉

    Se come soluzione ti sta bene non è difficile da fare, magari più tardi ti posto quello che uso solitamente 😉

    Ciauuu


  • User

    va bene,
    l'unica mia perplessità rigurda il database non ne ho mai realizzato uno,
    ma se mi dici che non è difficile... è propio la soluzione che cercavo.


  • Consiglio Direttivo

    Guarda io uso Php e MySql da pochi mesi (indi non sono un esperto)......e ti posso dire che a parte la semplicità (la gestione del Db tramite PhpMyAdmin è "elementare") riesco ad ottenere quel che voglio, quasi sempre diciamo :D, certe volte tramite "ripieghi" (magari perchè non conosco tutti i comandi ovviamente) o implementando altri linguaggi tipo js 😉


  • User

    Perfetto sei la persona giusta per indicarmi cosa devo fare per raggiungere il mio obbiettivo.

    come procedo?

    ciao


  • Consiglio Direttivo

    prima di tutto controlla che il server dove hai l'Hosting supporti PHP5 ed abbia un database MySql 5.
    Ti fai abilitare all'uso del Db ed una volta dentro vai in Phpmyadmin.....vedrai da solo il da fare.....io ora scappo senno' la tipa mi distrugge, ci becchiamo dopo 😉


  • User

    ok non ti preoccupare!

    volevo realizzare il tutto sul mio server virtuale ho installato easyphp 1.8.0.1
    non so se supporta php5 , se me dici cosa usi tu lo scarico cosi non ci sono problemi.


  • Consiglio Direttivo

    [si avvicina quatto quatto per non farsi scoprire :D:D]

    allora installati Xampp, ha tutto dentro e si autoconfigura così non ti perdi nei settaggi :D:D:D

    ariscappo 😉


  • User

    Non ho ancora avuto il tempo di scaricare xampp
    no ce una soluzione col php4?


  • Consiglio Direttivo

    Puoi installarti i programmi uno per uno, ma configurarli diventa un po' macchinoso.
    Con Xampp installi, metti quattro cose di configurazione e sei pronto 😉

    EDIT: dimenticavo, oppure lasci stare il Db e gestisci tutto tramite un file di testo 😉


  • User

    gurda io vorrei la soluzione piu semplice, senza db posso aggiornare il tutto tramite un form? se si facciamo anche senza db, a me interessa solo tramite un form aggiornare una sezione...

    ciau


  • Consiglio Direttivo

    Ok, togliamo il Db, gestiamo tutto con file di testo

    creati un file news.txt e uppalo nella directory che vuoi, per comodità facciam finta che sia la root e che il file da dove ti posti le news si chiami control_panel.php (quello che dovrai creare per capirci 😉 ), ti gestisci tutto con lo stesso file:

    La pagina con il form dovrà avere questa struttura:

    [php]echo "<form action='control_panel.php' method='GET' name='news'>
    <textarea tabindex=1 wrap=virtual name=text cols=28 rows=6>"; //** wrap virtual serve a non far mettere gli "a capo" anche se nella textarea ci andrai, cols e rows sono le colonne e le righe, giostratele per come preferisci */
    echo "<input tabindex=2 type=submit value='Invia'>
    <input type=reset tabindex=3 value='Reset'></form>";

    //** Tiriamoci su l'orario attuale /
    setlocale(LC_TIME, "it_IT");
    $DATE= time();
    $ARRAY_DATA=getdate($DATE);
    $H = $ARRAY_DATA['hours'];
    $M = $ARRAY_DATA['minutes'];
    $S = $ARRAY_DATA['seconds'];
    $T = $ARRAY_DATA['mon'];
    $D = $ARRAY_DATA['mday'];
    $Y = $ARRAY_DATA['year'];
    $DATE=mktime($H, $M, $S, $T, $D, $Y);
    $DATA=strftime('%Y-%m-%d %H:%M:%S', $DATE);
    //
    * in tal modo abbiamo la data ed ora attuale nel formato 2007-12-11 20:26:50 */

    $file="news.txt"; //* assegnamo il path del file /
    $text="";
    $text=$_GET['text']; //
    assegni quanto postato dalla text area alla variabile e quindi passi al controllo se la variabile ha un valore prima di scrivere sul file /
    if ($text!="")
    {
    $handle = fopen ($file, "ab"); //
    * comando per l'apertura del file /
    $write = $DATA."@".$text."\n"; //
    * scriverà singole righe (\n alla fine sta per newline) mettendo la data e poi il testo separati dal simbolo @ /
    fwrite ($handle, $write); //
    * scriviamo sul file /
    fclose($handle); //
    * ed infine chiudiamo il file, da non dimenticare MAI!!! */
    }
    [/php]
    ovviamente questo è solo il form, poi i "fiorellini" li devi mettere tu (body e quant'altro).

    per visualizzare il contenuto del file, e quindi le news vere e proprie creerai il file news.php:
    [php]$file="news.txt";
    $textarray=file($file); //** ci tiriamo su un array delle varie righe del file */
    $i=0;
    echo "<table><caption align=center>NEWS</caption>";
    while($i<count($textarray))
    {

    $string=substr($textarray*, 0,-1);
    list($data, $text)=explode("@", $string); //**esplodiamo la riga che lui troverà scritta nel segunte modo: 2007-12-12 20:26:50@testodellanews, e la separiamo assegnado quello che sta prima della @ a $data e quello che sta dopo a $text ed infine li facciam vedere */
    echo '<tr valign=center>';
    echo "<td>".$data."</td><td>".$text."</td>";
    echo '</tr>';
    }
    echo '</table>'; [/php]
    in tal modo ti intabellerà il tutto, come sempre ai fiorellini ci penserai te 😉

    Forse non è il metodo migliore, ripeto non sono un esperto, ma almeno è un metodo 😉

    Spero ti sia utile 😉
    Ciau 😉


  • User

    Grazie Samyorn, le tue conoscienze non sono niente male!

    nel file conrol_panel.php cè un piccolo errore nell' html ( cè da chiudere la textarea </textarea>) no problem...;)
    il problema che non sono invece in grado di risolvere e quello che
    easyphp segnala alla seguente riga del file control_panel.php:

    $text=$_GET['text']; //* assegni quanto postato dalla text area alla variabile e quindi passi al controllo se la variabile ha un valore prima di scrivere sul file */

    Infatti il tutto funziona però nella pagina news PHP non appare una sola volta il testo scritto nella textarea, Ma viene ripetuto moltissime volte

    es:
    2007-12-12 11:51:16gfhfgfhfgfhfg
    2007-12-12 11:51:16gfhfgfhfgfhfg
    2007-12-12 11:51:16gfhfgfhfgfhfg
    2007-12-12 11:51:16gfhfgfhfgfhfg
    2007-12-12 11:51:16gfhfgfhfgfhfg
    2007-12-12 11:51:16gfhfgfhfgfhfg
    2007-12-12 11:51:16gfhfgfhfgfhfg
    2007-12-12 11:51:16gfhfgfhfgfhfg

    nel file di testo news.txt è scritto 2007-12-12 11:51:16 gfh... correttamente una sola volta,
    qule puo essere l'errore? forse ho sbagliato qualcosa io...

    ti ringrazio della pazienza ciau!


  • Consiglio Direttivo

    @markez said:

    nel file conrol_panel.php cè un piccolo errore nell' html ( cè da chiudere la textarea </textarea>) no problem...;)

    opsss.....nella fretta :sbonk:

    @markez said:

    il problema che non sono invece in grado di risolvere e quello che
    easyphp segnala alla seguente riga del file control_panel.php:

    $text=$_GET['text'];
    uhm....cambia gli apici (')con le virgolette (") e togli pure il commento, non si sa mai 😄

    @markez said:

    Infatti il tutto funziona però nella pagina news PHP non appare una sola volta il testo scritto nella textarea, Ma viene ripetuto moltissime volte

    es:
    2007-12-12 11:51:16gfhfgfhfgfhfg
    2007-12-12 11:51:16gfhfgfhfgfhfg
    2007-12-12 11:51:16gfhfgfhfgfhfg
    2007-12-12 11:51:16gfhfgfhfgfhfg
    2007-12-12 11:51:16gfhfgfhfgfhfg
    2007-12-12 11:51:16gfhfgfhfgfhfg
    2007-12-12 11:51:16gfhfgfhfgfhfg
    2007-12-12 11:51:16gfhfgfhfgfhfg

    nel file di testo news.txt è scritto 2007-12-12 11:51:16 gfh... correttamente una sola volta,
    qule puo essere l'errore? forse ho sbagliato qualcosa io...

    ti ringrazio della pazienza ciau!
    ho dimenticato di incrementare $i :sbonk:
    a fine ciclo, prima di chiudere la parentesi graffa metti $i=$i++, ovvio che andava in loop XD scusa la sbadataggine 😉


  • User

    Mannagiuz!
    news.php va ancora in loop ti posto il codice che php con la correzzione da te indacata:

    <?php
    $file="news.txt";
    $textarray=file($file); //** ci tiriamo su un array delle varie righe del file */
    $i=0;
    echo "<table><caption align=center>NEWS</caption>";
    while($i<count($textarray))
    {

    $string=substr($textarray*, 0,-1);
    list($data, $text)=explode("@", $string); //**esplodiamo la riga che lui troverà scritta nel segunte modo: 2007-12-12 20:26:50@testodellanews, e la separiamo assegnado quello che sta prima della @ a $data e quello che sta dopo a $text ed infine li facciam vedere */
    echo '<tr valign=center>';
    echo "<td>".$data."</td><td>".$text."</td>";
    echo '</tr>';
    $i=$i++ ;
    }
    echo '</table>';
    ?>

    ps: ti faccio tribulare! graz


  • Consiglio Direttivo

    Modificalo con questo:
    [PHP]<?php
    $file="news.txt";
    $textarray=file($file);
    $i=0;
    echo "<table><caption align=center>NEWS</caption>";
    while($i<count($textarray))
    {
    $string=substr($textarray*, 0,-1);
    list($data, $text)=explode("@", $string);
    echo '<tr valign=center>';
    echo "<td>".$data."</td><td>".$text."</td>";
    echo '</tr>';
    $i=$i+1 ;
    }
    echo '</table>';
    ?>[/PHP]

    risolto per control_panel.php invece? da' ancora errore?


  • User

    risolto le news ora fuzionano, sapresti indicarmi una modificare il php per far si che le news piu recenti vengano visualizzate prima di quelle piu vecchie?
    al posto di:
    2007-12-12 11:51:16gfhfgfhfgfhfg2007-12-12 12:04:40provafare,
    2007-12-12-12:04:40 prova
    2007-12-12-11:51:16 gfhfgf...

    control_panel.php da ancora errore nonostante il codice l'abbia cambiato in questo modo:
    <?php
    echo "<form action='control_panel.php' method='GET' name='news'>
    <textarea tabindex=1 wrap=virtual name=text cols=28 rows=6></textarea>"; //** wrap virtual serve a non far mettere gli "a capo" anche se nella textarea ci andrai, cols e rows sono le colonne e le righe, giostratele per come preferisci */
    echo "<input tabindex=2 type=submit value='Invia'>
    <input type=reset tabindex=3 value='Reset'></form>";

    //** Tiriamoci su l'orario attuale /
    setlocale(LC_TIME, "it_IT");
    $DATE= time();
    $ARRAY_DATA=getdate($DATE);
    $H = $ARRAY_DATA['hours'];
    $M = $ARRAY_DATA['minutes'];
    $S = $ARRAY_DATA['seconds'];
    $T = $ARRAY_DATA['mon'];
    $D = $ARRAY_DATA['mday'];
    $Y = $ARRAY_DATA['year'];
    $DATE=mktime($H, $M, $S, $T, $D, $Y);
    $DATA=strftime('%Y-%m-%d %H:%M:%S', $DATE);
    //
    * in tal modo abbiamo la data ed ora attuale nel formato 2007-12-11 20:26:50 */

    $file="news.txt"; //* assegnamo il path del file /
    $text="";
    $text=$_GET["text"];
    if ($text!="")
    {
    $handle = fopen ($file, "ab"); //
    * comando per l'apertura del file /
    $write = $DATA."@".$text."\n"; //
    * scriverà singole righe (\n alla fine sta per newline) mettendo la data e poi il testo separati dal simbolo @ /
    fwrite ($handle, $write); //
    * scriviamo sul file /
    fclose($handle); //
    * ed infine chiudiamo il file, da non dimenticare MAI!!! */
    }
    ?>


  • Consiglio Direttivo

    [PHP]echo "<form action='control_panel.php' method='POST' name='news'>
    <textarea tabindex=1 wrap=virtual name=text cols=28 rows=6></textarea>";
    echo "<input tabindex=2 type=submit value='Invia'>
    <input type=reset tabindex=3 value='Reset'></form>";

    setlocale(LC_TIME, "it_IT");
    $DATE= time();
    $ARRAY_DATA=getdate($DATE);
    $H = $ARRAY_DATA['hours'];
    $M = $ARRAY_DATA['minutes'];
    $S = $ARRAY_DATA['seconds'];
    $T = $ARRAY_DATA['mon'];
    $D = $ARRAY_DATA['mday'];
    $Y = $ARRAY_DATA['year'];
    $DATE=mktime($H, $M, $S, $T, $D, $Y);
    $DATA=strftime('%Y-%m-%d %H:%M:%S', $DATE);

    $file="news.txt";
    $text="";
    $text=$_REQUEST["text"];
    if ($text!="")
    {
    $handle = fopen ($file, "ab");
    $write = $DATA."@".$text."\n";
    fwrite ($handle, $write);
    fclose($handle);
    } [/PHP]
    modificalo così
    se ti da ancora errore dimmi che errore è 😉

    P.S.: ma hai messo i vari <html>, <body>, etc etc ho lo hai uppato direttamente così??


  • User

    i tag li ho messo tutti
    <html>
    <head>...
    </head>
    <body>
    <?php
    ....
    ?>
    </body>
    </html>
    mi da ancora errore nella riga $text=$_REQUEST["text"];

    nonostante questo errore tutto funziona bene,
    mi interessava come ti dicevo riuscire a mettere
    le news piu recenti per prime


  • Consiglio Direttivo

    @markez said:

    mi da ancora errore nella riga $text=$_REQUEST["text"];
    nonostante questo errore tutto funziona bene,
    mi sfugge perchè dia errore....ma mi par di capire che nonostante dia errore funge tutto, giusto?
    @markez said:
    mi interessava come ti dicevo riuscire a mettere
    le news piu recenti per prime
    basta invertire il ciclo, invece di far partire $i da 0 lo fai partire dal valore di count($textarray), ed invece di incrementarlo lo decrementi, ovvero $i=$i-1 ad ogni ciclo ;), ovviamente devi fermare il ciclo quando $i=0 😉


  • User

    ok ti ringrazio! nn ce l'avrei mai fatta da solo...

    un ultima cosa scusa se me ne approfitto 🙂
    per uscire dal ciclo quando $i=0 cosa devofare