Flaş Actionscript kullanarak PHP oturum değişkenleri ayarlama

2 Cevap php

Ben Flaş App denir basit bir PHP yükleme komut dosyası var. Ben aslında dosyayı yükler çünkü çağrı yapar eminim!

session_start();

$default_path = 'files/';

$target_path = ($_POST['dir']) ? $_POST['dir'] : $default_path;

if(!file_exists($target_path)) mkdir($target_path, 0777, true);

$destination = $target_path . basename( $_FILES[ 'Filedata' ][ 'name' ] );

$file_name =  rand(1,9999).$_FILES[ 'Filedata' ][ 'name' ];

if(move_uploaded_file($_FILES[ 'Filedata' ][ 'tmp_name' ], $destination)){

$_SESSION['path'] = 'flashuploader_online/upload/'.$destination;

}

Ancak, başka bir komut oturum değişkeni "yolunu" kullanmayı deneyin ama bana boş bir değer verir! Evet, session_start kullandığınızdan emin yaptık.

Ben bir şey eksik?

Update

En azından şimdi ben sorunun ne olduğunu biliyorum! Ama oturum değişkenleri genelinde geçmek dağınık almadan bunu çözmek için nasıl emin değilim. Herhangi bir fikir?

2 Cevap

Sen bir değişken olarak geçirerek tüm istekleri karşısında session_id devam etmek zorunda olacak. Ben çok dağınık almazsınız söz veriyorum! Bir çift Eğer flaş yanı sıra komut o nakleder görüntüler sayfa yapmak gerekir değişiklikleri vardır. Bu sunucuya dosya yüklediği zaman oturum kimliği içerebilir, böylece de, Flash uygulaması kendisi için ufak bir değişiklik yapmak gerekir.

Öncelikle, FlashVars ile dahil ederek oturum kimliği ile flaş sağlamak isteyeceksiniz. PHP ile Önişlenmiş edilecek flaş görüntüleyen sayfasını ihtiyacımız olacak, ya da bir oturum devam etmek mümkün olmayacaktır. Flaş çıktılar sayfa) Eğer (session_start çağrı emin olun. Sen böyle bir şey ile bitireceğiz:

<object classid="clsid:(blah)" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="800" height="800" id="ZoomifyHotspotViewer">
  <param name="flashvars" value="phpsessionid=<? print session_id(); ?>">
  <param name="src" value="YourSWF.swf">
  <embed flashvars="phpsessionid=<? print session_id(); ?>" src="YourSWF.swf" pluginspage="http://www.adobe.com/go/getflashplayer" type="application/x-shockwave-flash" width="800" height="800" name="YourSWF"></embed>
</object>

Özellikle bu bölüm hem param ve embed etiketleri, eklenmesi gereken budur:

phpsessionid=<? print session_id(); ?>

Sonra, istek yaptığınızda, Flash uygulaması, artık değişken 'phpsessionid' de oturum kimliği erişebilir. Sen PHPSESSID adında POST değişkeni (tüm kapaklar) değeri eklemeniz gerekir - ancak size faydalanmak gibi 'dir' değişken olarak diğer değişkenler dahil eklemektir.

Bu değişken dahil olmak üzere sonraki sayfada session_start () çağırdığınızda, oturum yerine başlamış olan yeni bir oturumun restore edilecek sağlayacaktır. Bu otomatik olmaz bir çift yapılandırma durumlar vardır. Sizin için durum olduğu ortaya çıkarsa (yani session id sonraki sayfada hala farklı olabilir), yükleme işler sayfasında aşağıdakileri yapmanız gerekir:

session_id($_POST['PHPSESSID']);
session_start();

Bu elle belirtilen kimliği ile kaydedilmiş oturumu yenilemek için PHP zorlar. Bu bile uğraşmak zorunda bir sorun olmamalı, ama olup olmadığını kullanıcı de devam sonraki sayfada benzer bir şey yapmak zorunda, ya da tüm sayfalara bir genel durum ekleyebilirsiniz:

if (isset($_REQUEST['PHPSESSID'])) {
  session_id($_REQUEST['PHPSESSID']);
}
session_start();

Eğer bunu ki, bir pasör olarak bu şekilde session_id () aramaya gerek sonuna kadar yaparsanız before session_start () çağırarak emin olun.

Bir web sunucusu bir yanıt (bir sayfa, grafik, vb) ile sağlar, her zaman bu tarayıcı bir çerez göndermek için fırsat vardır.

1) Each cookie is only sent back to the same web site as it came from in the first place 2) The "contents" of the cookie( the data it contains) can only be made up of whatever information the web server already knew anyway.

Yani tarayıcı otomatik olarak HTTP başlığında "Cookie" değişkeninin çerez gönderebilir. PHP komutu folowing ile okuyabilirsiniz:

$headers = apache_request_headers();
echo $headers['Cookie'];

(PHP yapılandırmada etkin oturum desteği ise) otomatik olarak bir tanımlama PHPSESSID (eğer yapılandırmada değişken adını değiştirebilirsiniz) oluşturur ve yukarıdaki komut ile doğrudan erişebilirsiniz Sunucu (siz PHPSESSID değişkeni veya başka almak için $ başlıklarını ayrıştırmak gerekiyor cookie). Ben tarayıcı otomatik olarak HTTP başlığında Cookie değişkeni eklemek FlashVars kullanmaya gerek olduğunu düşünüyorum.

Bu yardımcı olur umarım!