---
title: "Förhindra att data skickas till databas vid uppdatering?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/187209-förhindra-att-data-skickas-till-databas-vid-uppdatering"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "kato"
published: "2011-06-28T15:28:53.000Z"
updated: "2011-06-30T15:23:54.000Z"
replies: 7
views: 1627
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/187209-förhindra-att-data-skickas-till-databas-vid-uppdatering"
---

# Förhindra att data skickas till databas vid uppdatering?

## #1 — kato, 2011-06-28T15:28Z

Jag har gjort en sida där jag vill att användarna ska kunna göra inlägg och kommentarer. Kommentarerna skrivs in via ett formulär, som ligger på en egen sida och skickas till en databas, varifrån de hämtas och visas på index-sidan. Problemet är att varje gång man uppdaterar index-sidan, så skickas den senast inlagda kommentaren en gång till till databasen. Hur kommer jag runt detta problem? Jag har letat och tror att det har något med header()- eller isset()-funktionerna att göra. Stämmer det? Hur funkar det i så fall? Tacksam för hjälp!

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

## #2 — Pedda, 2011-06-28T15:59Z

Koden som du nu har i index sidan som lägger till i databasen med flyttar du till en egen fil.
Sen lägger du till header koden nedan i den nya filen (efter att du har kört din insert).

```php
header("Location: index.php");
exit;
```

/edit
Välkommen till wF  :bire

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

## #3 — kato, 2011-06-28T19:25Z

> **[Pedda skrev:](https://www.webforum.nu/p/1536739)**
>
> Koden som du nu har i index sidan som lägger till i databasen med flyttar du till en egen fil.
> Sen lägger du till header koden nedan i den nya filen (efter att du har kört din insert).
>
>
> ```php
> header("Location: index.php");
> exit;
> ```
>
> 
> 
> /edit
> Välkommen till wF  :bire

Tack!  :) SÅ nu har jag skapat filen save_comment.php och lagt in följande kod i den:

```php
<?php
$comment_author = $_POST['comment_author'];
$comment_head = $_POST['comment_head'];
$comment_post = $_POST['comment_post'];
$comment_date = $_POST['comment_date'];

$connection = mysql_connect ("*******.mysql.binero.se", "114577_nm35952", "******");
mysql_select_db("114577-*****", $connection);

mysql_query("SET NAMES 'utf8'", $connection);

$query = "INSERT INTO comment (comment_head, comment_author, comment_post, comment_date) VALUES ('$comment_head', '$comment_author', '$comment_post', '$comment_date');";
$result = mysql_query($query, $connection);

header("Location: index.php");
exit; 
?>
```

Nu får jag dock inte in något i databasen över huvud taget... :( Vet inte om det är fel i den här filen eller nån annanstans.

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

## #4 — Tibbelit, 2011-06-28T21:35Z

Du har inte glömt att ändra adressen som datan skickas till i ditt formulär? Den ska ju inte längre skickas till index.php, utan till save_comment.php. Bara en snabb tanke från min sida, vilken kan vara enkel att missa =). För din PHP-kod fungerade väll innan?

```
<form action="save_comment.php" method="post">
....
</form>
```

\----------------------------------------
Edit:
Annars är det bra att använda sig utav felhantering/spårutskrifter när man får fel t.ex. kontrollera så att det inte är några problem att skicka data till databasen (slutet av din kod):

```php

if(mysql_query($query, $connection)) // Om allt går som det ska
{
     header("Location: index.php"); 
     exit;
}
else // Om det inte går att skriva till databasen
{
     echo "Det gick inte att skriva till databasen...";
}
```

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

## #5 — kato, 2011-06-29T21:27Z

Ok. Nu funkar mitt ena kommentarsfält i alla fall, bara det att det postas dubbelt!

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

## #6 — kato, 2011-06-30T14:20Z

Nån som fattar varför det blir dubbelt? Här är koden i save_comment.php:

