Ciao,
ho un file txt dove inserisco dei dati:
id|data|corso|nome|email|messaggio
poi ho un file bacheca dove stampo ogni riga di quel file:
Codice PHP:
<?php
function myfragment($str, $n, $delim='[...]')
{
$len = strlen($str);
if ($len > $n) {
preg_match('/(.{' . $n . '}.*?)b/s', $str, $matches);
return rtrim($matches[1]) . $delim;
}
else
return $str;
}
function strSelect( $myString, $maxLength ) {
$out = "";
$s = explode( " ",$myString );
for( $i = 0, $cs = count( $s ); $i < $cs; $i++ ) {
$out .= $s[$i]." ";
if( isSet( $s[$i+1] ) && ( strlen( $out ) + strlen( $s[$i+1] ) ) > $maxLength ) {
break;
}
}
return rtrim( $out );
}
$common = file('public/bacheca/db/stopwords.txt');
$total = count($common);
for ($x=0; $x < $total; $x++)
$common[$x] = '/'.trim(strtolower($common[$x])).'/i';
$contatore = 0;
$textfile = fopen("public/bacheca/db/messaggi.txt", "r");
while ($rigafile = fgets($textfile,1024))
{
$campiriga = explode("|", $rigafile);
$messaggioCensurato= preg_replace($common, 'XXXX', $campiriga[5]);
$corso_corto = strSelect($campiriga[2],40)."...";
$messaggio_link = myfragment($messaggioCensurato,15,'[[url="#"]...dettagli[/url]]');
echo "<font color=#ff9900>-</font>$campiriga[0]-$campiriga[1]-$corso_corto-".stripslashes($messaggio_link)."-[b]$campiriga[3][/b]
";
}
fclose($textfile);
?>
infine ho il file "messaggiosingolo", dove visualizzo il singolo messaggio o meglio dovrei visualizzarlo:
Codice PHP:
<?php
$id = $_GET["id"];
$textfile = fopen("public/bacheca/db/messaggi.txt", "r");
while ( $rigafile = fgets($textfile,1024)) {
$campiriga = explode("|", $rigafile);
$idriga = $campiriga[0];
if ($idriga == $id) {
$cid = $campiriga[0];
$cdata = $campiriga[1];
$ccorso = $campiriga[2];
$cnome = $campiriga[3];
$cemail = $campiriga[4];
$cmessaggio = $campiriga[5];
}
}
fclose($textfile);
?>
...
...
...
<span class="Stile3">[b]Data[/b]</span>
<input name="data" type="text" class="Stile4" value="<?=$campiriga[1]?>" size="15">
<span class="Stile3">[b]Corso[/b]</span>
<input name="corso" type="text" class="Stile4" value="<?=$campiriga[2]?>" size="75">
<strong class="Stile3">Nome[/b]
<input name="nome" type="text" class="Stile4" value="<?=$campiriga[3]?>" size="25">
<strong class="Stile3">Messaggio[/b]
<textarea name="messaggio" cols="60" class="Stile4"><?=$campiriga[5]?></textarea>
Il problema è che nel file messaggiosingolo.php mi stampa sempre e solo l'ultimo messaggio, ossia l'ultima riga.
Sto impazzendo, vi prego trovatemi l'errore.
Grazie a tutte le anime pie,
cicileu