---
title: "Skriva form data till TXT fil"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/173142-skriva-form-data-till-txt-fil"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "seamonster"
published: "2008-08-04T08:54:31.000Z"
updated: "2008-08-25T22:03:58.000Z"
replies: 16
views: 878
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/173142-skriva-form-data-till-txt-fil"
---

# Skriva form data till TXT fil

## #1 — seamonster, 2008-08-04T08:54Z

Hejsan. Jag har jobbat väldigt länge för att få en Form för att kontakta fungera (skicka e-mail till mig, utan att öppna nått epost program på klientens dator)

Så, du har jag kommit på en idé, att skriva Form datan till en TXT fil på min server, i exempel /posts/.
Ungifär som ett forum fast man inte ser något. Och varje gång någon skickar ett medelenade med min form, ska det skriva en ny TXT fil. 

Ledsen att formen är inom \<table\>:

```
<form>
Type of Report:
</td>
<td>
<select name="type" id="type">
<option value="add">Add a OS/Program/Game</option>
<option value="wrong">Report System Requirement</option>
<option value="contact">Contact Us</option>
</select>
</td>
</tr>
<tr>
<td>
Name: 
</td>
<td>
<input type="text" name="name" size="39">
</td>
</tr>
<tr>
<td>
Email: 
</td>
<td>
<input type="text" name="email" size="39">
</td>
</tr>
<tr>
<td>
Report:
</td>
<td>
<textarea rows="10" cols="30" name="report"></textarea> 
<br>
<center><input type="submit" value="Send"> <input type="reset" value="Reset"></center>
</form>
```

Så om man kan skriva en txt fil, för detta formet, ungifär i denna stilen:

```
Type: xxxxxxx
Name: xxxxxxx
Email: xxxxxxx
Report: xxxxxxx
```

Och sedan ge filen emailen som namnet, exempel: <123456789@abcdefg.hij>
Skulle detta kunna fungera? Eller ger det mig ett jätte säkerhets hål?
Om detta inte är en så bra idé, va finns det för andra alternativ?

/Seamonster

Permalänk: https://www.webforum.nu/p/173142

## #2 — seamonster, 2008-08-08T19:53Z

Ingen som har någon aning om detta går?

Permalänk: https://www.webforum.nu/p/2132296

## #3 — dreas, 2008-08-08T23:32Z

Hey,
tror du angriper ditt problem lite väl krångligt. Om du bara vill få det som skrivs in i formuläret skickat som ett mail till dig samt kan köra PHP på din server, så kan du ju använda mail() funktionen.

En matnyttig länk: <http://se.php.net/manual/en/function.mail.php> 
(om du blir avskräckt, scrolla ner till exempel längre ner)

Lycka till!

Permalänk: https://www.webforum.nu/p/2132336

## #4 — seamonster, 2008-08-09T08:42Z

Jo, man tycker det borde funka.
Jag tog denna koden bara för att testa om det funkar;

```php
<?php
// The message
$message = "Line 1\nLine 2\nLine 3";

// In case any of our lines are larger than 70 characters, we should use wordwrap()
$message = wordwrap($message, 70);

// Send
mail('caffinated@example.com', 'My Subject', $message);
?>
```

Ändrade emailen till min email och laddade php filen i webbläsaren... Uppdaterade även ett flertal gånger. Det kom inget mail. Testade på gmail och hotmail.

Jag har PHP, men måste man ha något annat? Servern har även en SMTP mail server installerad. Är det något som jag gör fel?

/Seamonster

Permalänk: https://www.webforum.nu/p/2132345

## #5 — seamonster, 2008-08-09T09:59Z

jag har även testat följande kod:

```
<html>
<head><title>Test Page</title></head>
<body>
<form method="post" action="contact.php">
Email: <input name="email" type="text"><br>
Message:<br>
<textarea name="message" rows="15" cols="40"></textarea><br>
<input type="submit">
</form> 
</body>
</html>
```

Contact.php

```php
<?php
$subject = "Contact Us";
$email = $_REQUEST['email'] ;
$message = $_REQUEST['message'] ;
$headers = "From: $email";
$sent = mail($to, $subject, $message, $headers) ;
if($sent)
{print "Your mail was sent successfully"; }
else
{print "We encountered an error sending your mail"; }
?>
```

Det ska gå att använda vår SMTP server utan lösenord och jag ska inte behöva ha en epost på samma domän som sidan, eller är detta nåt PHP måste?

/Seamonster

Permalänk: https://www.webforum.nu/p/2132362

## #6 — dreas, 2008-08-09T10:21Z

Hej igen,
Vi kan utgå från det andra exemplet där du har gjort en contact.php som formuläret skickas till.

För det första kan vi prova att byta ut $\_REQUEST till $\_POST då vi i själva verket vet hur formuläret skickas (method="post") och behöver alltså inte använda oss utav arrayen $\_REQUEST som söker igenom sätten $\_GET, $\_POST, $\_COOKIE i den ordningen.

