Ciao, anche io in passato avevo lo stesso problema. L'unica soluzione è il php: Puoi creare una pagina dove compariranno i titoli delle news, una dove comparirà la news, uno per scrivere nel database e una per inviare la news (tramite form).
La questione è abbastanza semplice:
Innanzi tutto crea un file che si chiama db_news.txt, e li verranno archiviati i titoli, l'id, e la data.
Poi crea una cartella intitolata news e li dentro verrà automaticamente generato un file chiamato news_$id.txt ($id indica la variabile dell'id della news) dove verrà visualizzata la news.
Quindi, il file per scrivere nel database da chiamarsi inserisci_news.php sarà:
Codice:
<?php
//indico le variabili
$data=date("d/m/Y");
$testo=@$_POST[testo];
$titolo=@$_POST[titolo];
$fpxk=fopen("id_news.txt",r);
$fgt=fgets($fpxk);
fclose($fpxk);
$ikd=$fgt+1;
$fpxs=fopen("id_news.txt",w);
fputs($fpxs,$ikd);
fclose($fpxs);
// qui rendo obbligatori i campi testo e titolo
if(($testo=="") || ($titolo=="")){
echo " invio fallito";
}else{
// qui facci in modo che il testo vada accapo quando lo indichi nel form
$testo=str_replace("\r","<br>",$testo);
$testo=str_replace("\n","",$testo);
//qui faccio in modo ch nella notizia non compaiano i simboli / in prossimità degli apici.
$testo=stripslashes($testo);
$titolo=stripslashes($titolo);
$st="$fgt|$data|$testo|$titolo|\n";
$i_news=fopen("./news/news_$fgt.txt",w);
fputs($i_news,$testo);
fclose($i_news);
$op_db=fopen("db_news.txt",a);
$fpx=fputs($op_db,$st);
fclose($op_db);
if($fpx){
echo " invio riuscito";
}else{
echo "invio fallito";
}
}
?>
Adesso è importante che tu nella news non inserisca il simolo | perchè manderebbe in tilt il database.
Vediamo ora il file che ti servirà per visualizzare i titolo della news:
Codice:
<?php
//richiamiamo il database
$op_db=file("db_news.txt");
//qui indico che le ultime news inserite dovranno comparire per prime e subito dopo richiamo le variabili
$op_db=array_reverse($op_db);
$cnt=count($op_db);
foreach($op_db as $k => $val){
if($val!=""){
list($id,$data,$testo,$titolo)=explode("|",$val);
echo "<a href=\"vedi_news.php?id=$id\">$titolo</a>\n";
}
}
?>
Adesso la stringa all'interno dell'echo potrei modificarla come meglio trovi, l'importante è che inserisci sempre il simbolo / prima degli apici.
Vediamo ora come verrà il file per la visualizzazione della notizia da chiamarsi vedi_news.php
Codice:
<?php
$id=$_GET[id];
$op_db=file("db_news.txt");
$op_db=array_reverse($op_db);
foreach($op_db as $kx => $val){
list($id,$data,$testo,$titolo)=explode("|",$val);
if($k==$id){
echo "
<table align=\"center\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tr><td>Data: $data - $titolo<hr>";
include("./news/news_$id.txt");
echo "</td></tr></table><br>";
}
}
?>
Com potrai osservare è simile al codice precedente, solo che richiam sia l'id attraverso GET e poi richiamo la notizia tramite include.
Adesso manca solo il form per inviare la news, e sara di questo genere:
Codice:
<form name="PostTopic" action="inserisci_news.php" method="post" enctype="multipart/form-data">
<table cellspacing="2" cellpadding="2" border="0"><tr>
<td>Titolo:<input type="text" size="30" maxlength="40" name="titolo"></td>
</tr><tr>
<td>Testo:<textarea cols="42" rows="10" ID="Message" name="testo"></textarea></td></tr></table>
<input type="submit" value="Invia"> <input type="reset" value="Resetta" />
</form>
E il gioco è fatto! Non sono sicuro che funzioni perchè non l'ho provato in locale, ma dovrebbe andare. Se hai qualche dubbio o non riesci a fare qualcosa scrivilo pure qui.
Spero di esserti stato d'aiuto
ciaoooo