```php
<?php
$connection = mysql_connect ("***-***.mysql.binero.se", "***_nm35952", "***");
mysql_select_db("***-***", $connection);

mysql_query("SET NAMES 'utf8'", $connection);	

$comment_author = $_POST['comment_author'];
$comment_head = $_POST['comment_head'];
$comment_post = $_POST['comment_post'];

$query = "INSERT INTO comment (comment_post, comment_head, comment_author) VALUES ('$comment_post', '$comment_head', '$comment_author');";
$result = mysql_query($query, $connection);

if(mysql_query($query, $connection)) // Om allt går som det ska
{
     header("Location: index.php"); 
     exit;
}
else // Om det inte går att skriva till databasen
{
     echo "Det gick inte att skriva till databasen...";
}  
?>
```

Och här är koden i index.php:

```php
<!DOCTYPE HTML>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
		<title>Titel</title>
		<link rel="stylesheet" type="text/css" href="style.css" />
	</head>
	<body>
<?php
$connection = mysql_connect ("***-***.mysql.binero.se", "***_nm35952", "***");
mysql_select_db("***-***", $connection);

mysql_query("SET NAMES 'utf8'", $connection);	

?>
		<div id="wrap">
			<div id="header">
					
			</div>
			<div id="content">
				<h1>Rubrik</h1>
				<p>... Texttexttext </p>
				
				<div id="blog">
					<h2>Rubrik:</h2>
					<a href="make_blogpost.html">Skriv inlägg</a>
<?php
	
$query = "SELECT * FROM blog ORDER BY id;";
$result = mysql_query($query, $connection);

while($array = mysql_fetch_array($result)) {
    echo "<h3>".$array["blog_head"]."</h1>";
    echo "<h4>".$array["blog_author"]."</h2>";
    echo "<p>".$array["blog_post"]."</p>";
}

?>
					</div>
				
				<div id="rightcol">
					
				<div id="comment">
					<h3>Senaste kommentarer:</h3>
					<a href="make_comment.html">Gör ett inlägg</a>
				
<?php

$query = "SELECT * FROM comment ORDER BY id;";
$result = mysql_query($query, $connection);

while($array = mysql_fetch_array($result)) {
    echo "<h3>".$array["comment_head"]."</h1>";
	echo "<h4>".$array["comment_author"]."</h2>";
    echo "<p>".$array["comment_post"]."</p>";
}

mysql_close($connection);
?>
				</div>
				</div>
			</div>
			
			<div class="clear">
			</div>
			<div id="sidfot">
				&copy blablabla
			</div>
		</div> 
	</body>
</html>
```

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

## #7 — Pedda, 2011-06-30T15:00Z

I save_comment.php ändrar du raden:

```php
if(mysql_query($query, $connection)) // Om allt går som det ska
{
     header("Location: index.php"); 
     exit;
}
else // Om det inte går att skriva till databasen
{
     echo "Det gick inte att skriva till databasen...";
}
```

till:

```php
if(!result)) // Om allt inte går som det ska
{
     echo "Det gick inte att skriva till databasen...";
}
else // Om det går att skriva till databasen
{
     header("Location: index.php"); 
     exit;
}
```

Förklaring: mysql_query returnerar false om din insert misslyckas.

/edit
blev lite fel först

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

## #8 — kato, 2011-06-30T15:23Z

> **[Pedda skrev:](https://www.webforum.nu/p/1536813)**
>
> I save_comment.php ändrar du raden:
>
>
> ```php
> if(mysql_query($query, $connection)) // Om allt går som det ska
> {
>      header("Location: index.php"); 
>      exit;
> }
> else // Om det inte går att skriva till databasen
> {
>      echo "Det gick inte att skriva till databasen...";
> }
> ```
>
> till:
>
>
> ```php
> if(!result)) // Om allt inte går som det ska
> {
>      echo "Det gick inte att skriva till databasen...";
> }
> else // Om det går att skriva till databasen
> {
>      header("Location: index.php"); 
>      exit;
> }
> ```
>
> 
> 
> Förklaring: mysql_query returnerar false om din insert misslyckas.
> 
> /edit
> blev lite fel först

Tack! Nu funkar det!

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

---

Tråden på webben: https://www.webforum.nu/amne/php/187209-förhindra-att-data-skickas-till-databas-vid-uppdatering
