---
title: "Vad betyder felet?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/100714-vad-betyder-felet"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "filipbh"
published: "2004-03-31T16:55:29.000Z"
updated: "2004-04-02T09:41:07.000Z"
replies: 27
views: 487
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/100714-vad-betyder-felet"
---

# Vad betyder felet?

_Sida 1 av 2._

## #1 — filipbh, 2004-03-31T16:55Z

Vad menas med detta fel?

Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 11520 bytes) in /customers/httpd.www/check.php on line 17

Någon som vet ett bra sätt göra en koll om sessioner finns? Finns de kan man besöka sidan. Annars kommer det upp en text och en automatisk vidarelänkning till index.php görs.. Har försökt med två olika men inget fungerar.

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

## #2 — Matte, 2004-03-31T18:32Z

Felmeddelandet betyder att de 8MB internminne ditt skript är tilldelat av webbservern är överskridet.
Kan hända ibland när man kör GD mot stora bilder eller liknande.

För t.ex en inloggningskontroll brukar jag göra följande.
När någon loggar in sätts en sessionsvariabel, låt oss kalla den $\_SESSION\['variabel'\].
Sedan på varje sida som ska skyddas med inloggning använder jag följande:

```php
<?php

session_start();

if (!isset($_SESSION['variabel'])) {
   header("Location: index.php");
   exit;
}
```

 
Det borde fungera med något liknande för din del.

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

## #3 — filipbh, 2004-03-31T18:34Z

Okej, ska testa att lägga till kod så sessionerna verifieras som rätt också..

Tack så länge

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

## #4 — filipbh, 2004-03-31T20:46Z

Man loggas ut direkt när man försöker logga in =(

Gjorde koden så här:

```php
<?session_start();?>

<?
if (!isset($_SESSION['inl_user'])) {
               echo("<script language=JavaScript>");
               echo("self.location.replace('index.html')");
               echo("</script>");
   exit;
}
?>

<?
if (!isset($_SESSION['inl_pass'])) {
               echo("<script language=JavaScript>");
               echo("self.location.replace('index.html')");
               echo("</script>");
   exit;
}
?>

<?
if (!isset($_SESSION['inl_id'])) {
               echo("<script language=JavaScript>");
               echo("self.location.replace('index.html')");
               echo("</script>");
   exit;
}
?>
```

Är det koden som är fel?

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

## #5 — Matte, 2004-03-31T21:25Z

Sätter du alla tre sessionsvariablerna i din inloggning ?
Annars skickas du bara till index.html.

För felsök lägg följande överst i skriptet, före session_start():

```php
<?php // <-- Översta raden längs till vänster

error_reporting(E_ALL);
ini_set("display_errors", "1");

session_start();
```

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

## #6 — filipbh, 2004-03-31T21:31Z

Ja.. De tre sätts vid inloggningen och det har inte varit problem med dem tidigare.

La in koden du skrev men det visas inget eftersom den länkas till index.html direkt.. Tar bort vidarelänkningen och ser om det kommer fram någon text.

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

## #7 — filipbh, 2004-03-31T21:35Z

Det här är koden:

```php
<? // <-- Översta raden längs till vänster

error_reporting(E_ALL);
ini_set("display_errors", "1");

session_start();

?>

<?
if (!isset($_SESSION['inl_user'])) {
echo "user<br>";
               //echo("<script language=JavaScript>");
               //echo("self.location.replace('index.html')");
               //echo("</script>");
   exit;
}
?>

<?
if (!isset($_SESSION['inl_pass'])) {
echo "pass<br>";
               //echo("<script language=JavaScript>");
               //echo("self.location.replace('index.html')");
               //echo("</script>");
   exit;
}
?>

<?
if (!isset($_SESSION['inl_id'])) {
echo "id<br>";
               //echo("<script language=JavaScript>");
               //echo("self.location.replace('index.html')");
               //echo("</script>");
   exit;
}
?>
```

och jag får detta:

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /customers/httpd.www/db.php:2) in /customers/httpd.www/check.php on line 6

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /customers/httpd.www/db.php:2) in /customers/httpd.www/check.php on line 6
user

Egentligen bara att sessionen redan är startad typ

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

## #8 — filipbh, 2004-03-31T21:40Z

Tog bort session_start() men det kom inte fram något felmeddelande.. Bara "user". Bytte jag plats så att session\[inl_pass\] låg överst visades "pass". Behåller den inte värdena eller?

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

## #9 — Matte, 2004-03-31T22:04Z

Du kan inte starta upp sessionen och hämta sessionsvariablerna eftersom du har en output till webbläsaren innan session_start().
Denna output sker på rad 2 i db.php.

session_start() är en header och måste sättas innan du gör någon output till webbläsaren.
Med output menas HTML-kod, echo eller print. Även ett mellanslag eller en radbrytning utan för PHP-taggarna genererar en output.

Detta gäller även för filer man inkluderar. Där får man se upp så där inte ligger något osynligt skräptecken efter den avslutande PHP-taggen.

Hur hänger dina filer check.php och db.php ihop ?

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

## #10 — filipbh, 2004-03-31T22:07Z

db.php innehåller bara två variabler med databasnamn och databaslösenord.. Använder det för att slippa skriva lösenordet och usern i varje mysql-hämtning. Kom på att db.php innehåller check. Kanske därför det inte fungerar.. La in den för att man inte ska kunna komma db (även om den inte skriver ut något) när man inte är inloggad. Ska jag ta bort check från db? Eller iaf flytta ner den?

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

