---
title: "Hur gör man för att få med variabler i mail()funktion?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/190475-hur-gör-man-för-att-få-med-variabler-i-mail-funktion"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "maweer"
published: "2012-09-20T08:24:51.000Z"
updated: "2012-09-21T01:59:08.000Z"
replies: 18
views: 1322
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/190475-hur-gör-man-för-att-få-med-variabler-i-mail-funktion"
---

# Hur gör man för att få med variabler i mail()funktion?

## #1 — maweer, 2012-09-20T08:24Z

Jag har en kod som raderar den aktuella posten där den får det aktuella id:et via en länk.

Jag har fått till att den skickar ett mail varje gång man raderar en post men jag får inte med variablerna i mailet i $message

```php
<?

include("conn.php");

if(isset($_GET['id'])) {

    $sql = "DELETE FROM tabell WHERE id = {$_GET['id']}";
    mysql_query($sql);
}

if(isset($_GET['id'])) {

    $sql = mysql_query("SELECT * FROM tabell WHERE id = {$_GET['id']}");
    mysql_query($sql);
}
 
while ($rad = mysql_fetch_array($sql))

 { 

   $tid = $rad['tid']; 
   $datum = $rad['datum'];
   $plats = $rad['plats'];
   $beskrivning = $rad['beskrivning'];
   $karta = $rad['karta'];
   $Smilies = Smilies($rad['beskrivning']);
} 

$to = "mail@exempel.com ,mail2@exempel.com, mail3@exempel.com";
$subject="Spelning inställd och raderad";
$message="En spelning har blivit raderad från listan: $plats, $datum";
$from = "svaraej@exempel.com";
$headers .= "Reply-To: $visitor_email \r\n";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);

header('Location: form.php');
?>
```

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

## #2 — andreas_lindh, 2012-09-20T08:46Z

Du raderar posten innan du sätter dina variabler. 

Flytta delete frågan till efter du satt variablerna.

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

## #3 — maweer, 2012-09-20T09:21Z

Hehehe var det så enkelt :)

Jag gjorde så här 

```php
if(isset($_GET['id'])) {

    $sql = mysql_query("SELECT * FROM tabell WHERE id = {$_GET['id']}");
    mysql_query($sql);
}
 
while ($rad = mysql_fetch_array($sql))

 { 

   $tid = $rad['tid']; 
   $datum = $rad['datum'];
   $plats = $rad['plats'];
   $beskrivning = $rad['beskrivning'];
   $karta = $rad['karta'];
   $Smilies = Smilies($rad['beskrivning']);
} 

if(isset($_GET['id'])) {

    $sql = "DELETE FROM tabell WHERE id = {$_GET['id']}";
    mysql_query($sql);
}

$to = "mail@exempel.com ,mail2@exempel.com, mail3@exempel.com";
```

Nu när jag raderar så får jag Serverfel. 
Har jag gjort något konstigt?

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

## #4 — voigtann1, 2012-09-20T09:32Z

Nu kan jag inte PHP men vad gör mysql_query() och vad gör mysql_fetch_array ? om jag fattar det hela rätt så måste du väl ändå ha ett recordset i din mysql_fetch_array och inte en sträng?

**EDIT**nu ser jag att du har en mysql_query... men då behöver du knappast göra det igen direkt efter.

```
while ($rad = mysql_fetch_array(mysql_query($sql)))
```

.. du måste också se över dina if frågor... du säger bara om id är satt så kommer du sätta variablen $sql till något... men längre ner så försöker du hämta något med $sql som i vissa fall kommer vara tomma...

om något:

```
<?
include("conn.php");
if(isset($_GET['id'])) {
	$sql = mysql_query("SELECT * FROM tabell WHERE id = {$_GET['id']}");

	while ($rad = mysql_fetch_array($sql)) { 
		$datum = $rad['datum'];
		$plats = $rad['plats'];
	}

	mysql_query("DELETE FROM tabell WHERE id = {$_GET['id']}"); 

	$to = "mail@exempel.com ,mail2@exempel.com, [email]mail3@exempel.com[/email]";
	$subject="Spelning inställd och raderad";
	$message="En spelning har blivit raderad från listan: $plats, $datum";
	$from = "svaraej@exempel.com";
	$headers .= "Reply-To: $visitor_email \r\n";
	$headers = "From:" . $from;

	mail($to, $subject, $message, $headers);
}
header('Location: form.php');
?>
```

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

## #5 — maweer, 2012-09-20T09:51Z

Hahaha jag tyckte visst du kan php :)

Tusen tack :) Det funkade jätte bra!

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

## #6 — voigtann1, 2012-09-20T10:04Z

fast du vill ju inte skicka mail eller försöka ta bort något som inte finns i databasen (gissar jag på):

```
<?
include("conn.php");
if(isset($_GET['id'])) {
	$sql = mysql_query("SELECT * FROM tabell WHERE id = {$_GET['id']}");

	while ($rad = mysql_fetch_array($sql)) { 
		$to = "mail@exempel.com ,mail2@exempel.com, [email]mail3@exempel.com[/email]";
		$subject="Spelning inställd och raderad";
		$message="En spelning har blivit raderad från listan: $rad['plats'], $rad['datum']";
		$from = "svaraej@exempel.com";
		$headers .= "Reply-To: $visitor_email \r\n";
		$headers = "From:" . $from;

		mysql_query("DELETE FROM tabell WHERE id = {$rad['id']}"); 
		mail($to, $subject, $message, $headers);
	}
}
header('Location: form.php');
?>
```

 kanske?

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

