---
title: "Undefined index"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/152895-undefined-index"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "tanten"
published: "2006-10-23T21:42:13.000Z"
updated: "2006-10-24T21:55:05.000Z"
replies: 18
views: 630
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/152895-undefined-index"
---

# Undefined index

## #1 — tanten, 2006-10-23T21:42Z

Ser inte vad som är fel, kan någon hjälpa mig?
Jag får Undefined index: submit in /home/...on line 95 och det är den första/enda if-satsen i denna kod som är rad 95:

```php
<?php
if($_POST['submit'])
{
   $namn= $_POST['namn'];
   $besk = $_POST['besk'];
   $finnsi = $_POST['finnsi'];
      
   $result=mysql_query("INSERT INTO smultron (nr,namn,besk,finnsi)".
      "VALUES ('', '$namn', '$besk', '$finnsi')"); 

    //confirm
   echo "Query Finished"; 
}
else
{
// stänger php för att lägga in html-kod
?>
<h3>Lägg till en plats</h3>
 <form method="post" action="socknar.php">
 Namn<input type="text" name="namn" />
 Beskrivning <textarea name="besk"></textarea>
 <input type="hidden" name="finnsi" /><?php $r['ID']?>
 <input type="submit" value="submit" name="submit" /></form> 
 
 <?php
} //close the else statement
?>
```

Tabellen ser ut så här:

```
smultron (
  `nr` int(11) NOT NULL auto_increment,
  `namn` varchar(200) NOT NULL default '',
  `besk` text NOT NULL,
  `finnsi` int(11) NOT NULL default '',
  PRIMARY KEY  (`nr`),
  KEY `finnsi` (`finnsi`)
```

Eftersom jag är ny på detta får ni säga till om ni ser något annat tok också   :)

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

## #2 — Peter S, 2006-10-23T21:54Z

Är det POST-metoden du använder för att skicka formuläret?

Annars kan du testa

```php
if(isset($_POST['submit']) && $_POST['submit'])
```

**Red.**/ Ser nu att det faktiskt är POST som används...   :r

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

## #3 — Pedda, 2006-10-23T22:02Z

ändra din sql sats till

```php
$result=mysql_query("INSERT INTO smultron (namn,besk,finnsi)".
      "VALUES ('$namn', '$besk', '$finnsi')");
```

eftersom nr är autoincrement så ska du inte lägga in något där, det sköts ju automatiskt.

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

## #4 — tanten, 2006-10-23T22:03Z

> **Peter S skrev:**
>
> Är det POST-metoden du använder för att skicka formuläret?
> 
> Annars kan du testa
>
>
> ```php
> if(isset($_POST['submit']) && $_POST['submit'])
> ```

