---
title: "Problem med if satser."
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/119286-problem-med-if-satser"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "jiggan"
published: "2005-01-04T16:10:22.000Z"
updated: "2005-01-04T17:23:40.000Z"
replies: 14
views: 390
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/119286-problem-med-if-satser"
---

# Problem med if satser.

## #1 — jiggan, 2005-01-04T16:10Z

Ja, jag har fått ett litet problem med mina if satser. De är till för att kontrollera ett par formulär innan informationen sparas. 
Ibland fungerar dem men ibland verkar det som att dem bara hoppas över på något vis. De ser ut så här:

```php
if ($_POST['y'] == "0")
{
	header("Location:index.php?section=regga&y=fel");
}
if ($_POST['m'] == "0")
{
	header("Location:index.php?section=regga&m=fel");
}
if ($_POST['d'] == "0")
{
	header("Location:index.php?section=regga&d=fel");
}
if ($_POST['lan'] == "0")
{
	header("Location:index.php?section=regga&lan=fel");
}
```

Någon som vet varför det inte fungerar ibland?

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

## #2 — Snakes, 2005-01-04T16:16Z

1\. Vad är dem för fält?
2\. Vilka fungerar vilka inte....
3\. Felmeddelande?
4\. Testa med:

```php
if (strlen($_POST['y']) == 0)
{
    header("Location:index.php?section=regga&y=fel");
}
if (strlen($_POST['m']) == 0)
{
    header("Location:index.php?section=regga&m=fel");
}
if (strlen($_POST['d']) == 0)
{
    header("Location:index.php?section=regga&d=fel");
}
if (strlen($_POST['lan']) == 0)
{
    header("Location:index.php?section=regga&lan=fel");
}
```

Det borde kanske funka!

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

## #3 — Duffer, 2005-01-04T16:32Z

jag håller nog med snakes... just nu kolla scriptet ifall man skrivit 0 inte ifall den är "noll"...
Om du upplever problem med att den fortsätter och reggar datan i databasen kan du ju köra en exit för att vara på säkra sidan att den inte utför något mer...

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

## #4 — jiggan, 2005-01-04T16:35Z

Asså det är ett sånt är Select formulär där value = 0 om man inte har ändrat. Kotrollen funkar ibland och man kommer tillbaka och får ett felmeddelande men inte alltid.

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

## #5 — Snakes, 2005-01-04T16:39Z

Testa att byta 0 till nåt annat, typ "noll"...

```php
if ($_POST['y']] == "noll")
{
    header("Location:index.php?section=regga&y=fel");
}
if ($_POST['m'] == "noll")
{
    header("Location:index.php?section=regga&m=fel");
}
if ($_POST['d'] == "noll")
{
    header("Location:index.php?section=regga&d=fel");
}
if ($_POST['lan'] == "noll")
{
    header("Location:index.php?section=regga&lan=fel");
}
```

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

## #6 — jiggan, 2005-01-04T16:42Z

Snakes snackar du i nattmössan nu eller? :P
\<select name="y"\>
\<option value="0"\>År
\<option value="1990"\>1990
Ja osv...Så default blir det ju 0 om man inte ändrat. Men varför fungerar det ibland?

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

## #7 — Snakes, 2005-01-04T16:43Z

byt
\<option value="0"\>År
mot
\<option value="noll"\>År

och kör scriptet där uppe

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

## #8 — jiggan, 2005-01-04T16:49Z

Funkar tyvärr inte ändå. Några andra tips?

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

## #9 — Snakes, 2005-01-04T16:51Z

Alltså hur menar du funkar inte?.... ge gärna länk....

Menar du kanske att den säger att bara 1 är fel eller hur menar du?

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

## #10 — jiggan, 2005-01-04T16:54Z

Ska vi se nu...Hela koden som ska spara sakerna ser ut så här:

```php
if ($_POST['pass'] != $_POST['pass2'])
{
	header("Location:index.php?section=regga&pass=fel");
}
if ($_POST['y'] == "noll")
{
	header("Location:index.php?section=regga&y=fel");
}
if ($_POST['m'] == "noll")
{
	header("Location:index.php?section=regga&m=fel");
}
if ($_POST['d'] == "noll")
{
	header("Location:index.php?section=regga&d=fel");
}
if ($_POST['lan'] == "noll")
{
	header("Location:index.php?section=regga&lan=fel");
}
else
{
	$link = mysql_connect("XXXXX", "XXXXX", "XXXX");
	mysql_select_db("free58819", $link);
	$reg_y = date('Y');
	$reg_m = date('m');
	$reg_d = date('d');
	$sql = "SELECT nick FROM members WHERE nick = '". $_POST['nick'] ."'";
	$resultat = mysql_query($sql, $link) or die (mysql_error());
	if(mysql_num_rows($resultat)==0)
	{
		$insert="INSERT INTO members (nick, pass, fnamn, enamn, y, m, d, lan, epost, visa_epost, reg_y, reg_m, reg_d) VALUES
		('" . $_POST['nick'] ."', '" . $_POST['pass'] ."', '" . $_POST['fnamn'] ."', '" . $_POST['enamn'] ."',
		 '" . $_POST['y'] ."', '" . $_POST['m'] ."', '" . $_POST['d'] ."', '" . $_POST['lan'] ."',
		  '" . $_POST['epost'] ."', '" . $_POST['visa_epost'] . "', '" . $reg_y . "', '" . $reg_m ."', '" . $reg_d . "')";
		$resultat2 = mysql_query($insert, $link) or die (mysql_error());
		header("Location: index.php?section=regga&reg=true");
	}
	else
	{
		header("Location: index.php?section=regga&anv=fel");
	}
}
```

