---
title: "Session konstigheter"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/46692-session-konstigheter"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "henkeny"
published: "2002-06-26T14:48:47.000Z"
updated: "2002-06-26T15:19:14.000Z"
replies: 4
views: 225
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/46692-session-konstigheter"
---

# Session konstigheter

## #1 — henkeny, 2002-06-26T14:48Z

Vid min inloggning har jag skapat en session "user_id" enligt nedanstående:

\-------main.php----------

// Någon vill logga in 
if (isset($\_POST\['login'\])) { 

   //Letar efter angivet lösenord/användarnamn i databasen 
   $query = mysql_query("SELECT \* FROM users WHERE username='{$\_POST\['username'\]}' AND password='{$\_POST\['password'\]}'"); 

   if (mysql_num_rows($query) == 1) 
	   { 
      $row = mysql_fetch_array($query) or die(mysql_error());
      // Rätt användare och lösenord, logga in 
      $\_SESSION\['login'\] = "true"; 
	  $\_SESSION\['user_id'\] = $row\['id'\];
        
   } else { 
        
      // Felaktigt inloggning 
      echo '\<b\>\<p\>Felaktig inloggningsinformation!!\<br\>var god försök igen.\</b\>'; 
        
   } 
    
} 

På en annan sida ska den hämta data om användaren efter vilken person som är inloggad. Har skrivit så här:

\-------varsida.php----------

$sqlUser = "SELECT \* FROM users WHERE username = '$user_id'";
$result=mysql_query("$sqlUser");

while ( $row = mysql_fetch_array($result) ) 
	{   $forName = $row\['foretagsnamn'\];
        $konPerson = $row\['kontaktperson'\];
        $email = $row\['email'\];
        $ptext = $row\['prestext'\];
	}

print "\<H3\>Välkommen till $forName \</H3\>\<p\>";

Eftersom jag inte alls är haj på detta fattar jag inte vad som är fel. Får inget felmeddelande. Antar att när min session sätts så får den inget värde. Därför hittar den ingen data och inget skrivs ut, eller?

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

## #2 — SPiN, 2002-06-26T14:55Z

Du måste använda session_start () överst på båda sidorna, och session_register () när du sätter dina sessionsvärden.

Din kod borde se ut så här:
**main.php**

```
<?php
session_start ();
...
if (isset($_POST['login'])) {
     //Letar efter angivet lösenord/användarnamn i databasen
     $query = mysql_query("SELECT id FROM users WHERE username='{$_POST['username']}' AND password='{$_POST['password']}'");

     if (mysql_num_rows($query) == 1) {
          $row = mysql_fetch_array($query) or die(mysql_error());
          // Rätt användare och lösenord, logga in
          $login = "true";
          $user_id = $row[ 'id' ];

          session_register ( "login" );
          session_register ( "user_id" );
     } else {
          // Felaktigt inloggning
          echo '<b><p>Felaktig inloggningsinformation!!<br>var god försök igen.</b>';
     }
}
?>
```

**varsida.php**

```
<?php
session_start ();
...
$sqlUser = "SELECT * FROM users WHERE username = '" . $_SESSION[ 'user_id' ] . "'";
$result=mysql_query($sqlUser);

while ( $row = mysql_fetch_array($result) ) {
     $forName = $row['foretagsnamn'];
     $konPerson = $row['kontaktperson'];
     $email = $row['email'];
     $ptext = $row['prestext'];
}

print "<H3>Välkommen till $forName </H3><p>";
?>
```

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

## #3 — henkeny, 2002-06-26T15:01Z

Tackar och bockar!!

Det märks att man är nybörjare på detta. Men nu funkar det kanon.

Tack igen!!

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

## #4 — SPiN, 2002-06-26T15:05Z

Varsågod. :)

Ett litet tips på hur du kan göra din kod snyggare på **varsida.php**:

```
<?php
session_start ();
...
$sqlUser = "SELECT foretagsnamn, kontaktperson, email, prestext FROM users WHERE username = '" . $_SESSION[ 'user_id' ] . "'";
$result = mysql_query($sqlUser);

$forName = mysql_result ( $result, 0 );
$konPerson = mysql_result ( $result, 1 );
$email = mysql_result ( $result, 2 );
$ptext = mysql_result ( $result, 3 );

print "<H3>Välkommen till $forName </H3><p>";
?>
```

Loopen är onödig, eftersom att du bara hämtar data från en rad. :)

Som du märker har jag också plockat bort stjärnan ( \* ) från dina SQL-frågor. Den behövs inte då du bara använder ett par fält, bättre att ange vilka fält man ska arbeta med. :)

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

## #5 — henkeny, 2002-06-26T15:19Z

Tack så mycket igen :-)

Tack för tipsen. Alla tips är guld värda så här i början. Började med PHP-programmering i går så jag är inte så haj på det än :-)

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

---

Tråden på webben: https://www.webforum.nu/amne/php/46692-session-konstigheter