## #7 — maweer, 2012-09-20T10:14Z

Jo, det funkar strålande :)

För nu så fick jag server fel, men innan så funkade det kanonbra :)

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

## #8 — voigtann1, 2012-09-20T10:55Z

vad är felmeddelandet?

kanske:

```
mysql_query("DELETE FROM tabell WHERE id = $rad['id']");
```

? felmeddelanden i PHP brukar ge en rätt bra information vad felet är...

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

## #9 — maweer, 2012-09-20T11:02Z

Nja, det bara står Chromes egna felmeddelade "Serverfel"

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

## #10 — voigtann1, 2012-09-20T11:07Z

aktivera det (borde ju alltid vara när man utveckla tycker jag). <http://motoma.io/turning-on-php-debugging-and-error-messages/>

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

## #11 — maweer, 2012-09-20T12:45Z

Har jag lagt det fel

```php
<?php
error_reporting(E_ALL);

include("conn.php");
if(isset($_GET['id'])) {
```

Sitter på jobb och kör endast IE8 här

och får upp

```
Webbplatsen kan inte visa sidan
Detta fel (HTTP 500 - Internt serverfel) innebär att webbplatsen du besöker har ett serverproblem som gör att webbsidan inte kan visas.
```

EDIT
Men din förra kod funkade ju jätte bra :)

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

## #12 — voigtann1, 2012-09-20T12:50Z

vilken webbserver kör du?

```
<?
include("conn.php");
if(isset($_GET['id'])) {
	$sql = mysql_query("SELECT * FROM tabell WHERE id = {$_GET['id']}");

	while ($rad = mysql_fetch_array($sql)) { 
		$datum = $rad['datum'];
		$plats = $rad['plats'];
		
		mysql_query("DELETE FROM tabell WHERE id = {$_GET['id']}"); 

		$to = "mail@exempel.com ,mail2@exempel.com, [email]mail3@exempel.com[/email]";
		$subject="Spelning inställd och raderad";
		$message="En spelning har blivit raderad från listan: $plats, $datum";
		$from = "svaraej@exempel.com";
		$headers .= "Reply-To: $visitor_email \r\n";
		$headers = "From:" . $from;

		mail($to, $subject, $message, $headers);

	}

}
header('Location: form.php');
?>
```

känns som borde fungera.

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

## #13 — maweer, 2012-09-20T13:04Z

Här på jobbet sitter jag på en IE 8

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

## #14 — voigtann1, 2012-09-20T13:33Z

IE8 är en webbläsare, inte en webbserver.

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

## #15 — maweer, 2012-09-20T13:45Z

Men förlåt! Jag läser som en kratta :)
Linux web07-00 3.0.9-vs2.3.1

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

## #16 — voigtann1, 2012-09-20T13:55Z

Och vad är det? Är det ett webbhotell du utvecklar mot?

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

## #17 — maweer, 2012-09-20T13:57Z

Ja jag kör sidan på b-one webbhotell

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

## #18 — voigtann1, 2012-09-20T14:05Z

> **[maweer skrev:](https://www.webforum.nu/p/1554764)**
>
> Ja jag kör sidan på b-one webbhotell

Jo, Det är bara på vilken webbserver maskin du är på, inte vilket system den är på. Jag hade installerat PHP på din maskin när du utveckla istället för att jobba på något som ligger skarpt ute som kanske används. På en skarp sajt (som ligger på b-one) vill du ju inte visa felmeddelande på det sättet, men hade varit betydligt enklare om du utvecklar på en egen maskin för debug. 

Jag kan inte hjälpa mer med vad som kan vara fel, förmodligen är det kanske för att (nu pratar jag ASP) att du har recordsetet aktivt på den post du försöker ta bort inne i while loopen som kan spöka finns säkert något bättre sätt att kontrollera att posten finns innan..

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

## #19 — maweer, 2012-09-21T01:59Z

Jo jag, hade det innan men slutade använda det lokalt av ren lathet att jag inte orkade installera om det på min dator igen vid en ominstallation av mitt OS.

Sen upptäckte jag vid flera tillfällen att vissa saker i koden funkade när jag körde lokalt men inte skarpt, då webbhotellet jag körde med då använde en gammal version. 
Det var iof en massa år sedan, så det kan ju ha blivit bättre med åren, men det gjorde att jag istället började köra "skarpt" direkt istället för att testa lokalt först.
Jag har heller inte kodat på en massa år, och försöker nu ta upp det igen lite smått

Jag kollade lite nu också. Webbservern som jag har på mitt webbhotell är: Apache/2.2.16 som körs på något system som heter Linux web07 så jag skrev fel igår

Jag tackar ännu en gång för din hjälp och din tid!

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

---

Tråden på webben: https://www.webforum.nu/amne/php/190475-hur-gör-man-för-att-få-med-variabler-i-mail-funktion
