Avatar billede Slettet bruger
11. januar 2004 - 17:36 Der er 33 kommentarer og
1 løsning

Session start fejl

Hvad gør man hvis den fejl melder sig...?
bruger: <?PHP session_start ?>
og her melder den så den her fejl...
Det er et login system, men kører jeg filerne hver for sig, virker det fint, kører jeg det med function loginok, så går det galt, (Session_start) er sat  helt oppe i starten af filen...
Warning: Cannot modify header information - headers already sent by (output started at index.php:3) in index.php on line 162
Avatar billede htm Nybegynder
11. januar 2004 - 17:37 #1
Du må ikke have noget output til browseren før session_start()

Det kan være html tekst eller mellemrum eller lign.
Avatar billede htm Nybegynder
11. januar 2004 - 17:38 #2
Det kan også være et mellemrum før <?php, men kom med noget mere kode, hvis vi skal kunne hjælpe dig!
Avatar billede Slettet bruger
11. januar 2004 - 17:39 #3
<?PHP session_start(); ?>
Der er ikke noget mellemrum foran... og en text/html eller noget foran
Avatar billede htm Nybegynder
11. januar 2004 - 17:40 #4
den fejl du får foregår i linie 162. det skulle være mærkeligt at du ikke har output før der :-)
Avatar billede Slettet bruger
11. januar 2004 - 17:43 #5
må der slet ikke være noget output foran... fra line 0-162?
Avatar billede Slettet bruger
11. januar 2004 - 17:46 #6
Er ikke glad for at poste koden, da det er noget rimelig vigtigt og noget jeg vil holde for mig selv og ikke noget alle skal have adgang til....
Avatar billede htm Nybegynder
11. januar 2004 - 17:49 #7
Du må ikke have noget output før session_start() eller header(). etc.

Alternativt kan du benytte dig af OB_buffering http://dk2.php.net/manual/en/ref.outcontrol.php

ob_start();
ob_end_flush();
Avatar billede Slettet bruger
11. januar 2004 - 17:50 #8
i setedet for hvad?
Avatar billede htm Nybegynder
11. januar 2004 - 17:51 #9
I stedet for at lave ordentlig struktureret kode, hvor session_start() er før noget output :)

Hvis du bruger OB kan du undgå at skulle lave om på din kode.
Avatar billede Slettet bruger
11. januar 2004 - 17:51 #10
nej men der er heller ingen outputs før <?PHP session_start(); ?>
men der hvor den bruger session_start ligger i line 162.
Avatar billede Slettet bruger
11. januar 2004 - 17:52 #11
kan du forklare det lidt nærmere...?
Altså <?PHP ob_start(); ?> skriver jeg i starten af koden i stedet for <?PHP session_start(); ?>?
Avatar billede Slettet bruger
11. januar 2004 - 17:52 #12
men hedder det så stadig $_SESSION[test] ?
Avatar billede htm Nybegynder
11. januar 2004 - 17:54 #13
ja og så ob_end_flush() i bunden.

Og output starter på linie 3 som du kan se i din fejlkode.

Ja det hedder stadig _session.... Det eneste ob_start() gør er at vente med at smide noget output til browseren til den har modtaget en ob_end_Flush().
Avatar billede Slettet bruger
11. januar 2004 - 17:55 #14
Forstår ikke hvad du mener med "hvor session_start() er før noget output :)"
For session_start skal jo istarten af filen, så er det jo klart der kommer output bagefter... men det virker hvis det er sammen kode jeg bruger hvor jeg ved hver fil sætter session_start(); ind... (altås hvis det kører i mere end en fil)
Avatar billede htm Nybegynder
11. januar 2004 - 18:05 #15
session_start(); skal være først i scriptet. Intet output før den.

<html> er output
<?php er output da der er mellemrum før <?php
test er output
hvis du har noget der skrives ud i en includefil er det ligeså output.

Der må kun være php-funktioner, og php-script der ikke laver noget output før en session_start();

