---
title: "$message slutar fungera"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/137463-message-slutar-fungera"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Iceyes"
published: "2005-11-12T00:55:39.000Z"
updated: "2005-11-12T20:22:54.000Z"
replies: 23
views: 485
page: 1
pages: 2
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/137463-message-slutar-fungera"
---

# $message slutar fungera

_Sida 1 av 2._

## #1 — Iceyes, 2005-11-12T00:55Z

som jag tog upp i tidigare tråd <http://www.webforum.nu/showthread.php?t=134097> 
så behövde jag hjälp att få ingång några kommandon för att den ska skriva ut medelandet och namnet i headern som personen skrev när den fyllde i formuläret, allt fungerade perfekt så jag lät allt vara. 
Nu idag när jag testar det vägrar den skriva nånting!
Utan att jag rört ett enda tecken i koden  :o   :o 
vad kan ha hänt?

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

## #2 — Matte, 2005-11-12T01:17Z

Vad händer ?
Skickas mailet ?
Vad står det i adressfältet ?
Får du helt blank sida, och i så fall vad står i den genererade HTML-koden ?

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

## #3 — Iceyes, 2005-11-12T15:43Z

Den skickar medelandet precis som vanligt 
adressfälet har precis samma adress som innan .php?done=1

```php
<?
session_start() ;
if(isset($_GET['done'])) { 

    echo '<center>Vi tackar för ditt meddelande '.$_SESSION['realname'].'<br /> 
    Följande meddelande:<em><br />
<br />
'.$_SESSION['message'].'</em><br /><br />
 har leverats</center>'; 

    unset($_SESSION['realname'], $_SESSION['message']); 

}
?>
```

den skriver endast så här ovastett va man skriver i formuläret:

Vi tackar för ditt meddelande 
Följande meddelande:

har leverats

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

## #4 — @nders, 2005-11-12T15:51Z

Lagrar du verkligen *realname* och *message* i sessionsvariabler? Ska du inte hämta dem med $\_GET från formuläret?

mvh

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

## #5 — Iceyes, 2005-11-12T16:05Z

Jag tror den just nu bara känner igen dem på namnet. men det funkade faktiskt från början men som sagt inte längre. vad hade du som tips att man skulle skriva annars? 
session_start koden finns med, men plockade inte med den här.

```
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form method="post" action="/sendmail.php">
<p><b>&Auml;rende:</b><br>
<input type=text name="subject" size="45" value="">
<br>
<b> Ditt Namn:</b><br>
<input type=text name="realname" size="45" value="">
<br />
<b>Din Email:</b><br>
  <input type=text name="email" size="45" value="">
  <br>
</p>
<p><b>Komentar:</b><br>
<textarea name="message" rows="10" cols="60" wrap="virtual"></textarea></p><br>
<p><input type="submit" name="submit" value="Send"> 
&nbsp;
<input type="reset" value="Rensa">
</p>
</form>
</body>
</html>
```

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

## #6 — @nders, 2005-11-12T16:08Z

Men frågan är ju; lagrar du verkligen värdena i sessionsvariabler? I så fall, var gör du det (och varför)?
Om värdena kommer från formuläret endast så är de ju inte lagrade i sessionsvariabler, och då har det ju ingen som helst betydelse för den sakens skull att du kör session_start() överst på mottagande sida.

> vad hade du som tips att man skulle skriva annars?

> **@nders skrev:**
>
> Ska du inte hämta dem med $\_GET från formuläret?

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

## #7 — Matte, 2005-11-12T16:12Z

Antingen har dina värden aldrig lagrats i sessionen, eller så misslyckas hämtning från sessionen.

Lägg följande allra överst i dina filer, före session_start():

```php
<?php

error_reporting(E_ALL);
ini_set("display_errors", "1");
```

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

## #8 — Iceyes, 2005-11-12T16:59Z

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /contact.php on line 6

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /contact.php on line 6
dem felen fick jag. var i koden skulle jag skriva $\_get för att få det att funka istället? 
ska jag ändra o skriva $\_post istället dit det ska sen då?

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

## #9 — @nders, 2005-11-12T17:00Z

Om det inte är sessionsvariabler du använder, byt då $\_SESSION mot $\_POST.
Du använder alltså $\_POST för att hämta värden du skickat från ett formulär med metoden POST.

Jag skrev $\_GET i tidigare inlägg, det var en felskrivning. Ber om ursäkt, $\_POST ska det alltså vara.

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

## #10 — Iceyes, 2005-11-12T17:12Z

Är bara lite osäker på vart jag ska skriva $\_post 

```
<b>Din Email:</b><br>
  <input type=text name="email" size="45" value="<? $_post ?>">
```

