---
title: "Sessioner på server med hög säkerhet"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/100541-sessioner-på-server-med-hög-säkerhet"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "filipbh"
published: "2004-03-28T22:24:23.000Z"
updated: "2004-03-29T15:32:19.000Z"
replies: 18
views: 391
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/100541-sessioner-på-server-med-hög-säkerhet"
---

# Sessioner på server med hög säkerhet

## #1 — filipbh, 2004-03-28T22:24Z

Har en fråga angående sessioner..

Jag har tidigare använt mig av denna kod

```php
session_start();
session_register("sessionsnamn");
$sessionsnamn="värde";
```

Ibland @ framför.. Vad gör det för skillnad förressten?

Nu har jag sett att man kan använda $HTTP_SESSION_VARS\["sessionsnamn"\] men det fungerar inte för mig... Servern ligger hos B-one och jag vet inte vad de har för sessionsinställningar.

Någon som vet hur jag ska göra för att hålla kvar sessionerna??

Tack på förhand!
/Filip b

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

## #2 — Matte, 2004-03-29T05:05Z

@ framför gör att felmeddelande inte skrivs ut.

Du bör använda:

```php
<?php

session_start();
$_SESSION['variabel'] = 'värde';
```

 

För att hämta sessionsvariabel:
.

```php
<?php

session_start();

echo $_SESSION['variabel'];
```

 

Jag har aldrig använt B-one, men det borde fungera även där.
Vad är det som inte fungerar för dig ?

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

## #3 — filipbh, 2004-03-29T12:39Z

Okej, ska testa!

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

## #4 — filipbh, 2004-03-29T12:54Z

Det fungerar inte ändå.. Om man skriver ut $\_SESSION\['variabel'\] på inloggningssidan så visas det men det visas inte på sidan efter. Skriver jag 

```php
session_start();
echo $_SESSION['variabel'];
```

 

så visas ett felmeddelande att sessionen redan har startats..

Det måste ju gå att hålla kvar sessionerna även på B-one.. Annars är det ju skit.

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

## #5 — SPiN, 2004-03-29T12:58Z

Din webläsare tillåter cookies? Jag tänkte om det är på klientsidan felet ligger. :)

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

## #6 — filipbh, 2004-03-29T12:59Z

Jag har testat både på den här datorn och hemma men det fungerar inte på någon av dem.. Inte kan det väl vara Norton Anti-Virus som spökar?! Låter inte troligt...

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

## #7 — SPiN, 2004-03-29T13:01Z

Jag såg nu att du fick ett felmeddelande (Från PHP-tolken antar jag) att sessionerna redan har startats, så det verkar inte ligga på klientsidan.

Du har inga include-filer med som innehåller session_start() också?

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

## #8 — filipbh, 2004-03-29T13:02Z

Nej, den första sessionkoden ligger på inloggningssidan.

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

## #9 — filipbh, 2004-03-29T13:05Z

När jag ska hämta en variabel så måste jag skriva $\_POST\['variabel'\] eller $\_GET\['variabel'\] beroende på om det är formulär eller URL. Måste jag använda POST eller GET för att hämta sessioner också?

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

## #10 — Matte, 2004-03-29T13:05Z

Lägg följande överst på sidan, och tala om vad du får för felmeddelande:

```php
<?php

error_reporting(E_ALL);
```

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

## #11 — filipbh, 2004-03-29T13:08Z

"Inloggad som: 
Notice: Undefined variable: \_SESSION in /customers/.../../httpd.www/top.php on line 23
"
Rad 23 är "echo $\_SESSION\['inl_user'\];"

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

## #12 — filipbh, 2004-03-29T13:26Z

Har upptäckt en sak... Jag skapade en testsida som bara skrev ut sessionen och där skrev den faktiskt ut det.. Men den filen som egentligen innehåller anropet inkluderas i en PHP-fil. Har det något med det att göra? För skrivs det ut direkt på sidan fungerar det inte...

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

## #13 — Matte, 2004-03-29T13:27Z

Det säger att sessionen inte är startad på sidan; sessionsvariablerna finns inte på sidan.

Har du med session_start() tidigare i skriptet ?
Om den då misslyckades borde du ha fått ett felmeddelande om det.

