[php] Sessie delen tussen 2 servers

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 10-08 02:59

Gerco

Professional Newbie

Topicstarter
Terug van weggeweest in P&W heb ik een vraag voor jullie:

Ik probeer een website te maken waarbij mensen kunnen inloggen op 1 adres, maar daarna doorverwezen worden naar "hun" server. Je logt dus in op www.domein.nl en wordt vervolgens doorverwezen naar server1.domein.nl of server2.domein.nl.

Dit dacht ik te bereiken door de PHP sessions in de database op te slaan, hier ligt het probleem niet, dat werkt prima, het probleem is als ik inlog en doorverwezen wordt naar de andere server, mijn sessie plotsklaps verdwenen is.

Ik heb het sessie cookie al het domein .domein.nl gegeven (met punt, zonder punt, geen verschil):
PHP:
1
session_set_cookie_params (0, '/', '.domein.nl');

De site in mn trusted sites bij IE6 gezet, MozillaFirebird ook geen verschil helaas.

Sessie-maak code:
PHP:
1
2
3
4
5
session_start();
$_SESSION['userid']   = $row['userid'];
$_SESSION['username'] = $row['username'];
$_SESSION['ip']       = $REMOTE_ADDR;
session_write_close(); <-- deze had ik erbij gezet toen het niet werkte


Sessie controleer code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
    session_start();

    if(empty($_SESSION['userid'])
    || empty($_SESSION['username'])
    || empty($_SESSION['ip'])
    || $_SESSION['userid']    = 0
    || $_SESSION['username']  = ""
    || $_SESSION['ip']       != $REMOTE_ADDR) {
        header("Location: login.php");
        session_destroy();
        exit();
    }

Sidenote: Alles werkt prima als ik inlog en redirect op dezelfde server, maar inloggen op de ene en dan redirecten naar de andere wil niet, dan krijg ik weer het login scherm header("Location: login.php"); dus.

Iemand enig idee hoe ik dit kan oplossen?

[ Voor 17% gewijzigd door Gerco op 26-10-2003 19:36 ]

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Acties:
  • 0 Henk 'm!

  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 17-09 20:52

ripexx

bibs

Enige oplossing die ik kan bedenken is dat je je eigen sessie manager schrijft opzich is dat niet zo moeilijk. Ook zullen er genoeg voorbeelden te vinden zijn in de search. :)

buit is binnen sukkel


Acties:
  • 0 Henk 'm!

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 10-08 02:59

Gerco

Professional Newbie

Topicstarter
ripexx schreef op 26 October 2003 @ 20:18:
Enige oplossing die ik kan bedenken is dat je je eigen sessie manager schrijft opzich is dat niet zo moeilijk. Ook zullen er genoeg voorbeelden te vinden zijn in de search. :)
Die heb ik al gemaakt, dat werkt ook prima in de db.

* Gerco schaamt zich heel diep, maar ik heb een fout gevonden, in het stukje code hierboven staat twee keer '=' terwijl er '==' had moeten staan!! Op de ene server was het goed, op de andere stond dit...

Nu werkt het inloggen op beide servers goed, alleen het "overnemen" van de sessie nog niet helaas.

[ Voor 12% gewijzigd door Gerco op 26-10-2003 20:32 ]

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Acties:
  • 0 Henk 'm!

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 10-08 02:59

Gerco

Professional Newbie

Topicstarter
Het werkt!

Het veranderen van $REMOTE_ADDR naar $_SERVER['REMOTE_ADDR'] deed het 'em! Verschil in instellingen van de PHP versies denk ik.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Acties:
  • 0 Henk 'm!

  • _fm
  • Registratie: September 2003
  • Niet online

_fm

register globals on/off in je php.ini