Gastenboek
Ben net begonnen met php, wil graag een gastenboek maken waar er nieuwtjes gepost kunnen worden en dat die op iedere pagina in een div te zien zijn.
Heb een simpel script gevonden voor het gastenboek, wanneer ik het form invul word het niet weer gegeven.
Dit is me PHP script
<SCRIPT language="php">
$uitvoerbestand = "gasten.htm";
$bestandsindex = fopen($uitvoerbestand,"a");
fwrite($bestandsindex, "<TR><TD>$gastnaam</TD><TD><A href=\"mailto:$gastemail\">$gastemail</A></TD>");
fwrite($bestandsindex, "<TD>$gastreactie</TD></TR>");
fclose($bestandsindex);
</SCRIPT><head>
<META http-equiv="refresh" content="2;url=gasten.htm">
</head>
<font face="Arial" size="4">
Even geduld a.u.b. uw reactie wordt toegevoegd aan het gastenboek ...</font>
De extensie moet wel .php zijn. Je kunt het zo instellen dat html documenten ook PHP parseren, maar het is overbodig vind ik.
http://phphulp.wouterj.nl/script.php
Maar ik moet wel toegeven dat dit niet helemaal de manier is hoe het hoort.
Allebei fout, de script tag kan wel gebruikt worden voor PHP code: Maar ik moet wel toegeven dat dit niet helemaal de manier is hoe het hoort.
Gewijzigd op 13/07/2012 00:11:35 door Wouter J
Waarom maak je geen gebruik van een database? Dat houdt alles netter en ook sneller volgens mij.
Gewijzigd op 14/07/2012 21:21:30 door nicky de maeyer
Nicky de maeyer op 14/07/2012 21:20:32:
ben ook juist aan gastenboek bezig maar zit ook een foutje in.
Succes dan maar met het oplossen daarvan...
Ben nog steeds druk bezig om een goede oplossing te vinden! Maar in ieder geval heel erg bedankt voor de reacties!
Als je wil ...
Dit is een gastenboek, met een bestand.
"gasten.htm" eerst aanmaken (leeg is goed) !
Je kan je voorstellen dat een database interessanter is; het biedt veel meer mogelijkheden.
Maar ik denk dat dit wel functioneert.
Er is geen bescrerming tegen spam; geen "edit" of "delete" knop ...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
$file = 'gasten.htm'; // file waar de records worden geschreven/gelezen. Maak deze file eerst aan!
$messages = file_get_contents($file);
if ($_SERVER['REQUEST_METHOD'] == 'POST'
&& isset($_POST['username'], $_POST['email'], $_POST['message'])
) {
$now = date_create('now'); // genereert een datetime object
$record = '
<div class="record">
<span class="username">' . htmlentities($_POST['username']) . '</span>
<span class="email">' . htmlentities($_POST['email']) . '</span>
<span class="time">' . $now->format('d/m/Y H:i:s') . '</span>
<div class="message">' . nl2br(htmlentities($_POST['message'])) . '</div>
</div>';
file_put_contents(
$file,
$messages . $record // ofwel zet je $record voor $messages
);
// we willen niet dat de POST actief blijft. Hiervoor hebben we header('location...')
header('location: index.php'); //naar de juiste plaats sturen ...
}
?>
<html>
<head>
<style>
.record {
border: 1px solid grey;
margin: 2px;
padding: 3px;
}
</style>
</head>
<body>
<form action="" method="post">
<input name="username"> Naam <br>
<input name="email"> e-mail <br>
<textarea name="message"></textarea> <br>
<input type="submit" value="GO">
</form>
<div id="messages"><?php echo $messages; ?></div>
</body>
</html>
$file = 'gasten.htm'; // file waar de records worden geschreven/gelezen. Maak deze file eerst aan!
$messages = file_get_contents($file);
if ($_SERVER['REQUEST_METHOD'] == 'POST'
&& isset($_POST['username'], $_POST['email'], $_POST['message'])
) {
$now = date_create('now'); // genereert een datetime object
$record = '
<div class="record">
<span class="username">' . htmlentities($_POST['username']) . '</span>
<span class="email">' . htmlentities($_POST['email']) . '</span>
<span class="time">' . $now->format('d/m/Y H:i:s') . '</span>
<div class="message">' . nl2br(htmlentities($_POST['message'])) . '</div>
</div>';
file_put_contents(
$file,
$messages . $record // ofwel zet je $record voor $messages
);
// we willen niet dat de POST actief blijft. Hiervoor hebben we header('location...')
header('location: index.php'); //naar de juiste plaats sturen ...
}
?>
<html>
<head>
<style>
.record {
border: 1px solid grey;
margin: 2px;
padding: 3px;
}
</style>
</head>
<body>
<form action="" method="post">
<input name="username"> Naam <br>
<input name="email"> e-mail <br>
<textarea name="message"></textarea> <br>
<input type="submit" value="GO">
</form>
<div id="messages"><?php echo $messages; ?></div>
</body>
</html>
... en uiteraard verder stylen. Voel je ook vrij om de HTML anders in te delen.
Gewijzigd op 17/07/2012 12:37:17 door Kris Peeters
Kris Peeters op 17/07/2012 12:35:32:
Nog steeds een gastenboek zonder database?
Als je wil ...
Dit is een gastenboek, met een bestand.
"gasten.htm" eerst aanmaken (leeg is goed) !
Je kan je voorstellen dat een database interessanter is; het biedt veel meer mogelijkheden.
Maar ik denk dat dit wel functioneert.
Er is geen bescrerming tegen spam; geen "edit" of "delete" knop ...
... en uiteraard verder stylen. Voel je ook vrij om de HTML anders in te delen.
Als je wil ...
Dit is een gastenboek, met een bestand.
"gasten.htm" eerst aanmaken (leeg is goed) !
Je kan je voorstellen dat een database interessanter is; het biedt veel meer mogelijkheden.
Maar ik denk dat dit wel functioneert.
Er is geen bescrerming tegen spam; geen "edit" of "delete" knop ...
... en uiteraard verder stylen. Voel je ook vrij om de HTML anders in te delen.
Dankje Kris! Ik zit zelf steeds meer te twijfelen wat ik het beste kan doen! De site is nl. niet voor mij en iemand moet dit makkelijk kunnen onderhouden (die totaal geen verstand hier van heeft) Heb jij evt nog een idee hierover?
Ik heb wel een idee, GEBRUIK EEN DATABASE!
Chi Lion op 17/07/2012 16:05:21:
Ik heb wel een idee, GEBRUIK EEN DATABASE!
Waar kan ik dan een GOEDE tut vinden over het gebruik van een database?