---
title: "Får inte if-sats att fungera"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/151074-får-inte-if-sats-att-fungera"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "lillebror"
published: "2006-09-08T20:17:05.000Z"
updated: "2006-09-09T12:16:38.000Z"
replies: 3
views: 386
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/151074-får-inte-if-sats-att-fungera"
---

# Får inte if-sats att fungera

## #1 — lillebror, 2006-09-08T20:17Z

Hej,

Jag har en kommentarfunktion till mina artiklar där användare kan diskutera innehållet i artikeln. Av någon anledning har den delen av funktionen där man kan editera och spara en kommentar slutat fungera. Mycket enkelt förklarat har jag en if-else if-sats som ser ut på följande sätt:

```
if($_SESSION["active"] == true) { 
echo "sess: ".$_SESSION["active"]."<br/>";
	echo "get: ".$_GET['action']."<br/>";
	echo "1";
	?>

	<form action="xxx" method="post" onsubmit="return validateNewArticleComment(this)">
		<tr>
			<td style="width: 10%">&nbsp;</td>
			
			<td colspan="2" style="padding: 0px 5px 5px 0;"><span style="font-weight: bold; font-size: 11px;">Din kommentar:</span><br />
				
				<textarea cols="50" rows="5" name="comment"></textarea>
				<input type="hidden" name="from" value="<?php echo $_SESSION["uid"]; ?>" />
				<input type="hidden" name="articleID" value="<?php echo $_GET['articleID']; ?>" />
				<input type="hidden" name="ip" value="<?php echo getenv("REMOTE_ADDR"); ?>" />		
				<br /><br />
				<input class="buttons" type="submit" name="sendcomment" value="Skicka" style="font: 0.85em verdana, arial, tahoma, serif;" />
			
			</td>
		</tr>
	</form>

	<?php 
	} else if($_SESSION["active"] == true AND $_GET['action'] == 'edit') { # 
	$RSobj_comment_edit = editArticleComment($_GET['commentID']);
	echo "sess: ".$_SESSION["active"]."<br/>";
	echo "get: ".$_GET['action']."<br/>";
	echo "2";
	?>
	
	<form action="xxx" method="post">
		<tr>
			<td style="width: 10%">&nbsp;</td>

			<td colspan="2" style="padding: 0px 5px 5px 0;"><span style="font-weight: bold; font-size: 11px;">Redigera kommentar:</span><br />

				<textarea cols="47" rows="3" name="comment"><?php echo $RSobj_comment_edit['comment']; ?></textarea>
				<input type="hidden" name="ip" value="<?php echo getenv("REMOTE_ADDR"); ?>" />
				<input type="hidden" name="commentID" value="<?php echo $_GET['commentID']; ?>" />
				<input type="hidden" name="articleID" value="<?php echo $_GET['articleID']; ?>" />		
				<br /><br /><input class="buttons" type="submit" name="updatecomment" value="Spara" style="font: 0.85em verdana, arial, 

tahoma, serif;" />

			</td>
		</tr>
	</form>

	<?php 
	} else if($_SESSION["active"] == false) { 
	echo "sess: ".$_SESSION["active"]."<br/>";
	echo "get: ".$_GET['action']."<br/>";
	echo "3";
	?>
		<tr>
			<td style="width: 10%">&nbsp;</td>
		
			<td colspan="2" style="font-weight: bold; font-size: 11px;">För att lämna kommentar - <a href="not.logged.in.php">Logga in</a></td>
		</tr>

	<?php 
	$_SESSION["activepage"] = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING'];
	#$_SESSION["activepage"] = "http://".$_SERVER['HTTP_HOST']."not.logged.in.php";
	} 
	?>
```

Det problem jag har nu är när en användare vill editera sin kommentar så kommer han/hon aldrig till det formuläret. För att komma dit krävs det att $\_GET\["action"\]=edit och att $\_SESSION\["active"\] = true. Dessa båda värden är uppfyllda men funktionen tar sig aldrig till den mittersta if else-satsen där spara-formuläret öppnar sig. Någon som kan titta på koden och se om jag har glömt något? Jag har suttit och tittat i en halvtimme och testat utan att få till det. Känns lite löjligt det här   :r

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

## #2 — Fuel, 2006-09-08T20:33Z

hmm .. chansar på att..

kolla: else if --\> elseif
kolla: ($\_SESSION\["active"\] == true AND $\_GET\['action'\] == 'edit') --\> (($\_SESSION\["active"\] == true) && ($\_GET\['action'\] == 'edit'))

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

## #3 — lillebror, 2006-09-08T21:32Z

Ska testa med det. Återkommer.

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

## #4 — lillebror, 2006-09-09T12:16Z

> **Fuel skrev:**
>
> hmm .. chansar på att..
> 
> kolla: else if --\> elseif
> kolla: ($\_SESSION\["active"\] == true AND $\_GET\['action'\] == 'edit') --\> (($\_SESSION\["active"\] == true) && ($\_GET\['action'\] == 'edit'))

Det blev tyvärr ingen skillnad.

Men jag kom precis på vad det är som orsakar problemet. I min nuvarande if-else-sats finns variabeln $\_SESSION\["active"\] med två gånger där den testas om den är "true". Att jag hamnade i första satsen berodde på att den fanns där och blev sann oavsett om jag skulle redigera eller inte. Nu har jag bytt ordning på dem och då fungerar det perfekt! :)

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

---

Tråden på webben: https://www.webforum.nu/amne/php/151074-får-inte-if-sats-att-fungera