## #11 — Matte, 2004-03-31T22:16Z

Du har något på rad 2 i db.php som ger output.

Hur ser db.php ut ?
Maska eventuella lösenord mm.

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

## #12 — filipbh, 2004-03-31T22:18Z

Hur kan du se det?

För tillfället så här:

```php

<?//require("check.php");?>

<?
$u = "";
$p = "";
?>
```

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

## #13 — Matte, 2004-03-31T22:23Z

```php
<?php // <-- Översta raden längs till vänster

require("check.php");

$u = "";
$p = "";
?>
```

 

Du bryter dig in och ut ur PHP och har radbrytningar emellan. Dessa genererar output.

Ska du inkludera db.php i en annan fil, tänk då på att du får inte ha någon output i den filen innan du inkluderar db.php.

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

## #14 — filipbh, 2004-03-31T22:28Z

Men det verkar ju konstigt att det ska vara fel i db.. Det står att det är line 9 i check som är fel. Dvs, första sessionsraden... Jobbigt när det aldrig kan fungera..

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

## #15 — Matte, 2004-03-31T22:31Z

Hur ser dina filer ut nu, och hur ser felmeddelandet ut ?

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

## #16 — filipbh, 2004-03-31T22:33Z

Felmeddelande:

Notice: Use of undefined constant inl_pass - assumed 'inl_pass' in /customers/httpd.www/check.php on line 9
pass

Check

```php
<? // <-- Översta raden längs till vänster

error_reporting(E_ALL);
ini_set("display_errors", "1");

?>

<?
if (!isset($_SESSION[inl_pass])) {
echo "pass<br>";
               //echo("<script language=JavaScript>");
               //echo("self.location.replace('index.html')");
               //echo("</script>");
   exit;
}
?>

<?
if (!isset($_SESSION[inl_user])) {
echo "user<br>";
               //echo("<script language=JavaScript>");
               //echo("self.location.replace('index.html')");
               //echo("</script>");
   exit;
}
?>

<?
if (!isset($_SESSION[inl_id])) {
echo "id<br>";
               //echo("<script language=JavaScript>");
               //echo("self.location.replace('index.html')");
               //echo("</script>");
   exit;
}
?>
```

db

```php
<?
require("check.php");
$u = "";
$p = "";
?>
```

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

## #17 — filipbh, 2004-03-31T22:35Z

...och inloggningsfilen

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

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

## #18 — Matte, 2004-03-31T22:48Z

Ta bort alla @ som spärrar felmeddelande. Koppla på all felsökning genom att lägga följande överst i dina skript:

```php
<?php // <-- Översta raden längs till vänster

error_reporting(E_ALL);
ini_set("display_errors", "1");
```

 
Tag bort det först då allt fungerar.

**db.php**

```php
<?php // <-- Översta raden längs till vänster

error_reporting(E_ALL);
ini_set("display_errors", "1");

require("check.php");
$u = "";
$p = "";

?>
```

 

**check.php** 

```php
<?php // <-- Översta raden längs till vänster

error_reporting(E_ALL);
ini_set("display_errors", "1");

session_start();

if (!isset($_SESSION['inl_pass'])) {
echo "pass<br>";
               //echo("<script language=JavaScript>");
               //echo("self.location.replace('index.html')");
               //echo("</script>");
   exit;
}

if (!isset($_SESSION['inl_user'])) {
echo "user<br>";
               //echo("<script language=JavaScript>");
               //echo("self.location.replace('index.html')");
               //echo("</script>");
   exit;
}

if (!isset($_SESSION['inl_id'])) {
echo "id<br>";
               //echo("<script language=JavaScript>");
               //echo("self.location.replace('index.html')");
               //echo("</script>");
   exit;
}
?>
```

 

**inloggning** 

```php
<?php // <-- Översta raden längs till vänster

error_reporting(E_ALL);
ini_set("display_errors", "1");

session_start()

// Diverse annan kod för att kolla inloggningsvariabler mm.

//Om allt är ok sätt sessionsvariablerna
$_SESSION['inl_user'] = $_POST['loginname'];
$_SESSION['inl_pass'] = $_POST['loginpass'];
$_SESSION['inl_id'] = $data['id'];
```

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

## #19 — filipbh, 2004-03-31T22:57Z

**inloggning**

Notice: A session had already been started - ignoring session_start() in /customers/httpd.www/check.php on line 6

Notice: Use of undefined constant inl_pass - assumed 'inl_pass' in /customers/httpd.www/check.php on line 8
pass

Kommer inte vidare efter det.. Skriver jag en sida manuellt så kommer det fram: 

Notice: Use of undefined constant inl_pass - assumed 'inl_pass' in /customers/httpd.www/check.php on line 9
pass

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

## #20 — Matte, 2004-03-31T23:04Z

> Notice: A session had already been started - ignoring session_start() in /customers/httpd.www/check.php on line 6

 
session_start() finns någonstans tidigare i skriptet.
Inkluderar du db.php i någon fil som har session_start() ?

> Notice: Use of undefined constant inl_pass - assumed 'inl_pass' in /customers/httpd.www/check.php on line 8
> pass

 
Betyder att du saknar apostrofer/citationstecken runt ditt array-index. Du har sannolikt skrivit $\_SESSION\[inl_pass\] istället för $\_SESSION\['inl_pass'\].

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

---

Tråden på webben: https://www.webforum.nu/amne/php/100714-vad-betyder-felet  
Nästa sida: https://www.webforum.nu/amne/php/100714-vad-betyder-felet/page2.md
