Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: kontynuowanie sesji w innej aplikacji
Forum PHP.pl > Forum > PHP
scalar
skonstruowałem aplikację we flash jako moduł CMS-a, chciałbym aby po zalogowaniu do systemu można było przekazać linkiem do aplikacji identyfikator sesji a ona już komunikowała by się z bazą danych poprzez "międzymordzie" w php powołując się na zalogowanego użytkownika. Jest to możliwe ?

testowałem funkcję session_id(), pobrałem identyfikator sesji później podczas przesyłania wartości podałem otrzymany identyfikator z którego skorzystałem ponownie poprzez funkcję session_id($identyfikator), niestety nie zadziałało.

proszę o pomoc, death time oddania modułu zbliża się wielkimi krokami.
darko
A nie lepiej przesłać jakieś konkretne dane z sesji jako parametry do tego skryptu flashowego ? Chyba nie potrzebujesz loginu i hasła?
scalar
sprawa wygląda następująco, logujesz się do CMS-a później linkiem przekazujesz id sesji a aplikacja we flashu aktualizuję bazę danych z uprawnieniami zalogowanego użytkownika. Chodzi o aktualizację punktów na mapie.

na razie eksperymentowałem tak, że tworzyłem we flashu przycisk z linkiem wcześniej logując się do panelu i pobierając aktualny identyfikator sesji:

www.adres.strony.pl/index.php?PHPSESSID=aktualny_identyfikator_sesji&jakieś_zmienne
darko
Może coś takiego?
wookieb
Długo myślałem nad rozwiązaniem problemu sesji we flashu i zrobiłem to tak:
1) Stworzyłem alias identyfikatora sesji tylko i wyłącznie dla flasha (po to by w kodzie nie przekazywać prawdziwego id sesji)
2) Przekazałem go do flasha we flashvarsach
3) flash przy jakiejkolwiek operacji odwolujacej sie do serwera wysylal alias sesji
[JAVASCRIPT] pobierz, plaintext
  1. var vars:URLVariables = new URLVariables();
  2. vars.session_id = this._aliasIdSesji;
  3.  
  4. var request:URLRequest = new URLRequest();
  5. request.method = 'POST';
  6. request.data = vars;
[JAVASCRIPT] pobierz, plaintext

To wszystko. Bezpieczeństwo polega na tym iż jeżeli nawet alias id sesji zostanie wykradzione to przy odpowiednim zarzadzaniu systemu atakujacy i tak mało co moze z nim zrobić.
scalar
ja mam to tak:
  1. var url:String = "http://strona.pl/admin/index.php";
  2. var variables:URLVariables = new URLVariables();
  3. variables.PHPSESSID = "jakiś identyfikator";
  4. variables.page = "menuadd";
  5. variables.group = 1;
  6. variables.idmenu = 0;
  7. variables.action = "menuaccept";
  8. variables.id = 1;
  9. variables.status = "nie";
  10.  
  11. var request:URLRequest = new URLRequest(url);
  12. request.method = 'POST';
  13. request.data = variables;
  14. trace("sendToURL: " + request.url + "?" + request.data);
  15. try
  16. {
  17. sendToURL(request);
  18. }
  19. catch (e:Error)
  20. {
  21. // handle error here
  22. }

i niestety nie działa

dla testu zamieniłem sendToURL() na navigateToURL() i zadziałało tak jak powinno
wookieb
No to zapomniałem Ci podać kodu php
  1. if(isset($_POST['session_id']))
  2. {
  3. session_id($_POST['session_id']);
  4. ini_set('session.use_cookies', '0');
  5. }
scalar
to nie temat na to forum, ale problem wynikał z miejsca uruchamiania pliku swf, w związku z zabezpieczeniami dostępu (mimo publikacji pliku w wersji "dostępem do sieci") plik zadziałał dopiero uruchomiony z docelowego serwera.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.