Sedan ser jag ett fel på följande rad i contact.php:
$headers = "From: $email"; 

Korrekt skrivet ska det vara på följande vis:

```php
$headers = "From: ".$email;
```

Samtidigt så har jag svårt att tro att detta skulle påverka att inget mail skickas ut överhuvudtaget. Vad säger din if-sats som kollar sent?

Permalänk: https://www.webforum.nu/p/2132368

## #7 — colione, 2008-08-09T10:39Z

> **dreas skrev:**
>
> Sedan ser jag ett fel på följande rad i contact.php:
> $headers = "From: $email"; 
> 
> Korrekt skrivet ska det vara på följande vis:
>
>
> ```php
> $headers = "From: ".$email;
> ```

Med tanke på variabel-interpolationen som sker inom dubbelfnuttar är det inte fel att skriva som han har skrivit.

Permalänk: https://www.webforum.nu/p/2132370

## #8 — seamonster, 2008-08-09T11:58Z

> **dreas skrev:**
>
> Samtidigt så har jag svårt att tro att detta skulle påverka att inget mail skickas ut överhuvudtaget. Vad säger din if-sats som kollar sent?

"We encountered an error sending your mail"
Altså blir ju inte emailet skickat alls från min server.

Permalänk: https://www.webforum.nu/p/2132380

## #9 — seamonster, 2008-08-09T11:59Z

DUBBELPOST Sry

Permalänk: https://www.webforum.nu/p/2132381

## #10 — colione, 2008-08-09T15:35Z

<http://se.php.net/manual/en/function.error-get-last.php>

Permalänk: https://www.webforum.nu/p/2132425

## #11 — seamonster, 2008-08-09T16:25Z

Aha, okej. 
När ja la till 

```php
print_r(error_get_last());
```

i contact.php hände inget specielt förutom det som hände innan.

Vet inte riktigt om det är rätt jag gjorde?

Permalänk: https://www.webforum.nu/p/2132436

## #12 — colione, 2008-08-09T19:13Z

lägg till detta högst upp i filen:

error_reporting(E_ALL);
display_errors(true);

Permalänk: https://www.webforum.nu/p/2132448

## #13 — seamonster, 2008-08-09T19:46Z

Fel i felvisningen:

Fatal error: Call to undefined function display_errors() in /home/albin/public_html/scripts/contact.php on line 3

Jag sökte i PHP Manualen, o den sa att funktionen inte fanns?

Sätter jag det övan för \<? tecket får jag fram följande:
"error_reporting(E_ALL); display_errors(true); We encountered an error sending your mail " Vilken borde hända...

Permalänk: https://www.webforum.nu/p/2132451

## #14 — Pedda, 2008-08-10T09:33Z

Har du ställt in smtp i php.ini?
t.ex

```
[mail function]
; For Win32 only.
SMTP = mail1.telia.com
smtp_port = 25
```

Permalänk: https://www.webforum.nu/p/2132484

## #15 — colione, 2008-08-10T09:39Z

förlåt,

det ska vara:

ini_set("display_errors",true);

Permalänk: https://www.webforum.nu/p/2132489

## #16 — seamonster, 2008-08-10T10:12Z

Jag satte ini_set("display_errors",true); högst upp i filen (efter \<?) men det gjorde ingen skillnad.

Hmm, eftersom det inte bara är jag som använder den här servern, kan man ha en php.ini fil i tex, min mapp? Eftersom jag inte vill ändra hela serverns inställningar

Permalänk: https://www.webforum.nu/p/2132503

## #17 — überfuzz, 2008-08-25T22:03Z

Jag vet inte vilken method du använder, men testa att skicka formuläret så här.

```php
$adress = 'webmaster@din-site.com';
$subject = 'You've got mail.';
//loopa igenom allt i post och get, du kan ju ta bort den du inte använder, spara det i meddelande.
$meddelande = "___FORMULÄR___\n";
foreach($_POST as $nyckel => $vad)
{
    $meddelande .= "{$nyckel} : {$vad}\r\n";
}
foreach($_GET as $nyckel => $vad) //loopa get
{
    $meddelande .= "{$nyckel} : {$vad}\r\n";
}

//Jag kommer inte ihåg vilka headers som gör vad.
$headers = "X-Priority: 3\r\n"; //viktigt eller inte.
//ta reda på om du vill/behöver fler headers.

$i = mail($adress, $subject, $meddelande, $headers);
if($i)
{
    echo "Formuläret har skickats!";
}
else
{
    echo "Formuläret kunde inte skickas!";
}
```

Permalänk: https://www.webforum.nu/p/2135262

---

Tråden på webben: https://www.webforum.nu/amne/php/173142-skriva-form-data-till-txt-fil
