op 1 pagina heb ik meerdere artikelen en onder elk artikel laat ik zien hoeveel reacties er al op zijn geweest met de volgende code:
<?
// bestand waar de berichten in komen te staan
$file = "reactie.txt";
// maximaal aantal berichten wat bewaard wordt
$max = 25;
// escapefunctie
function s($val) {
$val = nl2br(htmlspecialchars($val));
return get_magic_quotes_gpc() ? stripslashes($val) : $val;
}
// kijken of het bestand reactie.txt al bestaat
if(file_exists($file)) {
// zo ja, includen
include ($file);
} else {
// zo niet, maak dan de array $messages bekend
$messages = array();
}
// kijken of er wel berichten zijn...
if(count($messages) > 0) {
echo "<a href='reactiesXX.php' target='_blank'>". count($messages) ." reactie(s)</a>";
} else {
echo "<a href='reactiesXX.php' target='_blank'>Geen reacties!</a>";
}
?>
en linkt naar een reactiepagina reactieXX.php (zie hieronder)
<html>
<body>
<form method=post action="">
<table>
<tr>
<td>Naam</td>
<td><input type=text maxlength=50 size=30 name=naam></td>
</tr>
<tr>
<td>E-mail</td>
<td><input type=text maxlength=100 size=30 name=email></td>
</tr>
<tr>
<td valign=top>Bericht</td>
<td><textarea name=bericht cols="40" rows="10"></textarea></td>
</tr>
<tr>
<td colspan=2><input type=submit name=submit value=Reageer!></td>
</tr>
</table>
<br><br>
<?
// bestand waar de berichten in komen te staan
$file = "reactie.txt";
// maximaal aantal berichten wat bewaard wordt
$max = 25;
// escapefunctie
function s($val) {
$val = nl2br(htmlspecialchars($val));
return get_magic_quotes_gpc() ? stripslashes($val) : $val;
}
// kijken of het bestand reactie.txt al bestaat
if(file_exists($file)) {
// zo ja, includen
include ($file);
} else {
// zo niet, maak dan de array $messages bekend
$messages = array();
}
// kijken of er gepost is (en de naam en het bericht niet leeg is)
if(!empty($_POST["submit"]) && !empty($_POST["naam"]) && !empty($_POST["bericht"])) {
// nieuwe bericht toevoegen aan de berichten
array_unshift ($messages, array(s($_POST["naam"]), s($_POST["email"]), s(trim($_POST["bericht"])), date("d-m-Y / H:i")));
// de teveel berichten verwijderen
foreach($messages as $key => $val) {
if($key < $max) {
$temp[$key] = $val;
}
}
unset($messages);
$messages = $temp;
// en wegschrijven maar
$hndl = fopen ($file,"w");
fputs($hndl, "<");
fputs($hndl, "? n");
/// berichten wegschrijven
foreach($messages as $id => $msg) {
fputs($hndl, "$messages[$id] = array("" . implode('","', $msg) ."");n");
}
fputs($hndl, " ?");
fputs($hndl, ">");
fclose ($hndl);
}
// kijken of er wel berichten zijn...
if(count($messages) > 0) {
echo "<table width=400>n";
} else {
echo "Geen berichten aanwezig!";
exit;
}
// tot slot de meldingen weergeven
for($i = 0; $i < count($messages); $i++ ) {
list($naam, $email, $bericht, $datum) = $messages[$i];
?>
<tr>
<td nowrap>
<a href='mailto:<?=$email?>'>
<b><?=$naam?></b></a>
zei op <?=$datum?></small>:
</td>
</tr>
<tr>
<td>
<?=$bericht?>
</td>
</tr><tr><td height=1 bgcolor=black></tr>
<?
}
?>
</table>
</body>
</html>