Gastenboek kan niet op .txt schrijven
dit is de code:
<html>
<head>
<title>Gastenboek</title>
</head>
<body>
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$bestandsnaam = "gastenboek.txt";
if (file_exists($bestandsnaam)){
$fp = fopen ("gastenboek.txt", "r");}
?>
$bestandsnaam = "gastenboek.txt";
if (file_exists($bestandsnaam)){
$fp = fopen ("gastenboek.txt", "r");}
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
if (!empty($_POST)){
$bestandsnaam="gastenboek.txt";
fopen ($bestandsnaam, "a+");
fwrite ($fp, $_POST ["datum"]);
fwrite ($fp, $_POST ["\n"]);
fwrite ($fp, $_POST ["naam"]);
fwrite ($fp, $_POST ["\n"]);
fwrite ($fp, $_POST ["email"]);
fwrite ($fp, $_POST ["\n"]);
fwrite ($fp, $_POST ["bijdrage"]);
fwrite ($fp, $_POST ["\n"]);
fclose ($fp);
echo "De bijdrage is opgeslagen in het gastenboek!";
}
?>
if (!empty($_POST)){
$bestandsnaam="gastenboek.txt";
fopen ($bestandsnaam, "a+");
fwrite ($fp, $_POST ["datum"]);
fwrite ($fp, $_POST ["\n"]);
fwrite ($fp, $_POST ["naam"]);
fwrite ($fp, $_POST ["\n"]);
fwrite ($fp, $_POST ["email"]);
fwrite ($fp, $_POST ["\n"]);
fwrite ($fp, $_POST ["bijdrage"]);
fwrite ($fp, $_POST ["\n"]);
fclose ($fp);
echo "De bijdrage is opgeslagen in het gastenboek!";
}
?>
<h2>Gastenboek</h2>
<form name="form1" method="post">
Naam : <input type="text" name="naam"><br>
E-mail : <input type="text" name="email"><br>
Bijdrage : <textarea cols="40" rows="6" name="bijdrage"></textarea><br>
<input type="hidden" name="datum"
value="">
<hr>
<input type="submit" value="Bijdrage verzenden">
<input type="reset" name="reset" value="Velden leegmaken"><br>
</form>
</body>
</html>
Alvast bedank
stukken makkelijker - overzichtelijker
volgens mij licht de probleem hier
if (!empty($_POST))
dat moet je koppelen aan een veldnaam $_POST['veldnaam']
wat is een veldnaam in dit geval?
Databases zijn veel eenvoudiger dan uw manier. Ik denk dat je er sneller weg mee zal zijn, dan met wat je nu aan het proberen bent.
ja, maar we moesten het van onze leren ook leren met .txt
Controleren of een post is gedaan doe je met if($_SERVER['REQUEST_METHOD'] == 'POST').
Verder is het inderdaad zo dat als je geen database wilt gebruiken je beter niet op deze manier data kan opslaan.
Een betere manier is xml.
En waar komt $_POST["\n"] vandaan?
Misschien is het inderdaad handig dat je eerst gewoon de basis leert (met nonsens) en dat je later betere code schrijft.
Toevoeging op 18/12/2010 15:09:55:
alle fouten zijn er nu uit gehaald en het werkt gewoon goed hoor =P
oja, $_POST["\n"] hoort gewoon "\n" te zijn