Om du inte ser det felmeddelandet på skärmen, kolla med Visa-\>Källa om det gömt sig bakom något.

Tänk på att session_start() är en header, och i likhet med andra headers måste denna finnas innan du skickar någon output till webbläsaren.

Med output menas HTML-kod, echo eller print. Även ett mellanslag eller en radbrytning utanför PHP-taggarna ger en output.

Detta gäller även för filer du eventuellt inkluderar.

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

## #14 — filipbh, 2004-03-29T14:39Z

Har en simpel inloggning nu och den ser ut så här...

```php
if($_POST['login_button']) {

$antalhits = 0;
$_POST['loginpass'] = md5($_POST['loginpass']);
$open = mysql_connect ("localhost", "","");
$sql = "SELECT id,username,password FROM tabell WHERE username='".$_POST['loginname']."'";
$result = mysql_db_query("databas","$sql");

while($data=mysql_fetch_array($result)){

$antalhits = $antalhits+1;

if($data[username]==$_POST['loginname']){

	if($data['password']==$_POST['loginpass']){

@session_start();
@session_register("inl_user");
@$_SESSION['inl_user'] = $_POST['loginname'];

echo $_SESSION['inl_user'];

//@session_start();
//@session_register("inl_user");
//@session_register("inl_pass");
//@session_register("inl_id");
//@$HTTP_SESSION_VARS["inl_user"] = $_POST['loginname'];
//@$HTTP_SESSION_VARS["inl_pass"] = $_POST['loginpass'];
//@$HTTP_SESSION_VARS["inl_id"] = $data["id"];

               echo("Du loggas in...");
               //echo("<script language=JavaScript>");
               //echo("self.location.replace('start.php')");
               //echo("</script>");
	}
 }
else{
	echo "Fel uppgifter";
      }
	echo "Fel uppgifter";
 }

if($antalhits=='0')
echo "Fel uppgifter";

}
```

 

I start.php som inkluderar top.php där sessionen ska skrivas ut, fungerar det inte. Men i test-filen fungerar det.. Där har jag session_start() också. Det kan jag inte ha i top.php. Varför vet jag inte.. Det måste vara pga. att jag inte har det med som det inte fungerar men den visar bara fel om jag lägger till det..

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

## #15 — filipbh, 2004-03-29T14:55Z

Nu skriver den ut varibabeln OCH felmeddelandet.. Så nu behövs det bara någonting som tar bort detta:

Inloggad som: 
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /customers/httpd.www/top.php:16) in /customers/httpd.www/top.php on line 19

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /customers/httpd.www/top.php:16) in /customers/httpd.www/top.php on line 19
"användarnamn"

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

## #16 — filipbh, 2004-03-29T14:57Z

Jag satte @ framför session_start(); och då försvann det.. Så jag hoppas att det ska fungera nu.. Tack för hjälpen SPiN och Matte!

Hör av mig om det fortfarande strular..

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

## #17 — Aleph_One, 2004-03-29T15:05Z

> **filipbh skrev:**
>
> Nu skriver den ut varibabeln OCH felmeddelandet.. Så nu behövs det bara någonting som tar bort detta:
> 
> Inloggad som: 
> Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /customers/httpd.www/top.php:16) in /customers/httpd.www/top.php on line 19
> 
> Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /customers/httpd.www/top.php:16) in /customers/httpd.www/top.php on line 19
> "användarnamn"

Det betyder att du skickar någonting till klienten innan du anropar session_start().

Gör så att på de sidor du använder sessioner (med hjälpa av cookies) lägg in session_start() allra överst på sidan, ha inte ens en radbrytning innan din första \<? tagg, då ska den inte spotta ur sig såna felmeddelanden.

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

## #18 — filipbh, 2004-03-29T15:30Z

Okej... Men vad är det för fel på det här då? 

```php
$sql = "SELECT * FROM tabell WHERE id='" . $_SESSION[inl_id] . "'\"";
```

 

Tycker det är rättkodat

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

## #19 — filipbh, 2004-03-29T15:32Z

Hittade det.. Det märks att jag har suttit för länge med det här nu. Börjar göra massa enkla misstag. Tack för hjälpen nu bör allt fungera!

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

---

Tråden på webben: https://www.webforum.nu/amne/php/100541-sessioner-på-server-med-hög-säkerhet
