Formuliergegevens in .txt bestand opslaan

Status
Niet open voor verdere reacties.

5blabla5

Gebruiker
Lid geworden
27 apr 2009
Berichten
485
Hoi :)

Ik ben nog niet zo goed in php, zelf schrijven kan ik niet, maar het bewerken en lezen van php kan ik wel een beetje.
Mijn vraag gaat over een soort van .txt database, ipv mysql.

Het zou het volgende moeten zijn:

Formulier:
Naam
[verzendknop]

.txt database:
[naam] [datum en tijd]

En als je dan iemand anders zijn naam in vult en op de verzendknop drukt, moet het er onder komen te staan:

[naam] [datum en tijd]
[naam 2] [datum en tijd 2]

Enzovoort

Ik heb al wat geprobeert, het enige wat ik tegen kwam is een script dat de pagina herschrijft, en de andere data die er in staat delete

Heeft iemand een oplossing? :)
 
Hetzelfde script, maar dan in "append" mode zetten, zodat ie het aan het eind toevoegd.

-of-

De hele file openen, de nieuwe entry aan het eind toevoegen, en dan de file overschrijven.

Dat zijn de makkelijkste oplossingen :)
 
EDIT: Ik heb er even een php debugger bij gehaald, hij doet het al iets beter, hij sluit het al netjes aan :)
Weet iemand ook het volgende:
Je voegt iets in, er komt iets in data.txt te staan, daarna voeg je nog iets in, en dan komt er een regel tussen te staan.
Is er een mogenlijkheid voor die enter?

Ik had even gezocht wat append is. Het bleek dat ik dit al een keer had geprobeerd, maar toen gaf hij helemaal niks meer aan!

Ik zal het script even laten zien:
Code:
<?php
$data = $_POST['data'];

if (!$handle = fopen("data.txt", "a"))
{
    echo "Kon het bestand data.txt niet openen!";
}

if(!fwrite($handle, $data))
{
    echo "Kon niet naar het bestand data.txt schrijven!";
}
else
{
    echo $data;
}
fclose($handle); // Vergeet niet het bestand te sluiten
?> 


<form name="form1" method="post" action="form.php?saving=1">
  <textarea name="data" cols="100" rows="10">

  <?php
    $file = "data.txt";
    if (!empty($file)) {  
	  $file = file_get_contents("$file");
	  echo $file;  


  </textarea>
  <br>
  <input type="submit" value="Save">
</form>
 
Laatst bewerkt:
Je kunt een enter in de file zetten door (op windows althans) dit toe te voegen:

PHP:
$enter = "\n\r";

Daarbij MOET je dubbele aanhalingstekens gebruiken, want die codes moeten nog omgezet worden.
 
hoe kan ik in erin schrijven

Krijg dit te zien bovenin debugger.php "Kon niet naar het bestand data.txt schrijven!"
Ik was op zoek naar z'n soort script voor een gastenboek zonder mysql en dacht dat te kunnen gebruiken om reacties te kunnen verwijderen of te wijzigen.
Maar dat werk schijnbaar niet.
Wat moet er veranderd worden om er wl in te schrijven?
ik heb al ( if (!$handle = fopen("dat.txt", "a+")) ) geprobeerd en " r " en " r+" maar geen resultaat, alleen met "w" was alles pleite, maar dat is niet de bedoeling en met w+ was er ook geen reactie
 
Heb je wel schrijfrechten? Als PHP het bestand niet mag wijzigen dan kan het ook niet schrijven.

Anders moet je even je script laten zien denk ik (of heb je bovenstaande script gekopieerd?)
 
Ja ik heb inderdaad dat bovenstaand script geprobeerd en data.txt veranderd in gastenboek.txt en } ?> gezet onder echo $file; omdat dat gedeelte niet was afgesloten en je zonder die accolade anders een unexpeted $end krijgt in regel 34
Het laat wel de inhoud van gastenboek.txt zien in de textarea als text en ik kan er ook werken alleen word het niet uitgevoerd,
als ik op "Save" klik kom ik in localhost/nieuwgb/form.php?saving=1 en zie ik 405. EN als ik action="form.php?saving=1"> verander in action="gastenboek.txt"> dan kom ik in localhost/nieuwgb/gastenboek.txt maar krijg ik het niet als txt bestand te zien, maar als htlm.
 
Laatst bewerkt:
Ik had voordat mijn harde schijf het begaf een soort gelijk script van phphulp geplukt, dat stond als een checkbox vermeld waarin je kon wijzigen of verwijderen, en dat werkte op zich prima, alleen als dan een tig aantal reacties in je gastenboek hebt staan moest je wel ff zoeken als je iest wou veranderen of verwijderen omdat net als in bovenstaand script alles in een textarea werd geplaatst
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan