Gå til innhold

Lagre data i ekstern fil


Anbefalte innlegg

Jeg trenger en enkel kode/skript i HTML som der du har noe text input greier og slikt, og når du trykker på submit knappen lagres det man har skrevet inn i en annen fil på serveren, enten i et excel regneark eller en vanlig notepad fil.

 

Noen som skjønner hva jeg er ute ette og kan hjelpe meg?

Endret av alec1
Lenke til kommentar
Videoannonse
Annonse

input1.php:

<html>
<body>
<form action="input2.php" method="post">
<input type="text" name="text1"><br />
<input type="text" name="text2"><br />
<input type="submit" value="submit">
</form>
</body>
</html>

input2.php:

<?php
$text1 = $_POST["text1"];
$text2 = $_POST["text2"];
if(!$fil = fopen("dinfil.txt","w"))
{
die("Kunne ikke opne filen");
}
$text = $text1 . $text2;
if(!fwrite($fil,$text))
{
die("Kunne ikke skrive til fil...");
}
echo "dinfil.txt er nå oppdatert";
fclose($fil);
?>

Når du opner en fil med "w" mode, kan du kun skrive til filen. Scriptet vil overskrive alt det gamle innholdet i filen, eller lage en ny fil vis den ikke eksisterer...

 

Edit: Du kan lese mer om forskjellige måter å opne filen på her ;)

Endret av mhbakke
Lenke til kommentar

Jeg la ved en link, som skulle gi deg info om andre måter å opne filen på... Men vis du vil opne filen, og alt som blir skrevet til den skal bli skrevet til enden av fila, bruk "a".

Her er en liste over alle "modes" du kan opne filen i:

Klikk for å se/fjerne innholdet nedenfor
Modes and Description

r Read only. Starts at the beginning of the file

r+ Read/Write. Starts at the beginning of the file

w Write only. Opens and clears the contents of file; or creates a new file if it doesn't exist

w+ Read/Write. Opens and clears the contents of file; or creates a new file if it doesn't exist

a Append. Opens and writes to the end of the file or creates a new file if it doesn't exist

a+ Read/Append. Preserves file content by writing to the end of the file

x Write only. Creates a new file. Returns FALSE and an error if file already exists

x+ Read/Write. Creates a new file. Returns FALSE and an error if file already exists

Hentet fra w3scools

Endret av mhbakke
Lenke til kommentar

Dette fungerte utmerket, men bare et problem. Når teksten ble lagret gikk det i ett uten noe mellomrom. For eksempel hvis man skrev inn "hardware" i det ene feltet og "forum" i det andre, så ble resultatet i .txt fila "hardwareforum".

Også hvis man legger til noe flere ganger så kommer alt etter hverandre.

 

Noen muligheter til å få inn noen mellomrom der og eventuelt ett linjeskift etter hver gang man trykker submit?

Endret av alec1
Lenke til kommentar
Noen muligheter til å få inn noen mellomrom der og eventuelt ett linjeskift etter hver gang man trykker submit?

8170397[/snapback]

Bare å legge inn " " eller "\n" avhengig av hva du vil ha, eller \t for tabulator

 

$text = $text1 . " " . $text2;

 

eller

 

$text = $text1 . " " . $text2 . "\n";

Lenke til kommentar

Tusen takk for all hjelpen så langt. har bare et spørsmål igjen.

På sluttet når man har trykket på submit får man opp en ny side der det står "dinfil.txt er nå oppdatert", er det mulig og forandre det til en link som åpner en helt ny side?

 

EDIT: ikke en link, men at den går til en ny side automatisk.

Endret av alec1
Lenke til kommentar

Du kan endre input2.php til:

<html>
<head>
<meta http-equiv="refresh" content="2;url=http://www.din.side/index.php/" />
</head>
<body>

<?php
$text1 = $_POST["text1"];
$text2 = $_POST["text2"];
if(!$fil = fopen("dinfil.txt","w"))
{
die("Kunne ikke opne filen");
}
$text = $text1 . " " . $text2 . "\n\n";
if(!fwrite($fil,$text))
{
die("Kunne ikke skrive til fil...");
}
echo "dinfil.txt er nå oppdatert";
fclose($fil);
?>
</body>
</html>

 

Legg merke til hva som ligger i head'en:

<meta http-equiv="refresh" content="2;url=http://www.din.side/index.php/" />

Dette vil etter 2 sekunder gå til hoved siden. Du kan endre tid og url til hva du vil. Eller du kan løse det hele med en enkel link:

echo '<a href="index.php">Tilbake</a>';

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...