Session is al gestart

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jasper janssen

Jasper janssen

15/08/2010 15:31:45
Quote Anchor link
Hey!

Ik ben bezig met een redelijk simpel login script met een klein profiel per user.

Ik heb dan een navigatie systeem dus bijvoorbeeld user.php?id=1&page=profile. Dus hij include de pagina profile.php dan. Maar ik krijg een notice dat de sessie al gestart is. Maar als ik in het script later de sessie probeer te gebruiken dan is de sessie niet gezet.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if (isset ($_SESSION['username'])){
    echo "sessie is actief";
}

echo "Geen sessie";
?>


Dit geeft "Geen sessie". Ik heb dus echt geen idee hoe ik dit moet oplossen. Maar hier weet vast wel iemand het.

Alvast bedankt.

Toevoeging op 15/08/2010 15:36:04:

Excuses voor de vreselijke spelfout in titel:O.

En hoe kan ik de php in een mooi code boxje krijgen?

En sorry voor doublepost kon niet wijzigen

"Bas:
Titel aangepast, gestart is met een T. Wijzigen kun je met het Afbeelding icoontje.
Gewijzigd op 15/08/2010 16:18:11 door B a s
 
PHP hulp

PHP hulp

25/12/2024 14:54:15
 
Noppes Homeland

Noppes Homeland

15/08/2010 15:50:44
 
Mark Beets

Mark Beets

15/08/2010 16:02:09
Quote Anchor link
Als je de session start.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
session_start();
//dan de rest van je code
?>


Twee de regel start session. Zorg er voor dat het niet via include nog eens wordt gedaan. Session start hoeft niet altijd op de eerste regel, voorkomt wel veel rare begin fouten.
Gewijzigd op 15/08/2010 16:11:18 door Mark Beets
 
Jasper janssen

Jasper janssen

15/08/2010 16:12:39
Quote Anchor link
De session_start(); staat op de eerste regel. Voorderest include() ik niks op deze pagina. Al include ik deze pagina wel.

En als ik geen session_start(); gebruik krijg ik ook gewoon Geen sessie.
 
B a s
Beheerder

B a s

15/08/2010 16:19:17
Quote Anchor link
Heb je überhaupt wel een sessie?

Doe eens:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo var_dump($_SESSION);;
?>


Krijg je dan wat terug? Zo niet, dan is je sessie niet juist geset. Een sessie kan aangemaakt worden door:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$_SESSION
['username'] = 'username';
?>
 
Jasper janssen

Jasper janssen

15/08/2010 16:22:48
Quote Anchor link
Ja ik krijg dan keurig het ID dat is opgeslagen in de sessie.
 
B a s
Beheerder

B a s

15/08/2010 16:23:46
Quote Anchor link
Wat voor result krijg je daar dan? Maw, copy / paste die var_dump eens.
Gewijzigd op 15/08/2010 16:24:47 door B a s
 
Mark Beets

Mark Beets

15/08/2010 16:25:38
Quote Anchor link
Heb je niet het refresh probleempje? Dat jouw waarde er daarna pas in staat.?
 
Jasper janssen

Jasper janssen

15/08/2010 16:27:17
Quote Anchor link
De var_dump: array(1) { ["username"]=> string(2) "17" }
 
Mark Beets

Mark Beets

15/08/2010 16:31:43
Quote Anchor link
komt het niet door dit stukje. Hij geeft altijd aan dat er geen sessie is..
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if(!isset($_SESSION['username'])){
 echo "Geen sessie";
 die();
}

//wel sessie dus doorgaan met de rest
?>
Gewijzigd op 15/08/2010 16:32:27 door Mark Beets
 
B a s
Beheerder

B a s

15/08/2010 16:33:31
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if (isset ($_SESSION['username'])){
    echo "sessie is actief";
}

echo "Geen sessie";
?>


Hier zie ik idd ook geen 'else' staan. Hij laat dus beide zien?
 
Jasper janssen

Jasper janssen

15/08/2010 16:36:03
Quote Anchor link
Ah, je hebt gelijk ook al liet ie niet sessie is actief zien. Maar het werkt nu dus maakt niet meer uit.

Bedankt.
Gewijzigd op 15/08/2010 16:36:49 door Jasper janssen
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.