Og så forstod jeg i øvrigt ikke ret meget af dit sodste indlæg :-)
Avatar billede Slettet bruger
11. januar 2004 - 18:06 #16
virker både $_SESSION[] og $_POST[] stadig med funktionen <?PHP ob_start(); ?> ?
Avatar billede htm Nybegynder
11. januar 2004 - 18:07 #17
ja
Avatar billede Slettet bruger
11. januar 2004 - 18:10 #18
jeg forstod heller ikke vildt meget af dit sidste... men...
altså f.eks.
<?PHP session_start(); ?>
<?PHP ob_start(); ?>
<? echo "hej"; ?>
må der være echo's bagefter og html bagefter?
blah blah blah blah TEKST/Html/php blah blah
og langt nede skal jeg så bruge funktionen session_start altså jeg skriver ikke session_start igen, men skal bruge den der nede...
og så tilsidst...
<?PHP ob_end_Flush(); ?>
Avatar billede htm Nybegynder
11. januar 2004 - 18:13 #19
Ja ser meget fornuftigt ud. Men hvorfor skal du skrive session_start længere ned også, når du har startet den?

Og ja inde mellem ob_start() og ob_end_flush() må du have alle de echo'er html session_start etc. du vil.
Avatar billede Slettet bruger
11. januar 2004 - 18:16 #20
jamen det var det jeg skrev i mit forrige "og langt nede skal jeg så bruge funktionen session_start altså jeg skriver ikke session_start igen, men skal bruge den der nede..."
Altså jeg skriver den ikke igen, men benytter den der nede...

Hvilken metode?
1: Session først
<?PHP session_start(); ?>
<?PHP ob_start(); ?>

2: ob først
<?PHP ob_start(); ?>
<?PHP session_start(); ?>
Avatar billede Slettet bruger
11. januar 2004 - 18:17 #21
hmm... har prøvet begge 2...(den melder ingen fejl) men den "udskriver/printer" heller ikke en dyt
Avatar billede htm Nybegynder
11. januar 2004 - 18:19 #22
du skal huske ob_end_flush i bunden af dit script..
Avatar billede Slettet bruger
11. januar 2004 - 18:20 #23
<?PHP ob_end_Flush(); ?> sidder i byúnder
Avatar billede Slettet bruger
11. januar 2004 - 18:21 #24
har du msn/icq?=
Avatar billede squashguy Nybegynder
11. januar 2004 - 18:23 #25
kan du ikke bare smide session_start() op som det første i index.php?
Avatar billede Slettet bruger
11. januar 2004 - 18:23 #26
hvis jeg bare skriver hej uden noget echo noget som helst så skriver den det når man logger ind, men det var menningen at den skulle skrive ens brugernavn i titlen + på siden
Avatar billede Slettet bruger
11. januar 2004 - 18:24 #27
squashguy-> Har jeg prøvet det virker ikke...
Avatar billede htm Nybegynder
11. januar 2004 - 18:25 #28
Avatar billede Slettet bruger
11. januar 2004 - 18:29 #29
ja? har læst det... det er næsten det sammen som på php.net
Avatar billede Slettet bruger
11. januar 2004 - 18:30 #30
har gjort det samme...,,,, men forskellen er mit ikke virker..
Avatar billede htm Nybegynder
11. januar 2004 - 18:32 #31
Det vi har fortalt dig er at:
1. Du skal flytte session_start() så du ikke har noget output overhovedet før denne, du må gerne have efter.
2. eller du skal smide ob_start(); i starten af hele din kode, og ob_end_flush(); i slutningen af hele din kode.

Hvis vi skal hjælpe dig yderligere igang med dette, skal vi se noget kode.
Avatar billede Slettet bruger
07. september 2005 - 13:58 #32
lægger du lige et svar HTM?
Avatar billede htm Nybegynder
07. september 2005 - 17:45 #33
ok
Avatar billede Slettet bruger
07. september 2005 - 19:29 #34
tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester