---
title: "session-problem"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/74015-session-problem"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "kalleklätter"
published: "2003-04-13T20:56:01.000Z"
updated: "2003-04-14T00:13:46.000Z"
replies: 36
views: 529
page: 1
pages: 2
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/74015-session-problem"
---

# session-problem

_Sida 1 av 2._

## #1 — kalleklätter, 2003-04-13T20:56Z

Hejsan!
Har ett litet problem med sessions.
Detta felmeddelande får jag upp när jag försöker köra koden...har läst ganska mycket på nätet om denna typ av felmeddelande, men inte fått någon ordning på det. Det jag har förstått är att man ska ändra i php.ini filen till korrekt sökväg, etc. Och det har jag gjort, men jag får ändå upp detta felmeddelande...! Någon som har något tips?
Tacksam för snabbt svar.   =)

Warning: session_start() \[function.session-start\]: Cannot send session cookie - headers already sent by (output started at c:\\inetpub\\wwwroot\\php\\login\\auth.php:2) in c:\\inetpub\\wwwroot\\php\\login\\auth.php on line 5

Warning: session_start() \[function.session-start\]: Cannot send session cache limiter - headers already sent (output started at c:\\inetpub\\wwwroot\\php\\login\\auth.php:2) in c:\\inetpub\\wwwroot\\php\\login\\auth.php on line 5

Warning: Cannot modify header information - headers already sent by (output started at c:\\inetpub\\wwwroot\\php\\login\\auth.php:2) in c:\\inetpub\\wwwroot\\php\\login\\auth.php on line 30

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

## #2 — Matte, 2003-04-13T21:05Z

Före session_start() får du inte skicka något till webbläsaren.

Alltså ingen HTML-kod, ingen echo eller print. Även tomrader och mellanslag utanför PHP-taggarna skickar iväg något till webbläsaren.

Om du inkluderar en fil före session_start() så måste du vara väldigt noggrann med att inte ha några tomtecken efter den avslutande PHP-taggen (och naturligtvis inte heller före den inledande).

Därför är det oftast bäst att lägga session_start() allra överst på sidan.

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

## #3 — kalleklätter, 2003-04-13T21:26Z

aha. nu blev det lite mindre felmeddelanden iaf. =)

när jag skriver in rätt anv.namn och rätt lösenord får jag nu detta meddelande:

Notice: Undefined index: nickname in c:\\inetpub\\wwwroot\\php\\login\\auth.php on line 11

Warning: Cannot modify header information - headers already sent by (output started at c:\\inetpub\\wwwroot\\php\\login\\auth.php:11) in c:\\inetpub\\wwwroot\\php\\login\\auth.php on line 12

scriptet som jag använder har jag tagit från phpsidan.nu så det borde funka som det är tycker man...men jag får iaf det där felmeddelandet när jag skriver in rätt namn och pwd... =(

några fler tips?    :)

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

## #4 — Matte, 2003-04-13T22:03Z

Hur ser auth.php ut?

På rad 11 så försöker du göra något med en array-variabel. Denna variabel finns inte. Är det en $\_POST eller $\_SESSION eller något annat?
Om det är en $\_POST-variabel, har du motsvarande fält i ditt formulär?

Ditt header-felmeddelande är ett följdfel av utskriften av notisen. För header() gäller samma sak som för session_start() när det gäller att inte skicka något till webbläsaren.

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

## #5 — kalleklätter, 2003-04-13T22:15Z

auth.php ser ut som följer:

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

## #6 — kalleklätter, 2003-04-13T22:16Z

auth.php ser ut som följer:

\<?
session_start();
include("data.php"); // Inkluderar data.php som innehåller databasinställningarna
$db_connect = mysql_connect($Host,$User, $Pass);
mysql_select_db($Db, $db_connect);
$sql = "SELECT \* FROM $Table WHERE username='".$\_POST\['username'\]."' AND Password='".$\_POST\['password'\]."'"; // Tittar i Tabellen efter Andvändarnamnet och Lösenordet du skrev in.
$result = @mysql_query($sql,$db_connect) or die("Failed Result");
$num = mysql_numrows($result);
if ($num != 0)
{
$\_SESSION\['user'\] = $\_POST\['nickname'\]; // Gav du rätt Användarnamn och Lösenord får du en "session".
header("Location: efter.php"); // Du skickas iväg till angiven sida, i vårat fall: efter.php
exit;
}else {
header("Location: login.php"); // Skrev du fel så skickas du till denna sida
exit;
}
?\>

undrar vad det kan vara för fel?   :(

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

## #7 — Matte, 2003-04-13T22:26Z

Har du något fält med namn 'nickname' i ditt formulär ?
Hur ser ditt formulär ut?

Detta ser ut som en inloggning, och då skriver man oftast bara användarnamn och lösenord.

Om det är en inloggning så kanske det skulle vara så här istället:

```
<? 
session_start(); 
include("data.php"); // Inkluderar data.php som innehåller databasinställningarna 
$db_connect = mysql_connect($Host,$User, $Pass); 
mysql_select_db($Db, $db_connect); 

$sql = "SELECT * FROM $Table WHERE username='".$_POST['username']."' 
        AND Password='".$_POST['password']."'"; // Tittar i Tabellen efter Andvändarnamnet och Lösenordet du skrev in. 
$result = @mysql_query($sql,$db_connect) or die("Failed Result"); 
$num = mysql_num_rows($result); 
if ($num != 0) 
{ 
    $_SESSION['user'] = $_POST['username']; // Gav du rätt Användarnamn och Lösenord får du en "session". 
    header("Location: efter.php"); // Du skickas iväg till angiven sida, i vårat fall: efter.php 
    exit; 
}else { 
    header("Location: login.php"); // Skrev du fel så skickas du till denna sida 
    exit; 
} 
?>
```

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

## #8 — kalleklätter, 2003-04-13T22:31Z

så här ser inloggningssidan ut:

\<?
if ($\_GET\['error'\] == "logon"){
echo "Fel lösenord eller användarnamn";
}
?\>
\<HTML\>
\<BODY\>
\<FORM METHOD="post" ACTION="auth.php"\>
\<CENTER\>
Username: 
\<INPUT TYPE="text" NAME="username" size="15"\>
\<BR\>
Password: 
\<INPUT TYPE="password" NAME="password" size="15"\>
\<BR\>
\<INPUT TYPE="submit" NAME="login" VALUE="Login"\>
\</CENTER\>
\</FORM\>
\</BODY\>
\</HTML\>

alltså jag har ändrat till username för så borde det ju vara eftersom att det är en \_POST...men då kommer jag tillbaka till första sidan även om jag skriver in rätt lösenord etc... ?!   sen det där header-felet lyckas jag inte få bort...har kollat efter mellanslag etc....

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

## #9 — Matte, 2003-04-13T22:41Z

Vilket headerfel i vilken fil?

Kan det vara något i efter.php som skickar tillbaka till login?
Hur ser efter.php ut i början (sessions-kontrollen)?

Hur ser din fil auth.php ut nu efter dina ändringar?

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

## #10 — kalleklätter, 2003-04-13T22:43Z

här kommer alla filerna hur dom ser ut.   :) 

auth.php

\<?
session_start();
include("data.php");
$db_connect = mysql_connect($Host,$User, $Pass);
mysql_select_db($Db, $db_connect);

$sql = "SELECT \* FROM $Table WHERE username='".$\_POST\['username'\]."'
		AND Password='".$\_POST\['password'\]."'"; 
$result = @mysql_query($sql,$db_connect) or die("Failed Result");
$num = mysql_num_rows($result);
if ($num != 0)
{
	$\_SESSION\['user'\] = $\_POST\['username'\];
	header("Location: efter.php");
	exit;
}else {
	header("Location: login.php");
	exit;
}
?\>

efter.php

\<?
session_start();
if (!isset($\_SESSION\['user'\])){
header("Location: login.php?error=logon");
exit;
}
?\>

login.php