sen dit det ska skriva '.$\_GET\['email'\].' eller är jag helt ute och cycklar? 
är det annars nått mer jag ska göra?

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

## #11 — @nders, 2005-11-12T17:15Z

Du kör Vätternrundan på hoj ja. :)

I stället för **$\_SESSION\['realname'\]** och **$\_SESSION\['message'\]** i koden där du skapar mailet ska du använda **$\_POST\['realname'\]** och **$\_POST\['message'\]**.

Nu kan jag inte vara tydligare...

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

## #12 — Iceyes, 2005-11-12T17:41Z

nog för jag bor där vätternrundan startar men klarar mej utan den :) 

Ja okej den biten har jag förstått :)
men om jag skriver post där måste jag okså skriva $\_get i formuläret så den vet vad den ska hämta. det är den biten jag är osäker på var i repskive bit i formuläret $\_get ska stå ska det stå under value="\<? $\_post ?\>"\> där?

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

## #13 — @nders, 2005-11-12T17:43Z

> men om jag skriver post där måste jag okså skriva $\_get i formuläret så den vet vad den ska hämta.

Nej, gör inga andra ändringar. Dina inputfält heter ju *realname* och *message*, så det enda du behöver göra för att ta emot värdena är att använda $\_POST i ditt php-dokument där du tar emot värdena.

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

## #14 — Fredde Mannen, 2005-11-12T17:45Z

> **Iceyes skrev:**
>
> Den skickar medelandet precis som vanligt 
> adressfälet har precis samma adress som innan .php?done=1
> 
>
>
> ```php
> <?
> session_start() ;
> if(isset($_GET['done'])) { 
> 
>     echo '<center>Vi tackar för ditt meddelande '.$_SESSION['realname'].'<br /> 
>     Följande meddelande:<em><br />
> <br />
> '.$_SESSION['message'].'</em><br /><br />
>  har leverats</center>'; 
> 
>     unset($_SESSION['realname'], $_SESSION['message']); 
> 
> }
> ?>
> ```
>
> 
> 
> 
> den skriver endast så här ovastett va man skriver i formuläret:
> 
> Vi tackar för ditt meddelande 
> Följande meddelande:
> 
> 
> 
> har leverats

Första frågan jag ställer är 
\- Hur ser sendmail.php ut? 
\- Vilken fil är innehåller denna kod

```php
<?
session_start() ;
if(isset($_GET['done'])) { 

    echo '<center>Vi tackar för ditt meddelande '.$_SESSION['realname'].'<br /> 
    Följande meddelande:<em><br />
<br />
'.$_SESSION['message'].'</em><br /><br />
 har leverats</center>'; 

    unset($_SESSION['realname'], $_SESSION['message']); 

}
?>
```

Läste lite snabbt igenom resten av tråden, om sendmail.php innehåller ovanstående php-kod plus mailfunktionen, så vore enklast att plocka bort $\_SESSION\[\] och ersätta med $\_POST\[\], annars hoppas jag att du skappat sessionerna realname och message i sendmail.php och sedan skickat (ev. laddat om sidan) vidare till en annan sida som visar de du vill att ska visas.

Enklast är att använda $\_POST\[\] eller $\_GET\[\] beroende på vad du satt i formulärmetoden, och presentera de personen har skickat via mailfunktionen direkt i samma sida som mailfunktionen finns. 

Mvh fredde

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

## #15 — Iceyes, 2005-11-12T17:46Z

Aha, okej så det är inte mer avancerat än så :) 
har jag nån som helst användigt för koden 

```php
<? session_start() ; ?>
```

 då?

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

## #16 — Fredde Mannen, 2005-11-12T17:48Z

> **Iceyes skrev:**
>
> Aha, okej så det är inte mer avancerat än så :) 
> har jag nån som helst användigt för koden 
>
> ```php
> <? session_start() ; ?>
> ```
>
>  då?

Endast om du skall använda sessioner på sidan, annars har du ingen använding för session_start();

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

## #17 — Iceyes, 2005-11-12T17:53Z

> **Fredde Mannen skrev:**
>
> Första frågan jag ställer är 
> \- Hur ser sendmail.php ut? 
> \- Vilken fil är innehåller denna kod
>
>
> ```php
> <?
> session_start() ;
> if(isset($_GET['done'])) { 
> 
>     echo '<center>Vi tackar för ditt meddelande '.$_SESSION['realname'].'<br /> 
>     Följande meddelande:<em><br />
> <br />
> '.$_SESSION['message'].'</em><br /><br />
>  har leverats</center>'; 
> 
>     unset($_SESSION['realname'], $_SESSION['message']); 
> 
> }
> ?>
> ```
>
> 
> 
> Läste lite snabbt igenom resten av tråden, om sendmail.php innehåller ovanstående php-kod plus mailfunktionen, så vore enklast att plocka bort $\_SESSION\[\] och ersätta med $\_POST\[\], annars hoppas jag att du skappat sessionerna realname och message i sendmail.php och sedan skickat (ev. laddat om sidan) vidare till en annan sida som visar de du vill att ska visas.
> 
> Enklast är att använda $\_POST\[\] eller $\_GET\[\] beroende på vad du satt i formulärmetoden, och presentera de personen har skickat via mailfunktionen direkt i samma sida som mailfunktionen finns. 
> 
> Mvh fredde

