---
title: "Mail via formulär och mySQL"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/147459-mail-via-formulär-och-mysql"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "gilthas"
published: "2006-05-29T21:21:16.000Z"
updated: "2006-06-14T07:08:09.000Z"
replies: 15
views: 701
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/147459-mail-via-formulär-och-mysql"
---

# Mail via formulär och mySQL

## #1 — gilthas, 2006-05-29T21:21Z

Hejsan!

Jag skulle vilja ha lite hjälp med en sak. Det är så att jag ska göra en sida där man som kund ska kunna skicka ett mail till mig, det har jag inga problem med - får allt det att fungera som det ska.   :h
Men problemen börjar när har fått frågan att se till att allt sparas i en databas (mySQL) med, detta för att säkerställa att inget/ingen mail/data försvinner.

Tack på förhand

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

## #2 — Compusa, 2006-05-29T21:31Z

Mitt tips är att först sätta igång själv och fråga när du får problem. Så som jag uppfattat det har du inte försökt själv ännu.

Det är inte direkt något svårt problem, det du behöver är en mysql-databas och möjlighet att ansluta mot denna. I ditt script som skickar mail skulle du kunna göra följande:
\* Öppna anslutning mot databasen
\* Sätt in värdena från formulär-fälten i din databas.
\* Stäng anslutningen mot databasen.

Det finns mängder av information på nätet, bara att googla   :i

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

## #3 — gilthas, 2006-05-30T16:25Z

Jag har försökt tidigare och har även använt mig av google... Dock har jag hela tiden fastnat på samma problem.
Jag kan lägga till i databasen, men vet inte exakt hur jag ska plocka ut dom texterna från databasen på ett smidigt sätt. Samt hur gör jag för att skicka mailet direkt efter att jag har lagt in det i databasen?

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

## #4 — J.N., 2006-06-01T08:33Z

HEJ!

HUR vill du visa texterna? I en tabell på en sida, eller skicka/hämta som csv/xls/txt/pdf-fil? Olika lösningar för respektive, innebär att du måste veta det först.

Spara först datan, sedan skickar brevet; vad är det som är problemet? Du har redan gjort hälften, lägg till en funktion för att spara samma varibler i databasen. Du behöver inte krångla med att hämta datan du precis sparat.
Eller gör tvärtom, skicka brevet, spara datan. Du bestämmer.

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

## #5 — gilthas, 2006-06-01T08:52Z

Så här ser min kod ut för filen som skickar mailet:

```
<?
require ("common.inc");

ini_set("max_execution_time","9999");
ignore_user_abort(true); 

//-----Läs in variablerna från formuläret
$text = $_POST['text'];
$subject = $_POST['subject'];
$signature = $_POST['signature'];

if($text!=""){
$sql = "SELECT epost FROM nyhetsbrev_medlem WHERE aktiv='yes'";
$result = mysql_query($sql) OR DIE(mysql_error());
$rows = mysql_numrows($result);

$batch = 50; //antal mail som skickas per runda
$pre_rundor = $rows/$batch; //antal rundor

// -- nollställning av räknare och innehållsvariabler
$count = 0;
$recepient = "";
$total_counter = 0;
$all_recepients = "";
$show_batch = "";
$round = 0;

//en snurra som skickar mailen i omgångar om antalet i variabeln batch
while ($row = mysql_fetch_array($result)){
	$recepient .= ",".$row['epost'];
	$all_recepients .= ", ".$row['epost'];
	$count++;
	$total_counter++;
	// när räknaren kommit upp i batch-antalet adresser - skicka mail
	if ($count == $batch){
		$recepient = substr($recepient, 1);
		$round++;
		echo "<br><br><b>Runda $round</b>.<br>OBS! Låt sidan ladda helt färdigt. 
				Den ska snurra igenom $pre_rundor rundor. När du ser själva mailet kan du pusta ut.";

		if(mail("nyhetsbrev@domain.com","$subject","$text\n\n$signature",
			"from:Din sajt <nyhetsbrev@domain.com>\r\n"."bcc:".$recepient)) {
			$check ='Ja';
			}
		else $check = 'Nej';
		$count = 0;
		$recepient = "";
		
	}
}
// Tag hand om resten
if ($count > 0){
	$recepient = substr($recepient, 1);
	echo "<br><br><b>Resten: $count </b>.";

	if(mail("$to","$subject","$text\n\n$signature","from:Nyhetsbrevet 
			<nyhetsbrev@domain.com>\r\n"."bcc:".$recepient)) {
			$check ='Ja';
			}
	else $check = 'Nej';
}
$sum = $round*$batch+$count;
echo "<br><br><b>Nu är vi klara!<br>Totalt: $round rundor gånger $batch + resterande $count = $sum adresser.<br></b>";

//-----------------------------
if($check=='Ja'){
$visatext = nl2br($text);
$visasig = nl2br($signature);

echo "<br><hr noshade width=\"80%\"><br>To: $to\n<BR>
From: Nyhetsbrevet &lt;nyhetsbrev@domain.com&gt;\n<BR>
Subject: $subject\n\n<BR><BR>$visatext\n\n<BR><BR>$visasig";
echo "<P><A HREF=\"index.htm\">Tack och hej</A>";
echo "<P>Brevet drog iväg till följande $rows prenumeranter: <BR>$all_recepients";
}
else echo "Det gick inte att skicka mailet";
}
else echo "<P>Du glömde att skriva något i brevet. 
Av ren vänlighet skickades inte ditt tomma 
brev ut till de $rows prenumeranter som 
annars skulle fått en massa skräp i sin mailbox. Skärpning!";
?>
```