\<?
if ($\_GET\['error'\] == "logon"){
echo "Fel lösenord eller användarnamn";
}
?\>
\<HTML\>
\<BODY\>
\<FORM METHOD="post" ACTION="auth.php"\>
\<CENTER\>
Username: 
\<INPUT TYPE="text" NAME="username" size="15"\>
\<BR\>
Password: 
\<INPUT TYPE="password" NAME="password" size="15"\>
\<BR\>
\<INPUT TYPE="submit" NAME="login" VALUE="Login"\>
\</CENTER\>
\</FORM\>
\</BODY\>
\</HTML\>

kan det vara ngt jag har missat att ändra i php.ini eller ngn rättighet jag kan ha missat att ge ut (om det behövs vill säga)?

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

## #11 — Matte, 2003-04-13T23:02Z

När du kommer tillbaka till login.php, får du då meddelande: "Fel lösenord eller användarnamn", eller får du bara formuläret?

Du skrev något om att du fortfarande fick felmeddelande. 
Hur lyder dom, och i vilka filer?

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

## #12 — kalleklätter, 2003-04-13T23:03Z

första gången jag går in på login.php så får jag

Notice: Undefined index: error in c:\\inetpub\\wwwroot\\php\\login\\login.php on line 2

när jag loggar in med rätt anv. namn kommer jag tillbaka till första sidan och så står det:

Fel lösenord eller användarnamn 

 :)

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

## #13 — kalleklätter, 2003-04-13T23:04Z

och om jag loggar in med fel får jag det första meddelandet:

Notice: Undefined index: error in c:\\inetpub\\wwwroot\\php\\login\\login.php on line 2

\=//

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

## #14 — Matte, 2003-04-13T23:11Z

Ditt felmeddelande har inget med sessioner att göra. fixas med följande ändring:

```
if (isset($_GET['error']) && $_GET['error'] == "logon"){ 
    echo "Fel lösenord eller användarnamn"; 
}
```

 
Sen får vi börja nysta lite på sessionen.
Vad blir det för utfall om du skriver:

```
if ($num != 0) 
{ 
$_SESSION['user'] = $_POST['username']; 
    header("Location: efter.php?".SID); 
    exit; 
}else {
```

 
Ligger de här sidorna i någon frame i ett frameset, där framesetet ligger på en annan domän än din inloggningssida?

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

## #15 — kalleklätter, 2003-04-13T23:15Z

nu funkar det!    :)  

vad gjorde den där .SID grejjen?

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

## #16 — kalleklätter, 2003-04-13T23:17Z

just ja, sidan ligger inte i ett frameset. =)

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

## #17 — Matte, 2003-04-13T23:23Z

Kontrollera att sessionen verkligen hänger kvar när du surfar på flera sidor.

Vad jag gjorde var att skicka med sessionsid med URL-en.

Vi kan nu konstatera att ditt problem ligger/låg på cookie-sidan.

Normalt så sätts en cookie med sessionsid, men om det är problem med cookies så kan man skicka med sessionsid med URL-en.

Men sen ska den hänga med till andra sidor! Och det är frågan om den gör det här.

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

## #18 — kalleklätter, 2003-04-13T23:25Z

jag är helt ny på det här med sessioner...hur kontrollerar man om sessionen hänger kvar när man surfar på flera sidor?
och varför måste den hänga kvar?

 :q

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

## #19 — Matte, 2003-04-13T23:29Z

Det är det som är hela idén med sessioner. Du sparar ett värde som hänger med dig personligt över flera sidor.
Tänk dig om du var tvungen att logga in på webForum varje gång du skulle läsa en tråd eller skriva ett svar.

Är din cookie satt så kan du gå till en helt annan sida och sedan tillbaka, och du är fortfarande inloggad.

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

## #20 — Matte, 2003-04-13T23:31Z

Kolla att du har följande inställning i php.ini:

```
session.use_cookies = 1
```

 
Efter ändring i php.ini ska webbservern startas om.
Vad använder du för webbserver?

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

---

Tråden på webben: https://www.webforum.nu/amne/php/74015-session-problem  
Nästa sida: https://www.webforum.nu/amne/php/74015-session-problem/page2.md
