Seite 1 von 1

swfupload - Session Problem

Verfasst: 25.11.2009 02:53
von MaracujaJoe
Hallo,

vielleicht kennen einige von euch den swfuploader: http://swfupload.org/.

Über Flash wird ein POST Request abgeschickt an die Datei test.php.

In dieser steht der übliche Kram:

Code: Alles auswählen

define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
include_once($phpbb_root_path . 'includes/functions_albumadmin.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('mods/bla');

echo $user->session_id;
Nun kommt auch schon das Problem. Obwohl ich eine sid übergebe (probiert mit POST und GET), diese stammt aus $user->session_id und wird direkt beim Javascript für den Upload angegeben, bekomme ich eine Andere Session ID ausgegeben.
Sprich, ich lasse mir eine sid ausgeben und übergebe diese dem Flash, der postet die an eine Datei und die $user->session_id dort ist dann eine andere.

Sollte er nicht normalerweise mit der sid weitermachen die ich ihm übergebe?

Herrauskommt jedenfalls das die Datei an die geschickt wird immer denkt ich wäre ausgeloggt ...

Vielleicht hat jemand von euch eine Idee?

MFG Joe

Re: swfupload - Session Problem

Verfasst: 25.11.2009 04:35
von tas2580
Ich denke mal es liegt an der Browserkennung und IP.
Schau mal unter Server-Konfiguration -> Sicherheit und stelle da alles ab was Browserkennung und IP prüft.

Gruß Tobi

Re: swfupload - Session Problem

Verfasst: 25.11.2009 13:20
von MaracujaJoe
Überprüfung der Sitzungs-IP: Keine
Browser prüfen: Nein

Das bringt allerdings nicht.
Kann ich nicht irgendwie die $user->session_id selbst setzten? Bevor alles initialisiert wird?

Re: swfupload - Session Problem

Verfasst: 26.11.2009 18:38
von MaracujaJoe
Ich habe das ganze mal eingegrenzt:

Er hat eine andere $user->session_id weil er in der session.php - session_begin() in den Fall:

Code: Alles auswählen

if (isset($_COOKIE[$config['cookie_name'] . '_sid']) || isset($_COOKIE[$config['cookie_name'] . '_u']))
, geht.

Dort weißt er dann hiermit zu:

Code: Alles auswählen

$this->session_id = request_var($config['cookie_name'] . '_sid', '', false, true);
Wenn ich das richtig verstehe, hat der Flashplayer also eigene Cookies und diese Mistdinger sind auch noch gefüllt ...
Hat jetzt jemand eine Idee dazu?

Re: swfupload - Session Problem

Verfasst: 11.05.2010 21:51
von Blackcrow
HI MaracujaJoe,

ich stehe eben vor genau dem selben Problem.
Konntest du das Problem mittlerweile evtl lösen?

Mir fällt nichts mehr ein, habe die cookie's sogar versucht zu simulieren (die 3 mit Endung _sid, _k und _u), die Session ID per Post weitergeben und per get, alles funktioniert nicht.

Wenn du weiter weisst wär ich froh ;)

Re: swfupload - Session Problem

Verfasst: 11.05.2010 22:46
von MaracujaJoe
Hi,

ich hatte keine Lust auf weitere 20 Stunden rumgefummel und habe einen Javaupload, den ich mal "gebaut" habe verwendet.
bei mir ging es nur um einen Bild-Upload für eine Galerie und der Javaupload hat sogar noch lokal verkleinert ...


Grüße Joe

Re: swfupload - Session Problem

Verfasst: 12.05.2010 18:12
von Blackcrow
Hi,

schade dass es keine anständige Lösung dafür gibt.

Ich hab mein Vorhaben über umwege trotzdem lösen können (falls es wer auch ähnlich machen muss)..

Ich hab per $_POST übergabe vom swfuploader die session_id übergeben, anschliessend in der upload.php (die über Flash aufgerufen wird und den Upload verarbeitet) die Datenbank (Tabelle sessions) direkt abgefragt.

Ich brauch im Endefekkt lediglich die User-ID die ich zur Speicherung eines Bildes benötige, und diese erhält man dann folgendermassen:

Code: Alles auswählen

	    $sql['search_user_id'] = mysql_query("	SELECT 
	        										session_id,
	        										session_user_id

											FROM
												phpbb_sessions 
											WHERE 
												session_id = '" . $session_id . "'");   
	   
	    
		        if(mysql_num_rows($sql['search_user_id']) == 1)
		        {
	        		$search_user_id = mysql_fetch_array($sql['search_user_id']);
	        
	        		return $search_user_id['session_user_id'];
		        }

Ich sehe die Lösung eher als Sub-optimal an, wenn wer noch eine bessere, funktionierende Idee hat, bitte posten...