---
title: "postar helatiden"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/102775-postar-helatiden"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "kobranturre"
published: "2004-05-02T13:25:28.000Z"
updated: "2004-05-02T18:37:46.000Z"
replies: 12
views: 405
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/102775-postar-helatiden"
---

# postar helatiden

## #1 — kobranturre, 2004-05-02T13:25Z

Hej!

Så här ser min databas ut:

> CREATE TABLE \`inlagg\` (
> \`id\` INT NOT NULL AUTO_INCREMENT ,
> \`datum\` VARCHAR( 11 ) NOT NULL ,
> \`tid\` VARCHAR( 6 ) NOT NULL ,
> \`namn\` VARCHAR( 15 ) NOT NULL ,
> \`mail\` VARCHAR( 25 ) NOT NULL ,
> \`meddelandet\` VARCHAR( 200 ) NOT NULL ,
> UNIQUE (
> \`id\`
> )
> );

Så här ser formuläret ut:

```php
<form name="form1" method="get" action="gastbok.php">
    <p>
      <input type="text" name="namn">
</p>
    <p>&nbsp;</p>
    <p>
      <input type="text" name="mail">
</p>
    <p>&nbsp;</p>
    <p>
      <textarea name="meddelandet" cols="30" rows="8"></textarea>
</p>
    <p>
      <input name="Submit" type="submit" class="style19" value="Skicka">
    </p>
  </form>
```

Och så här ser php-koden ut:

```php
  <?php
  
  $namn = $_GET['namn'];
  $mail = $_GET['mail'];
  $meddelandet = $_GET['meddelandet'];
  
  $monad = array('Januari', 'Februari', 'Mars', 'April', 'Maj', 'Juni', 'Juli', 'Augusti', 'September', 'Oktober', 'November', 'December');
$nummer = date("n");
$nummer1 = $nummer-1;
  
  $datum = date(m)." ".$monad[$nummer1]." ".date(Y);
  
  $tid = date("H:i");
  
  $open = mysql_connect("localhost", "", "") or die("Kopplingen funkar inte!");

mysql_select_db("gastbok") or die("Kunde inte välja databasen");
if(isset($_GET['Submit'])) {
$sql = ("INSERT inlagg (datum, tid, namn, mail, meddelandet) VALUES ('$datum', '$tid', '$namn', '$mail', '$meddelandet')");
$resultat = mysql_query($sql) or die(mysql_error());
header("Location: gastbok.php");
}

$resultat = mysql_query($sql) or die(mysql_error());

$sql1 = ("SELECT * FROM inlagg");
$resultat1 = mysql_query($sql1) or die(mysql_error());

while ($res = mysql_fetch_object($resultat1)) {
      echo ("<table><tr><td><b style='color:red'>".$res->namn."</b></td><td><b style='color:red'>".$res->datum."&nbsp;&nbsp;&nbsp;".$res->tid."</b><br></td></tr><tr><td colspan='2'>".$res->meddelandet."</td></tr></table>");

   }
  
  ?>
```

Problemet är att den postar även när man refreshar!

Jag skulle förut göra en "röstningssystem" men fick lägga ner allt pga detta problem! Hur fixar jag så att den ENDAST postar när man trycker på submit!

(Jag har även provat byta ut GET mot POST).

Tack på förhand :)

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

## #2 — magnusfernstrom, 2004-05-02T13:28Z

Varför inte bara kolla i PHP-koden om något av formulären var ifyllt med en IF-sats?

Om ett var ifyllt så kör vi resten av koden, annars lämnar vi det, typ.

Kan inte PHP, men i ASP skulle jag nog gjort så.

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

## #3 — kobranturre, 2004-05-02T13:32Z

Nu är det så att jag bara hållt på med php och programmering i 1 vecka så jag förstod det inte.

Men kan det vara ngt fel på min dator eller webbläsare (i så fall både IE och FF).  Första gången man går in så postar den inget å grund av att det inte finns ngt.

Sedan så postar man och refreshar, då postas förra inlägget igen. Så den postar inlägget innan. Fast jag går in och tömmer databasen så postar den förra inlägget

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

## #4 — magnusfernstrom, 2004-05-02T13:33Z

Länk till sidan?

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

## #5 — kobranturre, 2004-05-02T13:38Z

Kan passa på att säga att jag ändrade 

i koden...ändrade

```php
if(isset($_POST['Submit'])) {

$sql = ("INSERT inlagg (datum, tid, namn, mail, meddelandet) VALUES ('$datum', '$tid', '$namn', '$mail', '$meddelandet')");

 

$resultat = mysql_query($sql) or die(mysql_error());

header("Location: gastbok.php");

}
```

till

```php
$sql = ("INSERT inlagg (datum, tid, namn, mail, meddelandet) VALUES ('$datum', '$tid', '$namn', '$mail', '$meddelandet')");

 

