आप सत्र_लेख के बाद एक सत्र संदेश कैसे जोड़ते हैं?


9

हम Unirgy द्वारा उत्कृष्ट uRapidFlow मॉड्यूल का उपयोग करते हैं, लेकिन एक झुंझलाहट में भाग गए हैं। जब आप उनकी कोई प्रोफ़ाइल चलाते हैं, तो वे कॉल करते हैं session_write_close। इसके साथ समस्या यह है कि इसका मतलब है कि अगर हम एक व्यवस्थापक गेम नियंत्रक से एक प्रक्रिया चलाना चाहते हैं तो हम सफलता के उपयोगकर्ता या पकड़े गए अपवादों को सूचित करने के लिए एक सत्र फ्लैश संदेश सेट नहीं कर सकते हैं।

क्या सत्र संदेश जोड़ने के लिए प्रक्रिया पूरी होने के बाद सत्र को फिर से शुरू करना संभव है?

मुझे शुरू में यकीन नहीं था कि क्या PHP में सत्र को फिर से शुरू करना संभव है, लेकिन अवधारणा PHP का प्रमाण काम करता है:

session_start();
// if this is the second run, show the value
if (!empty($_SESSION['foo'])) {
    echo $_SESSION['foo'], PHP_EOL;
}
// set an initial value
$_SESSION['foo'] = 'bar';

// start running profile
session_write_close();
// after running profile
session_start();
// set a value to see if it takes
$_SESSION['foo'] = 'foo';

मैं सही ढंग से हालांकि व्यवस्थापक गेम सत्र पर एक फ्लैश संदेश सेट करने में सक्षम नहीं हुआ हूं। मुझे लगा कि मैं कुछ लाइनों के साथ कॉल करने में सक्षम हो सकता हूं:

Mage::getSingleton('adminhtml/session')
    ->init('core', 'adminhtml')
    ->addSuccess('Whoop');

लेकिन यह काम नहीं करता है।


यदि आप प्रोफ़ाइल निष्पादन के दौरान ग्राहक को संदेश दिखाना चाहते हैं, तो आप लकड़हारा का उदाहरण प्राप्त करने के लिए $ pofile-> getLogger () का उपयोग कर सकते हैं और संदेशों को पास कर सकते हैं। यह पृष्ठ में उन्हें दिखाने के समान नहीं है, लेकिन आपके पास उनका रिकॉर्ड होगा
पेटार दज़मबाज़ोव

जवाबों:


4

यह काम करना चाहिए:

unset($_SESSION);
Mage::getSingleton('adminhtml/session')
    ->init('core', 'adminhtml')
    ->addSuccess('Whoop');

session_write_close()यदि आप फिर से सत्र को लिखना चाहते हैं, तो सत्र को खोना नहीं है , फिर भी आपको इसे फिर से खोलना होगा। अवधारणा के सुबूत:

<?php
session_start();
// if this is the second run, show the value
if (!empty($_SESSION['foo'])) {
    echo $_SESSION['foo'], PHP_EOL;
}
// set an initial value
$_SESSION['foo'] = 'bar';

// start running profile
session_write_close();

// after running profile
session_start();
var_dump($_SESSION);
//// set a value to see if it takes
$_SESSION['test'] = 'foo';

सत्र पर कॉल करना सत्र_स्टार्ट को ट्रिगर नहीं करेगा, क्योंकि इसे केवल तभी कॉल किया जाता है जब $ _SESSION सेट नहीं किया जाता है (जिसे कॉल करने के बाद ऐसा लगता है session_write_close)।
पीटर ओ'कालाघन

ऐसा करने में रुचि रखने वाले किसी भी व्यक्ति के लिए, इसे सही ढंग से कार्य करने के लिए unset($_SESSION)। ऐसा करने के बाद initसत्र को सही ढंग से पुनः लोड किया जाएगा।
पीटर ओ'कालाघन

@ कैग मैंने अपना जवाब अपडेट कर दिया है, क्या आप जांच कर सकते हैं कि क्या यह सही है?
रिक कुइपर्स 13:13

सेशन_स्टार्ट की आवश्यकता नहीं है क्योंकि इसे initमेथड कॉल का हिस्सा कहा जाता है (अच्छी तरह से startजिसमें इसे कहा जाता है init)। इसके अलावा, यह काम करना चाहिए।
पीटर ओ'कालाघन

@ धन्यवाद धन्यवाद, मैंने अपना उत्तर अपडेट कर दिया है! मैं आपको प्रतिक्रिया के साथ वापस आने की सराहना करता हूं :)
रिक कुइपर्स 15
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.