Ik heb de volgende code:
Dit is het form: form.php
En wat het afhandelt: write.phpPHP Code:
<html><head>
<title>Titel</title>
</head>
<body>
<form action="write.php" method="post">
<p>Name:
<input type="text" name="name">
</p>
<p>Message
<textarea name="msg"></textarea>
<input type="submit" name="func" value="Write">
</p>
</form>
</body>
</html>
De input in het formulier wordt in het text bestand geschreven, echter als ik iets nieuws schrijf wordt het oude overschreven, terwijl ik dit wil bewaren. Hoe kan ik dit veranderen?PHP Code:
<?php
$content = "Name:".$_POST["name"]." Message:".$_POST["msg"];
$fp = fopen("text.txt","wb");
fwrite($fp,$content);
fclose($fp);
?>
- Schrijven in text bestand, data wordt steeds overschreven
-
05-08-2007, 15:03 #1
- Berichten
- 68
- Lid sinds
- 17 Jaar
Schrijven in text bestand, data wordt steeds overschreven
-
-
05-08-2007, 15:05 #2
- Berichten
- 572
- Lid sinds
- 18 Jaar
uitlezen met fread en opslaan in een variabele. Vervolgens plak je daar de nieuwe gegevens aan en stop je ze samen terug.
-
05-08-2007, 15:13 #3
- Berichten
- 68
- Lid sinds
- 17 Jaar
Ik snap wat je bedoelt, je haalt het hele txt bestand leeg, en voegt daar het nieuwe aan toe en schrijft het terug.
Ik heb niet zoveel verstand van php, dus hoe zou dit eruit moeten zien in code?
-
05-08-2007, 15:21 #4
- Berichten
- 605
- Lid sinds
- 19 Jaar
Dat hoeft helemaal niet, gebruik a in plaats van rw.
-
05-08-2007, 15:30 #5
- Berichten
- 68
- Lid sinds
- 17 Jaar
Bedankt voor je hulp. Het werkt nu gedeeltelijk. Het wordt opgeslagen, echter als ik het probeer uit te lezen, dan wordt de text uit de text area waarbij enters zijn gebruikt ook op apparte regels opgeslagen. En bij het uitlezen komt het dus als een appart bericht te staan. Hoe pas ik dit aan?
PHP Code:<?php
$bestand = 'text.txt';
$delimiter = '#';
$rijen = file($bestand);
$rijen = array_reverse($rijen); // volgorde omdraaien
foreach($rijen as $rij) { // loop de array langs
$velden = explode($delimiter, $rij); // knip de rij in stukjes
// voeg de informatie toe aan de lay-out
print '<p>';
print 'Naam: '.$velden[0].'<br />';
print '</p>';
print '<hr />';
}
?>
-
06-08-2007, 13:40 #6
- Berichten
- 155
- Lid sinds
- 18 Jaar
als je het nou makkelijk wilt maken voor jezelf (makkelijk, niet efficient) en foutloos:
maak steeds van de berichten een array:
PHP Code:$curMsg = array("naam" => $naam,"bericht" => $bericht);
PHP Code:// lees bestand uit
$text = file_get_contents("text.txt");
// maak er een array van berichten van
$textArray = unserialize($text);
// voeg nieuw bericht toe
$textArray[] = $curMsg;
// maak een string van de array van berichten
$text = serialize($textArray);
// sla text weer op
file_put_contents("text.txt", $text);
als je nu dus je bestand wilt uitlezen om te gebruiken als comments bijvoorbeeld:
PHP Code:$textArray = unserialize(file_Get_contents("text.txt"));
foreach($textArray as $entry)
{
echo $entry['naam'];
echo $entry['bericht'];
}
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic