---
title: "Gästbok vill inte fungera.."
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/164554-gästbok-vill-inte-fungera"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "mathias5"
published: "2007-09-16T10:09:54.000Z"
updated: "2007-09-16T14:13:49.000Z"
replies: 8
views: 1072
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/164554-gästbok-vill-inte-fungera"
---

# Gästbok vill inte fungera..

## #1 — mathias5, 2007-09-16T10:09Z

Jag använder mig av php till en gästbok där datan lagras i en .txt fil och jag har ett litet problem. När man skriver ett meddelande och postar så kommer detta felmeddelande upp:

Warning: Cannot modify header information - headers already sent by (output started at C:\\wamp\\www\\xdream\\gastbok.php:12) in C:\\wamp\\www\\xdream\\gastbok.php on line 81

När jag sedan uppdaterar sidan så syns inlägget som det ska och allt är frid och fröjd. Detta är rätt så störande och lite hjälp vore kanon!

EDIT: När jag lägger upp det på min server så fungerar det likadant, men inget felmeddelande kommer fram.

Lite hjälp vore bra! tack på förhand!  :) 

gasbok.php

```php
<?php  
// hämta gb.txt till en variabel
$filename = "gb.txt";
$handle = fopen($filename, "r");
$intext = fread($handle, filesize($filename));
fclose($handle);

$gbtext = $intext;
//ta bort a markeringen från texten
$gbtext = str_replace ("[a]", "", "$gbtext");
$gbtext = str_replace ("[/a]", "", "$gbtext");

          
//hantera formulär
if (isset($_POST['gb'])){
$namn = $_POST['namn'];
$text = $_POST['text'];
$datum = $_POST['datum'];

//ordna datum till svenska
$datum = str_replace ("Monday", "Måndag", "$datum");
$datum = str_replace ("Tuesday", "Tisdag", "$datum");
$datum = str_replace ("Wednesday", "Onsdag" , "$datum");
$datum = str_replace ("Thirsday", "Torsdag", "$datum");
$datum = str_replace ("Friday", "Fredag", "$datum");
$datum = str_replace ("Saturday", "Lördag", "$datum");
$datum = str_replace ("Sunday", "Söndag", "$datum");

//hindra om nån post e tom
        if (empty ($namn) || empty ($text)){
      header("Location: gastbok.php");
        exit;
        }
        
//vad som ska sparas
$intext = '[a]<tr><td width="250" bgcolor="#ecedec"><div id="namnfont"><b> ' . $namn . '</b></div></td><td width="150" bgcolor="#ecedec"><div id="namnfont"> ' . $datum . ' </div></td></tr><tr><td colspan="2" bgcolor="#fcfdec"><div id="textfont">' . $text . '</div></td></tr>[/a]'. $intext;

//spara data i en textfil
     $filnamn = "gb.txt";
     $fp = fopen($filnamn, "r+");
     flock($fp, LOCK_EX); 
     fwrite($fp,$intext); 
     flock($fp, LOCK_UN); 
     fclose($fp); 

//skicka oss tillbaka och läser in gästboken igen     
     header("Location: gastbok.php"); 
   exit;
}

?>

<html>
<head>

<style type="text/css">
<!--
html, body { margin: 0; height: 100%; width: 100%px; background-color:transparent}
#textfont { margin: 10px 0px 10px ; text-align: left; font-family: Tahoma; font-size: 11px; color: #000000}
#namnfont { margin: 0px 0px; text-valign: left; font-family: Tahoma; font-size: 11px; color: #000000}
-->
</style>

</head>

<table border="0" width="463px" cellspacing=0>
<?php echo $gbtext; ?>
</table>

<table width='400' border=0 cellspacing=0>

<tr><td>
<form action="gastbok.php" method="post" runat="server">
<div id='textfont'>Namn</div><input type="text" name="namn">
</td>

<tr><td colspan="2">
<div id="textfont">Meddelande</div>
<textarea type="text" name="text" rows="3" cols="47"></textarea>
</td></tr>

<tr><td colspan="2" align="right">
<input type="hidden" name="datum" value='<?php echo date("l j-M-Y"); ?>'
<input type="submit" id="gb" name="gb" value="Skicka" />
<input type="reset" id="gb" name="gb" value="Ångra" />
</td></tr>

</form>
</table>

</html>
```

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

## #2 — matlin, 2007-09-16T10:19Z

Inget får skickas till HTML filen före det att en header funktion kallas. Gissar på att du gör det i koden.. någonstans iaf. Vet inte om det är radbrytningarna som gör det eller vad det är.

Läs mer [här.](http://se2.php.net/manual/en/function.header.php)

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

## #3 — fiddler, 2007-09-16T10:32Z

Jag kopierade din kod rakt av och fick det att fungera, med undantag för första gången då jag fick en varning om att det inte fanns någon text i textfilen. Som matlin skriver har du troligtvis skrivit ut något tecken före ditt första \<?php. Det kan vara ett mellanslag eller en radbrytning.

Du lagrar väldigt mycket information i textfilen f.ö. Vore det inte bättre att lagra enbart det som är skickat med formuläret och lägga på formateringen när du skriver ut inläggen?

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

## #4 — mathias5, 2007-09-16T11:05Z

Yes. Jag har saker innan då denna kodsnutt ligger i en större fil till en hemsida jag gör. Det som finns innan är annan php och html.

Fiddler: jo, ska tänka på det!

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

## #5 — fiddler, 2007-09-16T11:32Z

Du skulle kunna lyfta ur delen som tar emot POST-datat och skriver till textfilen och lägga det i en egen fil.

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

## #6 — mathias5, 2007-09-16T11:41Z

Jag förstår hur du menar.. jag är rätt ny på php så en förklaring på vad du mer exakt menar vore kanon!  :)

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

## #7 — fiddler, 2007-09-16T13:25Z

Hackade din fil lite och delade upp den på två. Skulle egentligen vilja städa upp koden lite, men har inte tid just nu...

Bilagor:

- [gastbok.zip](https://www.webforum.nu/a/15920.zip)

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

## #8 — mathias5, 2007-09-16T13:44Z

Ett stort jävla tack till dig Fiddler! Fungerar kanon.

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

## #9 — fiddler, 2007-09-16T14:13Z

> **mathias5 skrev:**
>
> Ett stort jävla tack till dig Fiddler! Fungerar kanon.

Kul!  :bire

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

---

Tråden på webben: https://www.webforum.nu/amne/php/164554-gästbok-vill-inte-fungera
