[php] Multiview icm. Sessies

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • LoBbY_1
  • Registratie: Juli 2002
  • Laatst online: 17-09 20:43
Hallo!

Ik zit met een probleempje waar ik tot dusver niet ben uitgekomen, en waar ik nu al een tijdje mee zit.

Ik ben een website aan met maken die door een php mannier multiviews kan maken. Maar op een of andere mannier raakt de sessie de variabelen kwijt als je (na dat je bent ingelogd) een andere pagina opend binnen het zelfde script.

Bijvoorbeeld:
index/pagina/1 <--Daar word een sessie variabele gezet
index/pagina/2 <--Dan is hier nu al de variabele weer verloren

De sessie zet ik via een functie die er zo uit ziet, volgens mij zit daar geen fout. En de sessie word gestart in de index van het script.
code:
1
2
3
4
5
6
7
8
9
10
function createSession($dbName, $dbPass, $dbLevel)
{
       //set user login
        $isLogin = true;

        session_register("isLogin");
        session_register("dbName");
        session_register("dbPass");
        session_register("dbLevel");
}


Ook heb ik variabelen proberen te zetten buiten de functie om, maar precies het zelfde rezultaat. Namelijk helemaal niets ;(
Is dit een limitatie van sessie's, of is er een andere reden waarom het niet helemaal op de reguliere mannier werkt?

Een echte golver is nooit uitgeput


Acties:
  • 0 Henk 'm!

  • Bigs
  • Registratie: Mei 2000
  • Niet online
Ik heb met session_register zoiezo wisselende resultaten, ik gebruik daarom zelf altijd gewoon de $_SESSION superglobal. Misschien dat dat voor jou ook beter werkt (dus gewoon $_SESSION["isLogin"] = true; en dan de hele session_register opdracht gewoon weglaten).

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

session_register en session_is_registered zijn ranzig en behoorlijk achterhaald sinds superglobals bestaan, en zoals Bigs al zegt moet je die gewoon niet meer gebruiken. Ik zie trouwens nergens session_start staan. Je weet dat dat boven elke pagina moet staan waar je sessies gebruikt? :)

Overigens vind ik het nogal een vreemd idee om "multiviews" in PHP te programmeren. Kun je niet gewoon de mogelijkheden van je webserver gebruiken?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • LoBbY_1
  • Registratie: Juli 2002
  • Laatst online: 17-09 20:43
Met de superglobals heb ik nu ook geprobeert, en er staat inderdaad op het begin van iedere pagina session_start()

Ik ben er net achter gekomen dat ik in de index van de pagina zelf wel een sessie variabele kan registreren die overal kan worden gelezen. Maar zodra ik ook maar ergens anders een variabele probeer in te stellen, dan is hij deze de volgende pagina weer kwijt.

Dit is opzich wel vreemd, want dat heb ik ook nog nooit eerder meegemaakt!

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?
  //  index.php

  //  Define varabeles
  define("INCPATH", "inc/");
  define("PHPPATH", "php/");

  //Starten sessie in index
  session_start();
  //debug
  $_SESSION["isLogin"] = "1";  <-- deze kan overal worden gelezen

  //  Includes
  include(INCPATH."session.inc.php");
  include(INCPATH."multiview.inc.php");
  include(PHPPATH."selectLanguage.inc.php");
  include(setLanguage($lang));
  include(INCPATH."settings.inc.php");
  include(INCPATH."dbconnect.inc.php");
  include(INCPATH."random.inc.php");
  include(INCPATH."functions.inc.php");
  include(INCPATH."sections.inc.php");
  //include(PHPPATH."menu.php");
  include(INCPATH."template.inc.php");

  // update hit's
  hitCount();
?>

Een echte golver is nooit uitgeput


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Gebruik je session_register en $_SESSION door elkaar?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • LoBbY_1
  • Registratie: Juli 2002
  • Laatst online: 17-09 20:43
Nee, ik gebruik of het een of het ander :) Ik heb het allemaal na gelezen, dus in dit geval gebruik ik alleen maar $_SESSION!

Een echte golver is nooit uitgeput

Pagina: 1