session voor 2 sites

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Angelino

Angelino

13/04/2009 21:37:00
Quote Anchor link
Is het mogelijk dat als ik inlog op sessies op een domein dat ze op een ander domein ook nog werken?
Wil namen 2 systemen aan elkaar koppelen
Gewijzigd op 01/01/1970 01:00:00 door Angelino
 
PHP hulp

PHP hulp

20/11/2024 08:24:15
 
- Ricardo -

- Ricardo -

13/04/2009 21:39:00
Quote Anchor link
Volgens mij kan dat niet, session is namelijk server side.

je kunt toch gewoon de sessievariabelen gecodeerd in de URL meegeven, op het 2e domein weer decoden en dan er weer een sessie van bouwen?
 
Rene Sn

Rene Sn

13/04/2009 22:25:00
Quote Anchor link
Angelino schreef op 13.04.2009 21:37:
Is het mogelijk dat als ik inlog op sessies op een domein dat ze op een ander domein ook nog werken?
Wil namen 2 systemen aan elkaar koppelen

Dit kan alleen wanneer de 2 domains op de zelfde server draaien.

als je in de .htaccess van beide domains :
php_value session.cookie_domain "mijnsite.nl"
zet moet dit volgens mij werken ( niet zelf getest ) maar ergens eens gelezen...

grts, René
 
Jesper Diovo

Jesper Diovo

13/04/2009 22:26:00
Quote Anchor link
Mocht dat van René niet werken, kun je een soort applicatie bouwen met cookies en sessies op één centraal punt. En naar dat punt wordt telkens vanaf je website gekeken of men is ingelogd. Snap je?
 
Rene Sn

Rene Sn

13/04/2009 22:43:00
Quote Anchor link
Ja ben zelf eigenlijk ook wel benieuwd of dit werkt :) het werkt iig wel wanneer je tussen verschillende subdomains de session mee wilt nemen bijvoorbeeld: www.site.nl, nieuws.site.nl, profielen.site.nl enz enz.

Grts, René
 
Flip --

Flip --

13/04/2009 23:21:00
Quote Anchor link
je kan je eigen sessie handler bouwen

zoek naar: session_set_save_handler()
 
Angelino

Angelino

14/04/2009 14:48:00
Quote Anchor link
ik zal er vanmiddag/vanavond aan beginnen, het ene script draait op een subdomein op andere server dmv dns..
 
Rene Sn

Rene Sn

14/04/2009 23:28:00
Quote Anchor link
Angelino schreef op 14.04.2009 14:48:
ik zal er vanmiddag/vanavond aan beginnen, het ene script draait op een subdomein op andere server dmv dns..
Wanneer het 2 (of meer) verschillende servers zijn dan zul je niks aan mijn oplossing hebben. Want de session gegevens worden opgeslagen op de server zelf.

Wanneer de mysql server van 1 v/d servers ook van buiten af te benaderen is, zou je een eigen session handler kunnen schrijven. zoals in session_set_save_handler beschreven wordt.

Maar je kunt ook overwegen om een centraal punt te gaan gebruiken voor de data (mysql) en doormiddel van een opgeslagen session_id wel/niet toegang te verschaffen.

Want als het maar om een paar session_variabelen gaat. Is het onzinnig om een hele handler te gaan schrijven terwijl je ze ook 'versleuteld' kunt ophalen.

Grts.
René
 
Emmanuel Delay

Emmanuel Delay

15/04/2009 01:51:00
Quote Anchor link
De zelfde sessie variabelen op verschillende servers gebruiken, zal niet lukken.

Je kan inderdaad iets doen zoals René zegt.

Maar stel jezelf de vraag of het echt nodig is.

Kan je een aantal voorbeelden geven van iets waarvoor je het nodig zou hebben?

Wat je wel kan doen, zonder veel problemen, is inloggen op twee servers tegelijk.
Je kan formulieren opsturen naar andere servers (tenzij daar restricties voor zijn ingesteld).
Gewijzigd op 01/01/1970 01:00:00 door Emmanuel Delay
 
Angelino

Angelino

15/04/2009 21:46:00
Quote Anchor link
Ik heb namelijk een film script gemaakt en ik heb op 1 server de site draaien en op de andere het converteren (dus de functies ffmpeg, Mencoder etc).
Dus het upload script heb ik op de andere server staan maar ik moet ingelogd zijn voor ik kan uploaden.
 
Emmanuel Delay

Emmanuel Delay

16/04/2009 16:35:00
Quote Anchor link
Minuutje, ik zal eens zien of een voorbeeld kan schrijven.

EDIT:
Ik heb dit getest, het werkt.

Op server 1:
index.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
session_start();
echo '
<form action="login1.php" method="post" target="mijn_iframe" >
  <div><label><input type="text" name="login" /> Login </label></div>
  <div><label><input type="password" name="paswoord" /> Paswoord </label></div>
  <div><input type="submit" value="login" /></div>
</form>
<iframe name="mijn_iframe"></iframe>
'
;
?>


login1.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
session_start();
if ( !empty($_POST['login']) && !empty($_POST['paswoord']))
{

$_SESSION['login'] = $_POST['login'];
$site2 = 'http://site2.nl/login2.php'; // zelf aanpassen
  echo
'<html>
  <head>
    <script>
      function login()
      {
        document.getElementById("mijn_formulier").submit();
      }
    </script>
  </head>
  <body onload="login();">
    <form action="'
. $site2 .'" method="post" id="mijn_formulier">
      <div><label><input type="text" name="login" value="'
. $_POST['login'] .'" /> Login </label></div>
      <div><label><input type="password" name="paswoord" value="'
. $_POST['paswoord'] .'" /> Paswoord </label></div>
      <div><input type="submit" value="login" /></div>
    </form>
  </body>
</html>'
;
}

?>


ingelogd.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
session_start();
echo 'ingelogd als: '. $_SESSION['login'];
?>



Op server2
login2.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
session_start();
if ( !empty($_POST['login']) && !empty($_POST['paswoord']))
{

$_SESSION['login'] = $_POST['login'];
$site1 = 'http://site1.nl/ingelogd.php';  // zelf aanpassen
echo
'<html>
  <head>
    <script>
      function login()
      {
        parent.window.location = "'
. $site1 .'";
      }
    </script>
  </head>
  <body onload="login();">
  </body>
</html>'
;
}

?>


Zo kan je dus inloggen op 2 sites tegelijk.
-Wat je uiteraard zelf moet doen, is de $_POST vergelijken met de users in de gegevensbank en niet zomaar de session gelijk stellen aan de post.

-Wat je verder nog kan doen, is de iframe onzichtbaar maken, bv. met (css) display: none; .


Ben je hier iets mee?

PS. site1.nl en site2.nl bestaan blijkbaar echt. Uiteraard hebben die sites niets te maken met dit script. :)
Gewijzigd op 01/01/1970 01:00:00 door Emmanuel Delay
 



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.