In een te maken site wil ik een gastenboek plaatsen.

De invoer pagina bestaat o.m. uit de volgende code:
<form action="plaats.php" method="post" name="bericht" id="bericht">
<table width="300" border="0">
<tr>
<td width="55" align="right" valign="top">Naam:</td>
<td width="235"><input name="naam" type="text" id="naam"></td>
</tr>
<tr>
<td align="right" valign="top">E-mail:</td>
<td><input name="email" type="text" id="email"></td>
</tr>
<tr>
<td align="right" valign="top">Bericht:</td>
<td><textarea name="bericht" wrap="VIRTUAL" id="bericht"></textarea></td>
</tr>
<tr>
<td align="right" valign="top"><input type="reset" name="Reset" value="Reset"></td>
<td><input name="submit" type="submit" id="submit" value="Verstuur"></td>
</tr>
</table>
</form>
Vervolgens gaat de invoer via plaats.php naar de site.

<?

$datum = date("d.m.y - H:i"); //Pak datum + tijd
$bericht = htmlentities($bericht); // bekijk in het bericht naar htmlcodes
$bericht = nl2br($bericht);
$bericht = stripslashes($bericht);
// kies het bestand waar de berichten in komen te staan
$file = "gastenboek.php";
// open het bestand
$fopenr = fopen ($file, "r");
// sla de inhoud op om de eerder toegevoegde berichten
// te onthouden en te herschrijven onder het nieuwe bericht
$msgs = fread ($fopenr, filesize ($file));
// open de file nogmaals maar dan nu om er in te schrijven
$fopenw = fopen($file, "w+");
// schrijf nieuwe bericht + alle oude in $file
fwrite($fopenw, "
\n\n
<table width=\"100%\" border=\"0\">
<tr>
<td>$naam</td>
</tr>
<tr>
<td>$datum</td>
</tr>
<tr>
<td>$bericht</font></td>
</tr>
</table><br>
$msgs
");
// sluit het bestand
fclose($fopenw);
// sluis bezoeker door naar index.php
?>
<META HTTP-EQUIV="Refresh" CONTENT="0;URL=include.php">

Het probleem si dat de tekst niet in gastenboek php terecht komt. chmod=777, dus daar kan het volgens mij niet aan liggen. Wie maakt een einde aan mijn urenlange gepuzzel?
Maak eens gebruik van debugging!
<?php

fwrite($fopenw, "
\n\n
<table width=\"100%\" border=\"0\">
<tr>
<td>$naam</td>
</tr>
<tr>
<td>$datum</td>
</tr>
<tr>
<td>$bericht</font></td>
</tr>
</table><br>
$msgs
") or die('Kan niet worden geschreven!');

# Doe dat vaker, kan je beter je fouten achterhalen!!


?>
Jim schreef op 23.10.2005 22:19
Maak eens gebruik van debugging!
<?php

fwrite($fopenw, "
\n\n
<table width=\"100%\" border=\"0\">
<tr>
<td>$naam</td>
</tr>
<tr>
<td>$datum</td>
</tr>
<tr>
<td>$bericht</font></td>
</tr>
</table><br>
$msgs
") or die('Kan niet worden geschreven!');

# Doe dat vaker, kan je beter je fouten achterhalen!!


?>


In PHP Designer 2005 maak ik gebruik van debug en run. Daar krijg ik geen foutmelding. Want wat schiet ik ermee op als er staat dat er niet kan worden geschreven en ik vervolgens nog niet weet waarom?
Als je het allemaal al zo goed weet, ga dan niet hier de boel lastig lopen vallen man!

Er word je een manier gegeven waarmee je dit probleem kan oplossen en jij gaat dat dan weer zwart lopen maken.

Je vraagt "Wie maakt een einde aan mijn urenlange gepuzzel?". Van mij betreft mag je het lekker zelf gaan oplossen! Ik ga het iig niet proberen...
Bienze,
Dank U!

"Help, het werkt niet, maar geef maar geen tip's hoor, wil ik toch niets mee doen!!"
Hoi Geurt,

je fout zit volgens mij hier:

<?php
// kies het bestand waar de berichten in komen te staan
$file = "gastenboek.php";
// open het bestand
$fopenr = fopen ($file, "r");
// sla de inhoud op om de eerder toegevoegde berichten
// te onthouden en te herschrijven onder het nieuwe bericht
$msgs = fread ($fopenr, filesize ($file));
// open de file nogmaals maar dan nu om er in te schrijven
$fopenw = fopen($file, "w+");
// schrijf nieuwe bericht + alle oude in $file
?>

Je kunt een file niet "nogmaals openen" zonder hem eerst met fclose () gesloten te hebben.

Succes!
OK Jan, hartelijk bedankt. En anderen: ik meende het niet zo negatief als jullie het uitleggen. Als dat zo overkwam: excuus.
Ach Geurt ik kan je volgen dat je helemaal radeloos bent na uren te turen en kijken en het dan niet kunnen vinden.
Maar ja ieder vogeltje zingt zoals het gebekt is dus voor je volgende probleem gewoon weer komen en dan effies tot 10 tellen en dan je verhaal schrijven :-0)

Suc6 met alles!!
Jan Koehoorn schreef op 23.10.2005 23:08
Hoi Geurt,

je fout zit volgens mij hier:

<?php
// kies het bestand waar de berichten in komen te staan
$file = "gastenboek.php";
// open het bestand
$fopenr = fopen ($file, "r");
// sla de inhoud op om de eerder toegevoegde berichten
// te onthouden en te herschrijven onder het nieuwe bericht
$msgs = fread ($fopenr, filesize ($file));
// open de file nogmaals maar dan nu om er in te schrijven
$fopenw = fopen($file, "w+");
// schrijf nieuwe bericht + alle oude in $file
?>

Je kunt een file niet "nogmaals openen" zonder hem eerst met fclose () gesloten te hebben.

Succes!


Wederom toppies Jan want ik zag hem 1-2-3 nog effies niet en toen ik jouw oplossing zag dacht ik van YES das waar ook ;-0)
Groetjes, lissy

Reageren