Ciao ragazzi,
prima di tutto ben tornati dalle vostre vacanze, secondo veniamo al dunque!
Attraverso un form mi inviano dei messaggi (una sorta di bacheca) i quali vengono memorizzati in un file .txt e da questo li stampo a video su una pagina. Tutto ok.
Il problema mi si presenta nel momento in cui qualcuno scrive delle parole non proprio carine.
2 penso potrebbero essere le soluzioni:
- o trovo un sistema per cercare di bloccare a monte l'invio di messaggi con tutte queste belle paroline;
- o prima di stamparle a video mi leggo i messaggi e cancello quelli offensivi.
Nel primo caso, non ho idea di come si possa fare.
Nel secondo caso, invece, ho pensato bene di crearmi una sorta di pagina di gestione della "bacheca" nella quale visualizzo i messaggi e o li modifico o li cancello
Ovviamente, però, nella pagina in cui stampo a video i messaggi, questi rimangono finchè non intervengo io.
Io ho:
- messaggi.txt (file di testo in cui vengono memorizzati i messaggi inviati dagli utenti)
- bacheca.php (dove stampo a video i messaggi)
- gestione_bacheca.php (dove visualizzo, in area riservata, i messaggio con la possibilità di modificarli o cancellarli)
- modifica_riga.php (file che mi serve per modificare ogni singolo messaggio)
- cancella_riga.php (file che mi serve per cancellare ogni singolo messaggio)
- aggiorna_riga.php (file richiamato dal file modifica_riga.php che mi serve per aggiornare ogni singolo messaggio)
Come posso fare per aggiungere un comando es. "Pubblica" nel file gestione_bacheca.php in modo da creare un nuovo file .txt, con solo la riga corrispondente e le altre che chiaramente vengono aggiunte, da usare per stampare a video i messaggi, diciamo, puliti?
Vi ringrazio anticipatamente
Vi allego i codici dei file:
MESSAGGI.TXT
1|ORIGINE|NOME|EMAIL|MESSAGGIO|
BACHECA.PHP
Codice PHP:
<?php
$contatore = 0;
$textfile = fopen("public/bacheca/db/messaggi.txt", "r");
while ($rigafile = fgets($textfile,1024)) {
$campiriga = explode("|", $rigafile);
echo "- $campiriga[1]-$campiriga[4]-[b]$campiriga[2][/b]
";
}
fclose($textfile);
?>
GESTIONE_BACHECA.PHP
Codice PHP:
<?php
$contatore = 0;
$textfile = fopen("db/messaggi.txt", "r");
while ($rigafile = fgets($textfile,1024)) {
$campiriga = explode("|", $rigafile);
echo "<tr><td>$campiriga[0]</td><td>$campiriga[2]</td><td>$campiriga[4]</td><td>$campiriga[1]</td><td>$campiriga[3]</td><td><a href=\"modifica_riga.php?id=$campiriga[0]\">Mod</a> | <a href=\"cancella_riga.php?id=$campiriga[0]\">Canc</a></td></tr>";
}
fclose($textfile);
?>
MODIFICA_RIGA.PHP
Codice PHP:
<?php
$id = $_GET["id"];
$textfile = fopen("db/messaggi.txt", "r");
while ( $rigafile = fgets($textfile,1024)) {
$campiriga = explode("|", $rigafile);
$idriga = $campiriga[0];
if ($idriga == $id) {
$cid = $campiriga[0];
$ccorso = $campiriga[1];
$cnome = $campiriga[2];
$cemail = $campiriga[3];
$cmessaggio = $campiriga[4];
}
}
fclose($textfile);
?>
...
...
...
<form method="post" action="aggiorna_riga.php">
<div align="left"><strong class="Stile3">Idriga[/b]
<input name="id" type="text" class="Stile10" value="<?=$cid?>" size="5">
<span class="Stile3">[b]Origine[/b]</span>
<input name="origine" type="text" class="Stile4" value="<?=$ccorso?>" size="60">
<strong class="Stile3">Nome[/b]
<input name="nome" type="text" class="Stile4" value="<?=$cnome?>" size="25">
<strong class="Stile3">Email[/b]
<input name="email" type="text" class="Stile4" value="<?=$cemail?>" size="30">
<strong class="Stile3">Messaggio[/b]
<textarea name="messaggio" cols="60" class="Stile4"><?=$cmessaggio?></textarea>
<input type="submit" value="Modifica" name="submit">
</div></form>
CANCELLA_RIGA.PHP
Codice PHP:
<?php
$utente = $_GET["id"];
$textfile = fopen("db/messaggi.txt", "r");
$textfile_new = fopen("db/messaggi_new.txt", "a");
while ($rigafile = fgets($textfile,1024)) {
$campiriga = explode("|", $rigafile);
$idriga = $campiriga[0];
if ($idriga <> $utente) {
fwrite($textfile_new, $rigafile);
}
}
fclose($textfile);
fclose($textfile_new);
unlink("db/messaggi.txt");
rename("db/messaggi_new.txt","db/messaggi.txt");
?>
AGGIORNA_RIGA.PHP
Codice PHP:
<?php
$id = $_POST["id"];
$textfile = fopen("db/messaggi.txt", "r");
$textfile_new = fopen("db/messaggi_new.txt", "a");
while ($rigafile = fgets($textfile,1024)) {
$campiriga = explode("|", $rigafile);
$idriga = $campiriga[0];
if ($idriga == $id) {
$ccorso = $_POST["corso"];
$cnome = $_POST["nome"];
$cemail = $_POST["email"];
$cmessaggio = $_POST["messaggio"];
$nuovariga = "$idriga|$ccorso|$cnome|$cemail|$cmessaggio|\n";
fwrite($textfile_new, $nuovariga);
} else {
fwrite($textfile_new, $rigafile);
}
}
fclose($textfile);
fclose($textfile_new);
unlink("db/messaggi.txt");
rename("db/messaggi_new.txt","db/messaggi.txt");
?>
Se siete arrivati fin qui significa che avete avuto molta pazienza e forse ho qualche speranza di avere un vostro aiuto.
Grazie ancora,
Cicileu