• 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


  • Consiglio Direttivo

    <FONT face="Courier New">[php]$i=count($textarray);
    echo "<table><caption align=center>NEWS</caption>";
    while($i<=0)
    {
    $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]

    😉


  • User

    con il codice che mi hai dato in news.php non vedo niente ho provato a modificare la condizione del ciclo
    da while($i<=0) a while($i>0)
    cosi facendo vedo le news nel giusto ordine ma ho 2 errori nelle linee
    $string=substr($textarray*, 0,-1);
    list($data, $text)=explode("@", $string);

    devo cambiare qualcosa anche qua?


  • Consiglio Direttivo

    @markez said:

    con il codice che mi hai dato in news.php non vedo niente ho provato a modificare la condizione del ciclo
    da while($i<=0) a while($i>0)
    maledetta fretta...ovviamente maggiore o uguale, indi $i=>0 😉

    @markez said:

    $string=substr($textarray*, 0,-1);
    list($data, $text)=explode("@", $string);

    devo cambiare qualcosa anche qua?

    che errori ti da?


  • User

    se metto anche l'uguale nella condizione nn visualizza niente se metto solo > visualizza le news corrette e poi questi 2 errori
    Notice: Undefined offset: 4 in c:\programmi\easyphp1-8\www\news\news.php on line 12

    Notice: Undefined offset: 1 in c:\programmi\easyphp1-8\www\news\news.php on line 13


  • Consiglio Direttivo

    ti visualizza tutte le news?

    non comprendo perchè quegli errori......estraiti l'HTML della pagina e dagli un occhiata 😉

    oppure prova ad uppare il tutto, certe volte in locale potrebbe dare noie 😉


  • User

    il codice che fa le bizze è il seguente provalo da te se non tida errori alla faccia di easy php per me è ok
    <html>
    <head><title>news</title>
    </head>
    <body>
    <?php
    $file="news.txt";
    $textarray=file($file);
    $i=count($textarray);
    echo "<table><caption align=center>NEWS</caption>";
    while($i>0)
    {
    $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>';
    ?>
    </body>
    </html>


  • Consiglio Direttivo
     
    <html>
    <head><title>news</title>
    </head>
    <body>
    <?php
    $file="news.txt";
    $textarray=file($file);
    $i=count($textarray);
    echo "<table><caption align=center>NEWS</caption>";
    while($i>=0)
    {
    $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>';
    ?> 
    </body>
    </html>
    
    

    risolto 😉
    invece di =>, andava scritto >=
    l'ho uppato e non da nessun errore, ne con FF ne con IE 😉


  • User

    ok tutto aposto, però cè un altra cosa avendo invertito il ciclo while se vado a capo nella textarea viene visualizzata nelle news prima la linea con cui sono andatoa a capo e poi la data e l'inizio delle news

    es :
    hhjjjj
    dddd
    ddddd
    12-12-12-11:09:15 ndhdhdhdhdhd

    cavolo è un bel problema


  • Consiglio Direttivo

    ma lo stai provando sempre in locale???

    io ho uppato un file txt, che per come vien scritto dal control_panel.php è così scritto:
    2007-12-20@testo 1
    2007-12-21@testo 2
    2007-12-22@testo 3
    2007-12-23@testo 4
    2007-12-25@testo 5
    2007-12-26@testo 6

    ho uppato quel codice, e mi vien fuori:
    NEWS
    2007-12-26 testo 6
    2007-12-25 testo 5
    2007-12-23 testo 4
    2007-12-22 testo 3
    2007-12-21 testo 2
    2007-12-20 testo 1

    non comprendo perchè ti escano quei valori.......


  • Consiglio Direttivo

    ok, son pirla io :D:D

    [PHP]......
    $file="news.txt"; //* assegnamo il path del file /
    $text="";
    $text=$_REQUEST["text"];
    $text=str_replace("\n", " ", $text); //
    aggiungi questo in control_panel.php */
    if ($text!="")
    .....
    ..[/PHP]


  • User

    Mi sa che non hai capito il problema, se nella text area io scrivo es:

    prima lineascritta nella textarea //poi vai a capo
    seconda lineascritta nella textarea //poi vai a capo
    terza lineascritta nella textarea //poi vai a capo

    nella pagina delle news vedrò:

    terza lineascritta nella textarea
    seconda lineascritta nella textarea
    2007 12-12-11:ecc..prima lineascritta nella textarea
    2007 12-12-11:ecc..news precendente

    leggo dall ultima riga della news a quella di inizio news
    questo è il problema a cui mi riferivo
    prova a testarlo da te cosi capisci subito.


  • Consiglio Direttivo

    ho testato, risolvi aggiungendo quello che ho scritto sopra 😉


  • User

    grande tutto OK!

    adesso mancano solo i fiorellini...

    ti ringrazio alla prossima!


  • User

    Scuasa Samyorn ma mi sono accorto che nella text area se vado a capo nelle news ( che vengono visualizzate Correttamente) l'acapo non viene riportato,

    quindi ad esmpio se scrivo nella textarea:
    prova.
    prova2
    nelle news trovero scritto:

    prova.prova2

    si puo fare in modo che l'acapo sia riportato nelle news?

    e mi chiedevo "se nn era troppo sbattimento" cosa dovrei fare per iserire un campo Titolo nell form e riportarlo come titolo all inizio delle news

    giuro che poi non ti rompo piu le palle:D!
    ciao


  • Consiglio Direttivo

    @markez said:

    Scuasa Samyorn ma mi sono accorto che nella text area se vado a capo nelle news ( che vengono visualizzate Correttamente) l'acapo non viene riportato, quindi ad esmpio se scrivo nella textarea:
    prova.
    prova2
    nelle news trovero scritto:
    prova.prova2
    Giusto che faccia così, e ti spiego perchè: il comando $textarray=file($file);
    non fa altro che creare un array (penso tu sappia che significa) prendendo i dati dal txt e li posiziona, dal primo all'ultimo, separandoli ogni volta che trova il newline (\n), ovvero se il file è strutturato così:
    testoriga1\n (\n ovviamente nel txt non lo vedi ma c'è :2:
    testoriga2\n
    testoriga3\n
    testoriga4\n
    .......
    .......
    testorigan\n
    con il comando file ti si creera' un array che sarà così strutturato:
    $textarray[0]=testoriga1(+il simbolo di a capo che non devi chiedermi qual'è XD)
    $textarray[1]=testoriga2
    ......
    ......
    $textarray=testorigan
    infatti per ovviare al problema di prima che ti sballava la visualizzazione abbiam dovuto eliminare tutti gli \n presenti nel testo che parte dalla textarea ( $text=str_replace("\n", " ", $text); ).
    oh, non voglio fare il professorino eh 😉 non ne sono all'altezza...
    ritengo giusto che tu capisca cosa stai facendo, magari ti potrebbe servire in futuro 😉
    @markez said:
    si puo fare in modo che l'acapo sia riportato nelle news?
    niente paura 😄 il problema si risolve facilmente, modifica i file per come di seguito:
    Control_panel.php
    [php].........
    ........
    $text=$_REQUEST["text"];
    $text=str_replace("\n", "", $text); //** riga da modificare */
    if ($text!="")
    ......
    .......
    [/php]

    news.php
    [php].....
    .....
    while($i>=0)
    {
    $string=substr($textarray*, 0,-1);
    list($data, $text)=explode("@", $string);
    $text=str_replace("", "<br>", $text); //** riga da aggiungere */
    echo '<tr valign=center>';
    .....
    .....[/php]

    @markez said:

    e mi chiedevo "se nn era troppo sbattimento" cosa dovrei fare per iserire un campo Titolo nell form e riportarlo come titolo all inizio delle news
    non ho ben capito, intendi qualcosa come il NEWS che già ti appare quando vedi le news o altro??

    @markez said:

    giuro che poi non ti rompo piu le palle:D!

    ma figurati XD
    per me vale come esercitazione, le news io me le gestisco con Db, pertanto ora ho trovato anche come farle da txt 😉