2012-04-11 10 views
5

मैं अब आखिरी दिन के लिए एक समस्या और एक आधे पर काम कर रहा है और एक समाधान खोजने के लिए अभी तक अभी भी है।फेसबुक iFrame कैनवास एप्लिकेशन पीएचपी सत्र मुद्दा

जब फेसबुक पर मेरे खेल php सत्र काम नहीं करते (जो फेसबुक के iFrame में है) visitng। यह आईई और सफारी के लिए है। क्रोम ठीक काम करता है।

मैं पहले से ही इस समस्या है, जो पहली iFrame के साथ तीसरे पक्ष कुकी सुरक्षा और की आवश्यकता होगी, बातचीत करने के लिए नीचे हो रहा है के बारे में ढेर पर सभी पोस्ट पढ़ा है। जावास्क्रिप्ट को पहले फॉर्म iFrame में कुछ फॉर्म डेटा पोस्ट करके एक कामकाज किया गया था, लेकिन ऐसा लगता है कि हाल ही में ब्राउज़र के नवीनतम संस्करणों में 'निश्चित' किया गया है क्योंकि यह अब काम नहीं करता है।

मैं भी एक प्रारंभ पृष्ठ है कि उन्हें एक लिंक पहले (iFrame में) क्लिक करने के लिए एक और पेज जो तब सत्र बनाने हैं लोड करने के लिए की आवश्यकता होगी लागू करने की कोशिश की। लेकिन यह भी काम नहीं करता है।

मैं भी मुसीबत भी जावास्क्रिप्ट, जो हमेशा अनंत लूप के रिफ्रेश पैदा करने के लिए लगता है का उपयोग कर iFrame में नए पृष्ठों को लोड हो रही है।

और नहीं, पी 3 पी शीर्षलेख इसे हल नहीं करते हैं।

क्या किसी को भी इस समस्या का समाधान है? मैं इसके साथ एकमात्र ऐसा नहीं हो सकता, इस पर विचार कर रहा हूं कि कितने फेसबुक ऐप्स मौजूद हैं!

+0

क्या आपके पास सही पी 3 पी नीति है? मेरे पास कई एफबी ऐप्स हैं और सत्र के मुद्दों को हमेशा सही पी 3 पी शीर्षलेख – scibuff

+0

सफारी के लिए हल किया गया था? क्या आप मुझे अपने हेडर का उदाहरण दे सकते हैं। मुझे लगता है कि मैंने प्लग इन किया है: हेडर ('पी 3 पी: सीपी = "नोआई एडीएम डीवी पीएसएआई कॉम एनएवी ओआरआर एसटीपी इंड डेम"'); कोई फायदा नहीं। –

उत्तर

5

मैं एक ग्राहक था कि विकलांग "तृतीय पक्ष कुकी स्वीकार करें" का उपयोग कर इस समस्या को देखा। मेरे समाधान प्रत्येक पृष्ठ के शुरू में इस लाइन डालकर यूआरआई में सत्र आईडी एम्बेड करने के लिए पीएचपी मजबूर करने के लिए किया गया था:

ini_set('session.use_trans_sid', true); 

यूआरएल के रूप में आइफ्रेम फेसबुक भीतर सिड शीर्ष विंडो में नहीं देखा जाता है में हैं।

+0

मैं इस समस्या के साथ भी संघर्ष कर रहा हूं, और यह जवाब मुझे यह जानने के लिए प्रेरित करता है कि मुझे "तृतीय पक्ष कुकीज़ स्वीकार करें" अक्षम भी था। यह हर किसी के लिए एक संभावित बड़ी समस्या की तरह लगता है, इसलिए मुझे आश्चर्य है कि फेसबुक या अन्य ट्यूटोरियल में कहीं भी इसका उल्लेख नहीं किया गया है। – Zimzat

3

आईई के लिए, आपको पी 3 पी हेडर सेट की आवश्यकता होगी। कुछ ऐसा:

<?php header('P3P: CP="CAO PSA OUR"'); ?> 

सफारी डिफ़ॉल्ट रूप से तृतीय-पक्ष कुकीज़ को अवरुद्ध करता है। वर्तमान में, मेरे लिए काम कर रहे एकमात्र काम-आसपास कुकीज़ को सेट करने के लिए एक नई विंडो "पॉप-अप" करना है।

<script type="text/javascript"> 
    function safariFix(){ 
     if (navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1){ 
      window.open('https://yourdomainname.com/safari.php', 'Safari Fix','width=100,height=100'); 
     } 
    } 
</script> 

और safari.php होगा इस:

<?php 
setcookie("safari_test", "1"); 
?> 
<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <title>Safari Fix</title> 
     <script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> 
    </head> 
    <script type="text/javascript"> 
    $(document).ready(function(){ 
     window.close(); 
    }); 
    </script> 
    <body> 
     Since Safari does not accept third-party cookies by default, we are forced to open this window. 
     This window will automatically close once we have set the cookies. 
    </body> 
</html> 

समस्या: यह अगर उन है "पॉप-अप ब्लॉक" काम नहीं करेगा में सक्षम मैं इस तरह कुछ है सफारी। अगर किसी के पास इसका बेहतर समाधान है, तो मुझे सूचित करें;)

संबंधित मुद्दे