---
title: "hur blir jag av med att en sida vill skicka om informationen vid refresh?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/76043-hur-blir-jag-av-med-att-en-sida-vill-skicka-om-informationen-vid-refresh"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "mangan"
published: "2003-05-05T23:17:39.000Z"
updated: "2003-05-09T07:58:41.000Z"
replies: 16
views: 506
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/76043-hur-blir-jag-av-med-att-en-sida-vill-skicka-om-informationen-vid-refresh"
---

# hur blir jag av med att en sida vill skicka om informationen vid refresh?

## #1 — mangan, 2003-05-05T23:17Z

tjenare!

har en gästbok som består av en sida där man både postar mess och kollar i gästboken. När man skickar ngt ifrån formuläret till den egna sidan så går det alldeles utmärkt, men om jag sedan tar refresh i min browser så vill den skicka informationen igen vilket leder till att jag får ännu ett likadant inlägg i min gästbok.
Jag har testat att sätta mina skickade variabler till NULL efter det att dom lagrats i databasen men det hjälper inte, det frågas fortfarande om jag vill ta retry.....
Ska man "förstöra" värdena som skickats eller hur ska man göra?

Ngn som har en lösning?

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

## #2 — Mungo, 2003-05-06T09:00Z

Det är troligen för att du submittat data via POST. Du kan lösa det genom att ha en separat PHP-sida för själva postningen till databasen som sen redirectar till gästbokssidan.

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

## #3 — Matte, 2003-05-06T09:03Z

Det behövs ingen ny sida. Det räcker med att man laddar om sidan med header("Location: sida.php") efter att man sparat till databasen.

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

## #4 — mangan, 2003-05-06T19:44Z

det funka inte så bra.....

Warning: Cannot add header information - headers already sent by (output started at /customers/aptrut.com/aptrut.com/httpd.www/v3/gbtitta.php:8) in /customers/aptrut.com/aptrut.com/httpd.www/v3/gbtitta.php on line 48

fick jag istället......
jag kanske inte var tillräckligt tydlig så jag gör ett nytt försök:

sidan gbtitta.php laddas. ett inlägg görs och gbtitta.php laddas igen. inlägget skrivs till databasen och sedan skrivs alla inlägg ut. men det är sen det uppstår problem. om man tar refresh efter att man har gjort ett inlägg kommer det att postas igen och igen och igen så länge man gör refresh. någon slags tidsbegränsning av hur ofta man får posta nya meddelanden vill jag inte ha.
\[php\]
//----------skickar värden till databas om variabler tagits emot----------------

if ($namn != null && $text !=null){
$date = hamta_datum();
$tid = hamta_tid();

//skapar databaskoppling
$db = mysql_connect("localhost","XXXXXXX","XXXXXX") or die ("Databaskopplingen kuka ur!");
mysql_select_db("XXXXXX",$db);

//Skickar variablerna till databasen    typer:datum=date,tid=string,namn=string,text=string
$sql="INSERT INTO aptrut_com.gastbok 
	(datum,tid,namn,text) 
	VALUES 
	('$date','$tid','$namn','$text')";

mysql_query($sql, $db);

}
//header("Location: gbtitta.php"); // denna raden gav felmeddelandet

//---------------skriver ut databasen-------------------------------

//-------formuläret------------
\<form method="post" action="gbtitta.php" target="main"\>
Namn:\<br\>
\<input type=text name="namn" size=30 maxlength=15\>\<br\>
Text:\<br\>
\<textarea cols="28" rows="12" name="text"\>

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

## #5 — Matte, 2003-05-06T20:21Z

Före en header får man inte skicka något till webbläsaren. Ingen HTML, ingen echo eller print. Ej heller någon tomrad eller mellanslag före PHP-taggen.

Lägg din kod för att spara överst i skriptet, och se till att du inte skickar något till webbläsaren före headern.

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

## #6 — mangan, 2003-05-07T11:20Z

så du menar att jag ska lägga header() högst upp egentligen? blir det inte problem när jag skicka saker till sidan då från formuläret?

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

## #7 — Matte, 2003-05-07T11:38Z

Tvärtom.

Själv brukar jag försöka placera all kod som ska spara i databas mm överst i skriptet. 

Endast det som hör ihop med utskrifter brukar jag lägga inne bland HTML-koden.

På så sätt får man ett bättre samlat grepp över koden när man samlar det som hör ihop med varandra.

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

## #8 — Mungo, 2003-05-07T14:30Z

...eller så gör man som jag föreslog och lägger det i olika filer. Det är mest en smaksak och alla programmerare har sina egna idéer och rutiner...

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

## #9 — mangan, 2003-05-07T20:00Z

jag får ingen ordning på det här.......

nu ser min kod ut så här rent tankemässigt:

1\. php-block med kod för eventuella inlägg, avslutas med header("Location: gbhitta.php")

2\. html-block med utskrift av formulär och gästbok(php/mysql)

snart så blir det väl en "mellansida" antagligen......

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

