Problema dati in file di testo

Angioletto85

Nuovo Utente
10 Feb 2008
1
0
0
Salve!
Spiego subito che cosa sto realizzando e qual è il mio problema...
Sto realizzando uno script dove gli utenti possono inviare un messaggio, tramite un form. I messaggi vengono memorizzati in un file di testo e tutti i campi sono separati da una virgola ", ". I campi che vengono memorizzati su message.php sono: nickname, messaggio, data, IP e validazione (0=da validare e 1=se validato).
Fino a qui tutto funziona alla perfezione (almeno credo..). C'è un altro file, show_message.php, che dovrebbe far apparire i messaggi (NICKNAME: MESSAGGIO).
Questo è il codice di show_message.php, che ho costruito io... :crying: prendendo spunto da diversi tutorials:
PHP:
<?php
include("admin/config.php");

$apertura = fopen($mess_file, 'r');
$dimensione = filesize($mess_file);
$contenuto = @fread($apertura, $dimensione);
$capo = chr(13);
$controllo = explode($capo, $contenuto);
$count = count($controllo);
$totale = "0";
for ($messaggio = "0"; $messaggio < $count; $messaggio++) {
$messaggi = $controllo[$messaggio];
$array = explode(", ", $messaggi);
if ($approva == "Si" AND $array[4] == "0") {
} elseif ($array[1] != "") {
$totale++;
}
}
$chiusura = fclose($apertura);

$divisione = $totale/$per_pagina;
$virgola = explode(".", $divisione);
$pagine = $virgola[0]+1;

if ($pag == 1 OR !$pag) {
$pagina = 0;
} else {
$pagina = $pag-1;
}
$ultimo_mess = $pagina*$per_pagina;
if ($pagina == 0) {
$ultima_pag = $per_pagina*1;
} else {
$ultima_pag = $per_pagina*$pag;
}

for ($messaggio = $ultimo_mess; $messaggio < $ultima_pag; $messaggio++) {
$messaggi = $controllo[$messaggio];
$array = explode(", ", $messaggi);

if ($array[1] == "") {
} else {
if ($approva == "Si" AND $array[4] == "0") {
} else {

$array[0] = str_replace("%&", ",", $array[0]);
$array[1] = str_replace("%&", ",", $array[1]);
$array[0] = str_replace("<", "&lt;", $array[0]);
$array[0] = str_replace(">", "&gt;", $array[0]);
$array[1] = str_replace(";:;", "<", $array[1]);
$array[1] = str_replace(":;:", ">", $array[1]);
$array[1] = stripslashes($array[1]);

echo "<b>$array[0]:</b>&nbsp;$array[1]&nbsp;~&nbsp;";
}
}
}

?>
Con questo codice mi mostra soltanto il primo messaggio, così come dovrebbe apparire, ma uno soltanto... cioè l'ultimo inviato.
Spero che qualcuno possa aiutarmi a capire cosa c'è che nn và... io ce l'ho messa tutta! :dipser:
 
Ultima modifica:

Discussioni simili