Med det försvann index-felet men ingenting matas in i databasen... så det måste finnas något mer fel, men får inget error...  :(

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

## #5 — tanten, 2006-10-23T22:10Z

Jag provade med din Pedda också, men fortfarande matas inget in i databasen...

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

## #6 — Pedda, 2006-10-23T22:16Z

Inget felmeddelande?

lägg till die för att få ett felmeddelande om det är i sql satsen.
annars så verkar du ju inte komma in i if-satsen.

```php
 $result=mysql_query("INSERT INTO smultron (namn,besk,finnsi)".
      "VALUES ('$namn', '$besk', '$finnsi')") or die(mysql_error()) ;
```

/red
skrivs "Query Finished" ut när du har postat?

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

## #7 — tanten, 2006-10-23T22:23Z

Nej inget felmeddelande... Vid submit hoppar den tillbaka till sidan där man börjar så den verkar inte behålla något av nånting... i vare sig variabler eller arrays. Felet kanske finns någon annan stans. Orkar du se hela koden? Inte så lång

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

## #8 — Pedda, 2006-10-23T22:26Z

Då kommer du ju inte in i if-satsen.
Testa med endast

```php
if(isset($_POST['submit']))
```

Funkar inte det så visa mer kod.

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

## #9 — tanten, 2006-10-23T22:33Z

Fungerade inte.

```php
<?php
$query = "SELECT *
          FROM socknar";
          
$result = mysql_query($query);
echo "<ul>";
while ($r = mysql_fetch_array($result)) {
   echo("<li><a href=\"socknar.php?hid={$r['ID']}\">");
   echo($r['namn'] . "</a></li>\n");
}
echo "</ul>";

if (isSet($_GET['hid']) && isDigit($_GET['hid']) && checksocknar($_GET['hid'])) 
   $ID = $_GET['hid'];
else {
   echo "<p>Våra socknar, Välj någon</p>";
   exit(); 
}
 $query = "SELECT * FROM socknar WHERE ID = $ID";
$result = mysql_query($query);
if ($h = mysql_fetch_array($result)) {
   echo "<div id=\"container\" >  <h1>{$h['namn']}</h1>";
	}
$query = "SELECT *
FROM `smultron`
WHERE finnsi = $ID";
$result = mysql_query($query);
while ($om = mysql_fetch_array($result)) {
   echo "<h2>{$om['namn']} </h2>";
	echo "<p>{$om['besk']} </p>\n";
	} 
?>
 
<?php
if(isset($_POST['submit']))
{
```

 och sedan det jag har skrivit in men med dina ändringar.

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

## #10 — Pedda, 2006-10-23T22:53Z

Ok, ser nu att du inte skickar med idnummret rätt i ditt hiddenfält för "finnsi"

```php
 <input type="hidden" name="finnsi" /><?php $r['ID']?>
```

ändrar du till 

```php
 <input type="hidden" name="finnsi" value="<?=$finnsi?>" />
```

Sen får vi se om det funkar.

/red
jag gjorde lite fel

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

## #11 — tanten, 2006-10-23T23:03Z

Nej det fungerar fortfarande inte... men är din senastee ändring rätt, för jag får ingen färgmarkering i min texteditor?

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

## #12 — Pedda, 2006-10-23T23:09Z

ja, \<?=$finnsi?\> är en förkortning av \<?php echo $finnsi; ?\>

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

## #13 — tanten, 2006-10-23T23:10Z

Så ska den väl fånga socknarnas ID väl? Har suttit så länge med det här nu att jag börjar bli riktigt trött :-)

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

## #14 — Pedda, 2006-10-23T23:13Z

Arghh, jag måste vara trött. 
$finnsi är ju inte satt när du har formuläret uppe. Det ska ju vara

```php
<input type="hidden" name="finnsi" value="<?=$_GET['hid']?>" />
```

Sen får vi se om det funkar, för du verkar ju ännu inte komma in i if-satsen.

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

## #15 — tanten, 2006-10-23T23:25Z

Nej det vill sig inte. Ska nog sova på saken för nu rullar ögon i kors. Kanske ser man lite klarare efter lite vila... Tack så mycket så här långt :-)

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

## #16 — Pedda, 2006-10-24T10:52Z

Nu har jag testat din kod och den funkar här hos mig iaf.

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

## #17 — tanten, 2006-10-24T13:15Z

Jag blir sååå avundsjuk!...
Klipper jag ut formuläret och kör det ensamt med ett satt ID i det så får jag "Query Finished" men aldeles tomt i databasen.
Kör jag den som den ser ut här med hela koden kommer jag till "Våra socknar, Välj någon", så då fungerar ingenting.
Tar jag bort formuläret och matar in smultron manuellt så fungerar det perfekt... Suck!
Finns det något i formulär-koden som inte fungerar med php 4.1?

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

## #18 — Pedda, 2006-10-24T13:30Z

Ok, funkade för att jag tog bort alla sql-satser och sånt när jag testade.
Du har koden:

```php
if (isSet($_GET['hid']) && isDigit($_GET['hid']) && checksocknar($_GET['hid']))
   $ID = $_GET['hid'];
else {
   echo "<p>Våra socknar, Välj någon</p>";
   exit();
}
```

 
När du postar formuläret så har du ju inte hid i adressfältet vilket gör att du kommer in i din else-sats där du har exit() vilket gör att koden stoppas från vidare exekvering.

Lägg if-satsen där du kollar $\_POST\['submit'\] i en egen fil som körs när formuläret postas istället.

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

## #19 — tanten, 2006-10-24T21:55Z

Det fick bli en till fil... Tack så jättemycket Pedda för hjälpen.

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

---

Tråden på webben: https://www.webforum.nu/amne/php/152895-undefined-index