Detta fungerar mycket bra ända tills jag kommer till läget att lägga in dom i databasen... Vet inte vad jag gör för fel - hjälp mig gärna med var jag ska lägga in koden för att skriva dit det i databasen.

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

## #6 — J.N., 2006-06-01T09:09Z

Hmmm, en fördel är ju att posta frågan i rätt forum, detta är php-kod!

Det enklaste är att lägga koden efter alla variabler är hämtade, före db-frågan från "nyhetsbrev_medlem".
När det fungerar, kan man flytta det om man vill ha en annan struktur.

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

## #7 — gilthas, 2006-06-01T09:47Z

> **J.N. skrev:**
>
> Hmmm, en fördel är ju att posta frågan i rätt forum, detta är php-kod!

Ojdå, det har jag aldrig tänkt på att det är.   :r 

Tack ändå för ditt svar. Ska testa det.

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

## #8 — J.N., 2006-06-01T10:00Z

Ingen fara, du är ju ny! Okej, det ÄR ett grunläggande fel, men ändå!
Välkommen förresten, eftersom ingen annan välkomnat dig! :birp

Fortsätt skriva om ev problem i denna tråd, den hamnar i rätt forum så småningom.

Glöm inte heller acceptera vilket inlägg som hjälpte dig.

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

## #9 — LarsG, 2006-06-04T21:09Z

Flyttas från ASP

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

## #10 — gilthas, 2006-06-04T22:19Z

Har inte haft tid att testa era förslag - därför har jag inte sagt om det fungerar eller ej.
Hoppas att jag ska hinna titta på det under veckan....

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

## #11 — gilthas, 2006-06-05T07:57Z

> **J.N. skrev:**
>
> Det enklaste är att lägga koden efter alla variabler är hämtade, före db-frågan från "nyhetsbrev_medlem".

Tack för ditt svar - det löste alla mina problem, har inte ens haft en tanke på att det går att lägga flera SQL-frågor i samma fil.

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

## #12 — aasah, 2006-06-05T10:49Z

> **gilthas skrev:**
>
> Tack för ditt svar - det löste alla mina problem, har inte ens haft en tanke på att det går att lägga flera SQL-frågor i samma fil.

gilthas - om du tittar på J.N.'s inlägg finns det en röd kant på ovansidan (liksom på alla inlägg). Till höger i det röda står "Acceptera som slutgiltigt svar". Det är en länk. Klicka på den, så blir alla glada!   :D

Förtydligande: I de trådar man skapar, ser man själv (dvs trådskaparen) denna länk. Därmed kan man alltid själv tala om vilket svar som löste ens problem. :)

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

## #13 — gilthas, 2006-06-05T11:10Z

> **aasah skrev:**
>
> gilthas - om du tittar på J.N.'s inlägg finns det en röd kant på ovansidan (liksom på alla inlägg). Till höger i det röda står "Acceptera som slutgiltigt svar". Det är en länk. Klicka på den, så blir alla glada!   :D
> 
> Förtydligande: I de trådar man skapar, ser man själv (dvs trådskaparen) denna länk. Därmed kan man alltid själv tala om vilket svar som löste ens problem. :)

Så, då var det gjort... :r  Hade inte sett den länken tidigare, sorry att jag missade det...   :(

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

## #14 — aasah, 2006-06-05T11:15Z

> **gilthas skrev:**
>
> Så, då var det gjort... :r  Hade inte sett den länken tidigare, sorry att jag missade det...   :(

Inget problem alls!   :D Alla har vi varit nya nån gång - och inte bara nya missar den länken ibland. Men ju fler som hittar den, desto bättre!   :D

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

## #15 — gilthas, 2006-06-13T17:56Z

Har råkat ut för ytterligare ett problem - som jag hoppas att ni kan hjälpa med?

```
SQLsats = "SELECT TOP 5 * FROM asp ORDER BY DATUM DESC"
```

 Så ser det ut i en sträng för asp och ACCESS-db. Skulle vilja få en likvärdig för php och mysql-db.

Mvh
// Gilthas

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

## #16 — NiGHTFiRE, 2006-06-14T07:08Z

```php
$sql = "SELECT * FROM asp ORDER BY DATUM DESC LIMIT 5";
$query = mysql_query($sql) or die(mysql_error());
```

Jag är dock inte säker på att det är i rätt ordning. Men det borde kunna funka.

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

---

Tråden på webben: https://www.webforum.nu/amne/php/147459-mail-via-formulär-och-mysql