Kontrollen av lösenorden fungerar alltid, ibland också någon av de andra if satserna, men ibland verkar den hoppa över dem och gå direkt dit där det sparas.

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

## #11 — Snakes, 2005-01-04T16:58Z

Testa att skriva År, värdelöst \<option\>År\</option\>

```php
if (empty($_POST['y']))
{
    header("Location:index.php?section=regga&y=fel");
    exit;
}
if (empty($_POST['m']))
{
    header("Location:index.php?section=regga&m=fel");
    exit;
}
if (empty($_POST['d']))
{
    header("Location:index.php?section=regga&d=fel");
    exit;
}
if (empty($_POST['lan']))
{
    header("Location:index.php?section=regga&lan=fel");
    exit;
}
```

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

## #12 — jiggan, 2005-01-04T17:10Z

Tyvärr funkar inte det heller. Måste du lösa detta...Förstår inte hur den bara kan komma över alla satserna ibland och ibland reagerar den!

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

## #13 — Snakes, 2005-01-04T17:18Z

1\. "Måste du lösa detta", var det en stick härifrån eller en hjälp mig?
2\. En sista "Testa med detta"

```php
if ($_POST['pass'] != $_POST['pass2'])
{
    header("Location:index.php?section=regga&pass=fel");
}
elseif (empty($_POST['y']))
{
    header("Location:index.php?section=regga&y=fel");
    exit;
}
elseif (empty($_POST['m']))
{
    header("Location:index.php?section=regga&m=fel");
    exit;
}
elseif (empty($_POST['d']))
{
    header("Location:index.php?section=regga&d=fel");
    exit;
}
elseif (empty($_POST['lan']))
{
    header("Location:index.php?section=regga&lan=fel");
    exit;
}
else
{
    $link = mysql_connect("XXXXX", "XXXXX", "XXXX");
    mysql_select_db("free58819", $link);
    $reg_y = date('Y');
    $reg_m = date('m');
    $reg_d = date('d');
    $sql = "SELECT nick FROM members WHERE nick = '". $_POST['nick'] ."'";
    $resultat = mysql_query($sql, $link) or die (mysql_error());
    if(mysql_num_rows($resultat)==0)
    {
        $insert="INSERT INTO members (nick, pass, fnamn, enamn, y, m, d, lan, epost, visa_epost, reg_y, reg_m, reg_d) VALUES
        ('" . $_POST['nick'] ."', '" . $_POST['pass'] ."', '" . $_POST['fnamn'] ."', '" . $_POST['enamn'] ."',
         '" . $_POST['y'] ."', '" . $_POST['m'] ."', '" . $_POST['d'] ."', '" . $_POST['lan'] ."',
          '" . $_POST['epost'] ."', '" . $_POST['visa_epost'] . "', '" . $reg_y . "', '" . $reg_m ."', '" . $reg_d . "')";
        $resultat2 = mysql_query($insert, $link) or die (mysql_error());
        header("Location: index.php?section=regga&reg=true");
    }
    else
    {
        header("Location: index.php?section=regga&anv=fel");
    }
}
```

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

## #14 — jiggan, 2005-01-04T17:20Z

Jag löste det. Nu funkar det. Jag ändrade bara det jag hade från början och lade till else if efter varje sats så det såg ut så här:

```php
if ($_POST['pass'] != $_POST['pass2'])
{
    header("Location:index.php?section=regga&pass=fel");
}
else if ($_POST['y'] == "noll")
{
    header("Location:index.php?section=regga&y=fel");
}
else if ($_POST['m'] == "noll")
{
    header("Location:index.php?section=regga&m=fel");
}
else if ($_POST['d'] == "noll")
{
    header("Location:index.php?section=regga&d=fel");
}
else if ($_POST['lan'] == "noll")
{
    header("Location:index.php?section=regga&lan=fel");
}
```

Tack för hjälpen ändå Snakes!

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

## #15 — Snakes, 2005-01-04T17:23Z

Inga problem.... Men i sista inlägget sa jag att du skulle lägga elseif..... glöm det...

Kan du vara snäll och markera ditt inlägg som löst?

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

---

Tråden på webben: https://www.webforum.nu/amne/php/119286-problem-med-if-satser
