Lost PHP Session in file upload trough Flex
Bei einem File Upload welcher eine PHP Datei aufruft in einer Flex Applikation verliert man auf mysteriöse art und weise die Session. Hier eine Idee zum Lösen dieses Problems.
Eine kleine Anleitung zum Lösen des Problems mit PHP Sessions welche leider nicht mehr vorhanden ist beim PHP File welches von Flex aufgerufen wird (und meinem Beispiel: myfile.php).
1. PHP SESSION ID in flex Applikation übergeben: (Diese Schritt könnte auch über "ExternalInterface.call" welcher eine JavaScript Funktion aufruft und somit die Session Cookie namen zurückgibt.) In meinem Beispiel wird die Variable über Smarty in das SWF-Object eingelesen.
FlashVars="session_id={$session_id}"
2. Variable dem "File Handler" übergeben. UploadFile.swf:
private function initApp():void {
session_id = mx.core.FlexGlobals.topLevelApplication.parameters.session_id;
}
private function upload():void {
var request = new URLRequest('myfile.php?sessionId=' + session_id);
...
...
}
3. Der Wichtige teil passiert nun auf Seitens PHP. Sobald der sessionId Parameter vorhanden ist wird dieser Versuchen die Session zu reinitialisieren. myFile.php:
if(isset($_GET['sessionId'])) {
session_id($_GET['sessionId']);
}
session_start();
/*
* wird nun alle zuvor definierten Session values wieder ausgeben.
*/
print_r($_SESSION);
Kleine und einfache Lösung um dieses Problem hoffentlich erfolgreich zu Lösen.
Letzte Beitrag änderung am 10.01.2011 um 16:20 Uhr
Fragen zum Script, einen Fehler melden oder eine wichtige ergänzung mitteilen? Kontaktieren Sie uns einfach.






Hochwertige, handgemachte Produkte für den Tisch und die Küche
PHP Lab - Gratis und Hilfreich für Jedermann!