```php
<?php 
session_start () ; 
  $email = $_POST['email'] ; 
  $message = $_POST['message'] ; 

  mail( "iceyes87@gmail.com", "[$subject]", 
  $message, "From: {$realname}\r\n" . 
     "Reply-To: {$email}\r\n" ); 

  $_POST['message'] = $message; 
  $_POST['realname'] = $realname; 

  header("Location: /index.php?done=1"); 
?>
```

där har du sendmail.php fast nu har jag ändrat från session till post

och här har du formresult.php 

```php
<?php 
session_start() ;
if(isset($_GET['done'])) { 

    echo '<center>Vi tackar för ditt meddelande '.$_POST['realname'].'<br /> 
    Följande meddelande:<em><br />
<br />
'.$_POST['message'].'</em><br /><br />
 har leverats</center>'; 

    unset($_POST['realname'], $_POST['message']); 

}
?>
```

visserligen verkar den fortfarande vägra skriva ut medelande, nånting jag missat?

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

## #18 — @nders, 2005-11-12T18:01Z

Men, då lagrade du ju värdena i sessionsvariabler! Varför sa du inte det från början så hade vi sluppit femton inlägg???

Då är det lika bra du tar tillbaka det du hade från början, så vi kan börja om, alternativt lyssna på Freddes förslag.

Och lade du verkligen Mattes kod absolut överst?

Edit: och eftersom jag inte är någon php-guru så tror jag att jag hoppar av här. Lycka till! :)

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

## #19 — Matte, 2005-11-12T18:04Z

Du kommer aldrig på detta sätt att kunna flytta över några variabler från sendmail.php till formresult.php.
Varför skickar du förresten din header("Location ") i sendmail.php till index.php när det är i formresult.php du har din kod ?

Antingen får du
1\. Göra din utskrift av meddelandet redan i sendmail.php.
2\. Skicka variablerna vidare som GET-variabler.
3\. Lägga variablerna i en session innan du skickar vidare.

Väljer du alternativ 3 får du fixa så din session startas i formresult.php.
Där hade du ett felmeddelande om att session_start() inte kunde sättas därför att headers redan skickats till webbläsaren.
Flytta då upp session_start() till allra överst på sidan.

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

## #20 — Iceyes, 2005-11-12T18:24Z

> **@nders skrev:**
>
> Men, då lagrade du ju värdena i sessionsvariabler! Varför sa du inte det från början så hade vi sluppit femton inlägg???
> 
> Då är det lika bra du tar tillbaka det du hade från början, så vi kan börja om, alternativt lyssna på Freddes förslag.
> 
> Och lade du verkligen Mattes kod absolut överst?
> 
> Edit: och eftersom jag inte är någon php-guru så tror jag att jag hoppar av här. Lycka till! :)

Som jag nog tidigare nämt så är jag helt värdelös på php därför jag sitter här på forumet, kan läsa vissa delar och förstå dem till viss del men mycket går ouppklarat

> **Matte skrev:**
>
> Du kommer aldrig på detta sätt att kunna flytta över några variabler från sendmail.php till formresult.php.
> Varför skickar du förresten din header("Location ") i sendmail.php till index.php när det är i formresult.php du har din kod ?
> 
> Antingen får du
> 1\. Göra din utskrift av meddelandet redan i sendmail.php.
> 2\. Skicka variablerna vidare som GET-variabler.
> 3\. Lägga variablerna i en session innan du skickar vidare.
> 
> Väljer du alternativ 3 får du fixa så din session startas i formresult.php.
> Där hade du ett felmeddelande om att session_start() inte kunde sättas därför att headers redan skickats till webbläsaren.
> Flytta då upp session_start() till allra överst på sidan.

det känns som alternativ 2 skulle vara lättast. och om det funkar felfritt kanske det skulle vara bäst att testa med det. 
men hur skulle jag då gå till väga?

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

---

Tråden på webben: https://www.webforum.nu/amne/php/137463-message-slutar-fungera  
Nästa sida: https://www.webforum.nu/amne/php/137463-message-slutar-fungera/page2.md