$resultat = mysql_query($sql) or die(mysql_error());
```

eftersom annars så stod det bara 

> Frågan var tom

edit: ingen mer länk

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

## #6 — magnusfernstrom, 2004-05-02T13:42Z

Huh! Den postar ju två stycken när man uppdaterar...förbryllande.

Men testa med att göra en IF-sats som kollar om något formulärfält är ifyllt.

I ASP skulle det se ut typ 

```
If Request.Form("guestbookNamn") = "" Then
'kör inte kod
Else
'kör kod
End If
```

Men som sagt, jag kan inte PHP :( Men jag kan inte tänka mig att koden för detta i PHP skulle vara såååå olik :)

Men du får nog invänta någon PHP-kunnig (eller ja, i alla fall någon som har koll på grunderna :) ) som kan besvara din fråga. Ledsen att jag inte kan hjälpa dig.

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

## #7 — kobranturre, 2004-05-02T13:46Z

hehe glömde säga att den även dubbelpostar.

min unika egna kod ;)  :p

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

## #8 — kobranturre, 2004-05-02T13:50Z

vad ska den göra i Else tycker du?

Editr: inte i else, det första alternativet :)

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

## #9 — magnusfernstrom, 2004-05-02T13:52Z

If koden kollar ju om något fält är ifyllt, OM det är är tomt så skall den göra detta, om INTE, gör det andra. Så lämpligast vore ju om du lade koden som lägger till datan i databasen där :) (Gästbokskoden alltså ;) )

/RED 

PHP-kod då, förstås. Min kod är ASP och kommer ju inte fungera, men det förstod du kanske :)

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

## #10 — kobranturre, 2004-05-02T13:58Z

jag provade det som du sa men det funka inte?!

Den verkar läsa fälten som fyllda fast de är tomma när man refreshar :(

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

## #11 — kobranturre, 2004-05-02T14:29Z

Nu ser koden ut så här.

Problemet är att den inte "insertar" i databasen fast jag trycker på skicka!

```php
 <?php
  
  $namn = $_POST['namn'];
  $mail = $_POST['mail'];
  $meddelandet = $_POST['meddelandet'];
  
  $monad = array('Januari', 'Februari', 'Mars', 'April', 'Maj', 'Juni', 'Juli', 'Augusti', 'September', 'Oktober', 'November', 'December');
$nummer = date("n");
$nummer1 = $nummer-1;
  
  $datum = date(m)." ".$monad[$nummer1]." ".date(Y);
  
  $tid = date("H:i");
  
  $open = mysql_connect("localhost", "", "") or die("Kopplingen funkar inte!");

mysql_select_db("gastbok") or die("Kunde inte välja databasen");

if(isset($_POST['Submit'])) {
$sql = ("INSERT inlagg (datum, tid, namn, mail, meddelandet) VALUES ('$datum', '$tid', '$namn', '$mail', '$meddelandet')");
$resultat = mysql_query($sql) or die(mysql_error());
header("Location: gastbok.php");
exit;
}

$sql1 = ("SELECT * FROM inlagg");
$resultat1 = mysql_query($sql1) or die(mysql_error());

