Mi chiedevo se poteste spiegarmi come inserire, tramite php, news velocemente nel proprio sito. Ci sono degli script confezionati ma non li riesco ad usare come posso fare?
Printable View
Mi chiedevo se poteste spiegarmi come inserire, tramite php, news velocemente nel proprio sito. Ci sono degli script confezionati ma non li riesco ad usare come posso fare?
quali sono gli script che nn riesci ad usare??
ciao ^__^
fai una tabella, nella quale metti un ciclo in php che visualizza una riga alla volta nel database.. naturalmente le news devono essere scritte nel db, non nella pagina.. è anke più comodo.. se vuoi fare così diccelo che t spieghiamo...
ciao
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à:
Adesso è importante che tu nella news non inserisca il simolo | perchè manderebbe in tilt il database.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";
}
}
?>
Vediamo ora il file che ti servirà per visualizzare i titolo della news:
Adesso la stringa all'interno dell'echo potrei modificarla come meglio trovi, l'importante è che inserisci sempre il simbolo / prima degli apici.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";
}
}
?>
Vediamo ora come verrà il file per la visualizzazione della notizia da chiamarsi vedi_news.php
Com potrai osservare è simile al codice precedente, solo che richiam sia l'id attraverso GET e poi richiamo la notizia tramite include.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>";
}
}
?>
Adesso manca solo il form per inviare la news, e sara di questo genere:
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.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>
Spero di esserti stato d'aiuto
ciaoooo