## #10 — Matte, 2003-05-07T20:19Z

En tomrad eller mellanslag före den inledande PHP-taggen resulterar i att något skickas till webbläsaren.

Inkluderar du en fil får du dessutom se till att det, i den inkluderade filen, inte finns något tomtecken efter den avslutande PHP-taggen.
Har du en inkluderad fil så sätt markören efter den avslutande PHP-taggen och tryck upprepade gånger på delete så du är säker på att där inte finns något.

Kan du visa hur din kod ser ut nu, fram till och med header() ?

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

## #11 — mangan, 2003-05-08T15:23Z

hade inga mellanslag eller tomma rader där du sa att jag skulle kolla. här kommer koden fram till header().

```php
<?php
include("funkis.php");

//----------skickar värden till databas om variabler tagits emot----------------
if ($namn != null && $text !=null){
	$date = hamta_datum();
	$tid = hamta_tid();

//--------------formaterar texten-------------------------
	$text = strip_tags($text); //strippar på html och php taggar
	$text = str_replace("fanskap","kiss",$text);
	$text = str_replace("fan","apa",$text);
	$text = str_replace("hemma","i kojan",$text);
	$text = str_replace("jäkla","nedrans",$text);
	$text = str_replace("skit","guano",$text);
	$text = nl2br($text); 

	//skapar databaskoppling
	$db = mysql_connect("localhost","X","X") or die ("Databaskopplingen balla ur!");
	mysql_select_db("X",$db);

	//Skickar variablerna till databasen    typer:datum=date,tid=string,namn=string,text=string
	$sql="INSERT INTO X.gastbok 
		(datum,tid,namn,text) 
		VALUES 
		('$date','$tid','$namn','$text')";
	mysql_query($sql, $db);
}
header("Location: gbtitta.php");
?>
```

sen är det bara utskriften som görs via html och php/mysql.

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

## #12 — nkrantz, 2003-05-08T16:48Z

hur ser det ut i funkis.php filen då? Kanske finns något där som skriver ut html

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

## #13 — mangan, 2003-05-08T19:42Z

ingen html i funkis men här e den:

```php
<?php

//funktion som hämtar datum och formaterar den ex. 030103
function hamta_datum() {
	$today = getdate(); 
	if ($today['mon'] < 10) {
		$mon = "0".$today['mon'];
	} else {
		$mon = $today['mon'];
	}
	if ($today['mday'] < 10){
		$day = "0".$today['mday'];
	} else {
		$day = $today['mday'];
	}
	return $date = $today['year'].$mon.$day;
}

//funktion för att hämta aktuell tid och formatera den ex. 20:03:30
function hamta_tid(){
	$todag = getdate(); 
	if ($todag['seconds'] < 10) {
		$sec = "0".$todag['seconds'];
	} else {
		$sec = $todag['seconds'];
	}
	if ($todag['minutes'] < 10) {
		$min = "0".$todag['minutes'];
	} else {
		$min = $todag['minutes'];
	}
	if ($todag['hours'] < 10) {
		$hour = "0".$todag['hours'];
	} else {
		$hour = $todag['hours'];
	}
	return $time = $hour.":".$min.":".$sec;
}
?>
```

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

## #14 — Matte, 2003-05-08T20:47Z

Har du kollat upp så du inte har något mellanslag, tomrad eller dylikt, både före och efter PHP-taggarna i funkis.php ?

Hur ser felmeddelandet ut nu ?

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

## #15 — mangan, 2003-05-08T21:23Z

well....vad ska man säga. den laddar typ för alltid.... det kommer inte ngn sida alls. har dubbelkollat och trippelkollat alla inblandade scriptfiler. det finns inga mellanslag eller extra rader före eller efter php-taggarna.

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

## #16 — Matte, 2003-05-08T21:38Z

Flytta in headern i if-satsen.

Istället för:

```
<?php
include("funkis.php");

//----------skickar värden till databas om variabler tagits emot----------------
if ($namn != null && $text !=null){
   .
   .
   .
}
header("Location: gbtitta.php");
?>
```

 
Skriver du:

```
<?php
include("funkis.php");

//----------skickar värden till databas om variabler tagits emot----------------
if ($namn != null && $text !=null){
   .
   .
   .
   header("Location: gbtitta.php");
   exit;
}

?>
```

 
Som det nu är så fastnar du i en slinga där sidan hela tiden laddas om.

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

## #17 — mangan, 2003-05-09T07:58Z

OK! nu funkar det men problemet med att om man bara fyllde i sitt namn och skickade och sen tog refresh kvarstod. fick löst det med en enkel else if-sats:

```php
 else if($namn != null || $text != null){
	header("Location: gbtitta.php");
	exit;
}
```

tack så jättemycket för hjälpen allihop! :birp

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

---

Tråden på webben: https://www.webforum.nu/amne/php/76043-hur-blir-jag-av-med-att-en-sida-vill-skicka-om-informationen-vid-refresh