while ($res = mysql_fetch_object($resultat1)) {
      echo ("<table><tr><td><b style='color:red'>".$res->namn."</b></td><td><b style='color:red'>".$res->datum."&nbsp;&nbsp;&nbsp;".$res->tid."</b><br></td></tr><tr><td colspan='2'>".$res->meddelandet."</td></tr></table>");

   }
  
  ?>
```

Formulären:

```
  <form name="form1" method="get" action="gastbok.php">
    <p>
      <input type="text" name="namn">
</p>
    <p>&nbsp;</p>
    <p>
      <input type="text" name="mail">
</p>
    <p>&nbsp;</p>
    <p>
      <textarea name="meddelandet" cols="30" rows="8"></textarea>
</p>
    <p>
      <input name="Submit" type="submit" class="style19" value="Skicka">
    </p>
  </form>
```

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

## #12 — Bäckman, 2004-05-02T18:32Z

Prova att lägga in en unset($\_POST\["submit"\]) så som jag har gjort nedan. Kan nämligen hända att den inte nollställs, eller vad man ska kalla det, när man skickar tillbaka användare till samma sida.

```php
<?php
  
  $namn = $_POST['namn'];
  $mail = $_POST['mail'];
  $meddelandet = $_POST['meddelandet'];
  
  $monad = array('Januari', 'Februari', 'Mars', 'April', 'Maj', 'Juni', 'Juli', 'Augusti', 'September', 'Oktober', 'November', 'December');
$nummer = date("n");
$nummer1 = $nummer-1;
  
  $datum = date(m)." ".$monad[$nummer1]." ".date(Y);
  
  $tid = date("H:i");
  
  $open = mysql_connect("localhost", "", "") or die("Kopplingen funkar inte!");

mysql_select_db("gastbok") or die("Kunde inte välja databasen");

if(isset($_POST['Submit'])) {
$sql = ("INSERT inlagg (datum, tid, namn, mail, meddelandet) VALUES ('$datum', '$tid', '$namn', '$mail', '$meddelandet')");
$resultat = mysql_query($sql) or die(mysql_error());
unset($_POST["submit"]); /// DENNA RAD LADE JAG TILL
header("Location: gastbok.php");
exit;
}

$sql1 = ("SELECT * FROM inlagg");
$resultat1 = mysql_query($sql1) or die(mysql_error());

while ($res = mysql_fetch_object($resultat1)) {
      echo ("<table><tr><td><b style='color:red'>".$res->namn."</b></td><td><b style='color:red'>".$res->datum."&nbsp;&nbsp;&nbsp;".$res->tid."</b><br></td></tr><tr><td colspan='2'>".$res->meddelandet."</td></tr></table>");

   }
  
  ?>
```

**Redigering**
Nu gjorde jag bort mig igen. Var ju inte dubbelpostningen du hade problem med längre. :)

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

## #13 — Bäckman, 2004-05-02T18:37Z

Men du, du har ju missat i din SQL-fråga?

```php
if(isset($_POST['Submit'])) {
$sql = ("INSERT inlagg (datum, tid, namn, mail, meddelandet) VALUES ('$datum', '$tid', '$namn', '$mail', '$meddelandet')");
$resultat = mysql_query($sql) or die(mysql_error());
unset($_POST["submit"]); /// DENNA RAD LADE JAG TILL
header("Location: gastbok.php");
exit;
}
```

Ska vara

```php
if(isset($_POST['Submit'])) {
$sql = ("INSERT INTO inlagg (datum, tid, namn, mail, meddelandet) VALUES ('$datum', '$tid', '$namn', '$mail', '$meddelandet')");
$resultat = mysql_query($sql) or die(mysql_error());
unset($_POST["submit"]); /// DENNA RAD LADE JAG TILL
header("Location: gastbok.php");
exit;
}
```

Lade alltså till "INTO" efter "insert" i sql-frågan. Kanske funkar. :)

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

---

Tråden på webben: https://www.webforum.nu/amne/php/102775-postar-helatiden
