• User

    problema php scrittura e lettura file

    ragazzi nel mio sito ho un blocco dove si inserisce una notizia in una tex-area una volta che si sottomette dovrebbe comparire in un altro blocco dove sono racchiuse le notizie. fino a poco tempo fa funzionava ora per far comparire la notizia devo aggiornare la pagina l'unica cosa che ho inserito negli ultimi tempi sono i div che racchiudono i codici prima era tutto tabellare

    questo è il codice dove inserisco la notizia
    <div class="blocco" align="center">
    <span class="style1" >::Nuova Notizia::</span>
    <div class="blocco-inner" align="center">
    <? //Inizio codice PHP
    $data= date("d-m G:i");
    //Recupero la variabile globale del primo numero
    $testo=htmlentities(trim($_POST['testo']));

    if ($testo!="") //Proseguo se almeno un numero è definito
    {
    $testo= $data . " " . $testo;

    $file ="notizie.txt";
    $testo = $testo . "\n" . "\n" . file_get_contents($file);
    $apriw = fopen ($file,"w") or die("Errore nell' apertura del file");

    fwrite($apriw,"$testo\n")or die("Errore nella scrittura del file");
    fclose($apriw);
    Header("Location: index.php");
    }
    ?>
    <form name="input" action="index.php" method="post" name="testo">

    <textarea rows="4" cols="18" name="testo"> </textarea>
    <br>
    <input type="submit" value="Submit">

    </form><br>
    </div></div>
    <br>

    e questo è il blocco dove si visualizzano tutte le notizie

    <div class="bloccogrande" align="center">
    <span class="style1" >::NOTIZIE::</span>
    <div class="bloccogrande-inner" align="center">

    <br>
    <div class="box">
    <div class="box-inner">

    <h3 align="left"> <?php

    if (!$p_file = fopen("notizie.txt","r")) {
    echo "Spiacente, file danneggiato";
    } else {
    for($i=0;$i<30;$i++)
    {
    $linea = fgets($p_file, 255);
    echo "$linea<BR>";
    }
    fclose($p_file);
    }
    ?>
    <h3> </div></div>
    <br><br>
    </div></div>


  • User Attivo

    Ciao fraie,
    non so esattamente cosa facesse prima lo script ma probabilemte il problema è nelle tre righe che hai inserito prima di aprire il codice php (<?). Se osservi lo script hai un redirect lato server (Header("Location: index.php");) che funziona solo se non invii output prima del comando. In altre parole ogni echo, print o semplice html deve essere sotto il comando header, altrimenti questo non funziona.

    Come prova, elimina il codice

    *** <div class="blocco" align="center">
    <span class="style1" >::Nuova Notizia::</span>
    <div class="blocco-inner" align="center">***

    facendo attenzione a non lasciare neanche uno spazio vuoto prima di <?: probabilmente risolvi. Ovviamente devi ristrutturare tutto l'output html...

    Facci sapere se, e come, risolvi!
    :ciauz: