Hoe maak je een HTML/PHP formulier die de gegevens opslaat in een .txt bestand?

Status
Niet open voor verdere reacties.

DeltaFox64

Nieuwe gebruiker
Lid geworden
6 okt 2014
Berichten
2
Hallo allemaal!
Voor een schoolprojectje heb ik een simpele site gemaakt met een html formulier erop.

Op deze site en andere sites staat veel informatie hierover. Ik ben tot het volgende gekomen:

index.html (is niet het volledige bestand)
Code:
<form id="demo" action=‘submit.php’ method=‘post’ enctype=‘text/plain’>
Naam: <input type=‘text’ name=‘web’ value="" /></br>
<input type=‘submit’ value=‘submit’ />
</form>


submit.php
Code:
<?php
$fp=fopen(‘sub.txt’,‘a’); 
fwrite($fp,addslashes($_POST[‘web’]). "\r\n"); 
fclose($fp); 
header(‘location: thanks.html’); 
exit();
?>

De site maakt netjes het bestand sub.txt aan op de server. Na het downloaden van dit bestand is het bestand echter leeg.

Mijn kennis is helaas niet zo toereikend dat ik veel zelf kan aanpassen.
De bedoeling is dat er op dit formulier het volgende ingevuld kan worden:

Naam:
Aantal uur:
Werkzaamheden:

Het vakje werkzaamheden moet ongeveer zes regels groot zijn, de andere 1 regel.

Het is me zelf al gelukt om een pagina te maken die beveiligd is met een wachtwoord (wachtwoord is te zien via broncode, maakt niet uit) Op die pagina moet het txt bestand gedownload kunnen worden met hierin alle namen, uren en werkzaamheden van de afgelopen tijd. Werkt dat via
<A HREF="sub.txt">Download bestand</A> ?

Wie kan mijn dus helpen met
- goed functionerend formulier die alles netjes onder elkaar opslaat in een .txt bestand
- hoe dit .txt bestand op een andere pagina gedownload kan worden.

Alvast bedankt!
 
Welkom op helpmij :thumb:

Je bent al redelijk op weg, wil je het simpel houden gebruik dan file_put_contents of fwrite, een voorbeeld staat hier: http://php.net/manual/en/function.file-put-contents.php. Als je dan example 1 bekijkt kan je d.m.v. variabelen de text aanpassen, de \n zorgt voor een nieuwe regel.
Je hyperlink om te downloaden zou zo inderdaad moeten werken.

Heb je hulp nodig dan hoor ik het graag!
 
Ik weet het niet zeker, maar het gebruik/mixen van ' en ` is mogelijk een reden?
Bovendien lijkt in deze sectie te staan dat je "a" óf 'a' moet gebruiken i.p.v. `a' om een bestand te openen in Append-modus?

Tijs.
 
Welkom op helpmij :thumb:

Je bent al redelijk op weg, wil je het simpel houden gebruik dan file_put_contents of fwrite, een voorbeeld staat hier: http://php.net/manual/en/function.file-put-contents.php. Als je dan example 1 bekijkt kan je d.m.v. variabelen de text aanpassen, de \n zorgt voor een nieuwe regel.
Je hyperlink om te downloaden zou zo inderdaad moeten werken.

Heb je hulp nodig dan hoor ik het graag!

Bedankt voor de reactie!
Omdat het html stukje nog niet goed was, ben ik daarmee bezig geweest. Ik heb nu het volgende daar:

Code:
<form method="action.php" method="post">
Naam <input type="text" name="naam">
Uur: <input type="text" name="uur">
Werkzaamheden: <textarea name="werkzaamheden"></textarea>
</form>
Probleem is alleen dat er een 'Versturen' knop ontbreekt.

Als php heb ik nu het volgende:

action.php
Code:
<?php
$file = 'database.txt';
// Open the file to get existing content
$current = file_get_contents($file);
// Append a new person to the file
$current .= "Gegevens\n";
// Write the contents back to the file
file_put_contents($file, $current);
?>

Volgens mij gaat het bij de koppeling van beide niet helemaal goed. En waar staat de 'gegevens' voor? (stond eerst John Smith)

Alvast bedankt!
 
Ben ik weer, excuses voor mijn late antwoord. Heb zelf nog even wat geknutseld, en heb wat data van mijn eigen projecten verzameld. Uiteindelijk lijkt mij dit het beste en simpelste voor je:

Het formulier (zoals je al had):
HTML:
<form method="action.php" method="post">
Naam <input type="text" name="naam">
Uur: <input type="text" name="uur">
Werkzaamheden: <textarea name="werkzaamheden"></textarea>
<input type="submit" value="Verzenden" />
</form>

De php verwerking heb ik vrij simpel gehouden:
PHP:
<?php
$file = 'sub.txt'; //geef bestandsnaam op
$bestand = fopen($file, "w") or die("Fout bij aanmaken bestand!"); //maakt bestand aan met schrijfrechten indien niet bestaat of geeft error
$gegevens =''; //Hier de gegevens die in het bestand moeten komen
fwrite($file, $gegevens); //Schrijf gegevens naar bestand
fclose($file); //Sluit bewerking af
?>

Graag hoor ik of je hiermee uit de voeten kunt, en/of je nog hulp nodig hebt.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan