---
title: "Sessionsfråga"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/47111-sessionsfråga"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "str3ber"
published: "2002-07-03T10:41:40.000Z"
updated: "2002-07-03T14:55:22.000Z"
replies: 1
views: 215
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/47111-sessionsfråga"
---

# Sessionsfråga

## #1 — str3ber, 2002-07-03T10:41Z

En liten fråga om sessioner:

```php
<?
session_start();

// Kopplar upp mot databasen
$test = mysql_connect("server", "user", "pass");
mysql_select_db("dbuser");

// Någon vill logga in
if (isset($HTTP_POST_VARS['login'])) {
   //Letar efter angivet lösenord/användarnamn i databasen
   $query = mysql_query("SELECT * FROM LOGINPASS WHERE USER='{$HTTP_POST_VARS['user']}' AND PASS='{$HTTP_POST_VARS['pass']}'");

   if (mysql_num_rows($query) == 1) {
      // Rätt användare och lösenord, logga in
      	session_register("login");
	$login = "true";
   } else {
                // Felaktigt inloggning
                echo 'Felaktig inloggningsinfo.';
   }
}

// Någon vill logga ut
if (isset($HTTP_GET_VARS['action']) && $HTTP_GET_VARS['action'] == 'logout' && isset($HTTP_SESSION_VARS['login'])) {

   session_unregister("login");
   session_destroy();

   echo 'Du är utloggad. Välkommen åter!';

}

if (isset($HTTP_SESSION_VARS['login']) && $HTTP_SESSION_VARS['login'] == "true") {

   // Lägg allt som ska visas när man loggat in här...
   echo 'Du är inloggad.';

   echo "<br><br><a href=\"{$_SERVER['PHP_SELF']}?action=logout\">Logga ut</a>";

   echo "<br><br><a href='s2.php'>-=1=-</a>";

// Detta visar loginrutan om man inte är inloggad
} else {

?>
   <form method="post" action="<?= $HTTP_SERVER_VARS['PHP_SELF'] ?>">
      Username<br>
      <input type="text" name="user"><br>
      Password<br>
      <input type="text" name="pass"><br>
      <input type="submit" name="login" value="Login">
   </form>
<?
}
?>
```

Detta verkar vara säkert och bra men det är ett litet problem. För att scriptet ska fatta att man har loggat in måste man först fylla i rätt user & pass (givetvis). När man sen trycker på "Submit" så tömmer den formuläret. Om man sedan uppdaterar sidan så fattar den.. 
Jag provade att byta ut 

```php
if (isset($HTTP_SESSION_VARS['login']) && $HTTP_SESSION_VARS['login'] == "true") {
```

 mot 

```php
if (isset($login) && $login == "true")
```

 
och då fattade han (php-tolken :) ) det direkt efter man tryckt på "submit". Dock var det inte särskilt svårt att hacka sig in m.h.a. <http://sida.se/s1.php?login=true>

Några förslag???

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

## #2 — nkrantz, 2002-07-03T14:55Z

Gör så att du i formuläret har ett hidden field som heter typ action, med value login. Sedan kollar du bara mha

```php
if ($_GET['action'] == "login")
```

eller missförstod jag dig eller?

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

---

Tråden på webben: https://www.webforum.nu/amne/php/47111-sessionsfråga
