वर्डप्रेस में अपने स्वयं के कस्टम सत्र मूल्य का उपयोग कैसे करें?


17

मैं वर्डप्रेस में अपने स्वयं के (कस्टम) सत्र मूल्य का उपयोग कैसे कर सकता हूं?
उदाहरण के लिए:$_SESSION['myname']="4lvin"

मैं पहले से ही session_start()सभी पृष्ठ पर डाला गया हूँ जिसकी मुझे आवश्यकता है।

<?php
session_start();
$_SESSION['myname'] = "4lvin";
?>

लेकिन ग्लोबल वार काम नहीं कर रहा है।
बस सेल्फ पेज पर काम कर रहा हूं।
यह अन्य पृष्ठों (समान तर्क का उपयोग करके) से वैश्विक रूप से कॉल-सक्षम नहीं है।


क्या आप कृपया अपने प्रश्न की वर्डप्रेस-विशिष्ट प्रकृति को स्पष्ट कर सकते हैं ?
चिप बेनेट

1
" वर्डप्रेस-विशिष्ट प्रकृति क्या है? " - इसका मतलब है, किस तरह से आपका प्रश्न वर्डप्रेस से संबंधित है ?
चिप बैनेट

1
मैं सत्र कुकीज़ के बारे में एक प्रश्न देखता हूं । मैं वर्डप्रेस के लिए कुछ भी विशिष्ट नहीं देखता , यही कारण है कि मैंने स्पष्टीकरण के लिए कहा।
चिप बेनेट

2
नहीं सत्र और कुकीज़ सामान्य इंटरनेट / वेब-ब्राउज़र विषय हैं, जिसकी ओर वर्डप्रेस पूरी तरह से अज्ञेयवादी है।
चिप बेनेट

5
हां, सत्र और कुकीज़ सामान्य विषय हैं, लेकिन यह वर्डप्रेस के साथ सत्र का काम करने का एक और प्रश्न है ... और चूंकि WP स्वयं सत्रों का उपयोग नहीं करता है, इसलिए यह यहां प्रासंगिक है।
21

जवाबों:


13

संपादित करें: "PLUGIN कम है, वैसे भी उपलब्ध नहीं है, तो कृपया प्लग इन का उपयोग करें: वर्डप्रेस सत्र प्लगइन "

CodeIgniter सत्र वर्ग से अनुकूलित एक अच्छा वर्डप्रेस प्लगइन है: WP सत्र प्लगइन

जब आप प्लगइन को सक्रिय करते हैं, तो आप $sessionअपने विषय में कहीं से भी ऑब्जेक्ट का उपयोग करना शुरू कर सकते हैं ( $sessionऑब्जेक्ट जब तक वैश्विक है)। उदाहरण के लिए, header.phpफ़ाइल में $ सत्र ऑब्जेक्ट का उपयोग करने के लिए , बस इस कोड को जोड़ें:

global $session;

यदि आप एक प्लगइन डेवलपर हैं और आप अपने साथ इस प्लगइन को अनुकूलित करना चाहते हैं, तो आप पैकेज में स्टैंडअलोन संस्करण भी पा सकते हैं । प्लगइन का दस्तावेज़ीकरण प्लगइन डेवलपर्स के लिए अधिक जानकारी देता है कि आपकी परियोजना को कैसे अनुकूलित किया जाए।

यहाँ विषय और प्लगइन डेवलपर्स दोनों के लिए कुछ उपयोगी कार्य हैं।

आप इस तरह सत्र डेटा जोड़ सकते हैं :

// One value
$session->set_userdata( 'username', 'john' );

// Passing array
$array = array(
    'username' => 'john',
    'email'    => 'john@gmail.com'
);

$session->set_userdata( $array );

सत्र डेटा प्राप्त करने के लिए :

$session->userdata( 'username' );

सभी सत्र डेटा प्राप्त करने के लिए :

$session->all_userdata(); // returns array

सत्र से एक आइटम निकालने के लिए :

$session->unset_userdata( 'username' );

सत्र से अधिक आइटम निकालने के लिए :

$array = array(
    'username' => '',
    'email'    => ''
);
$session->unset_userdata( $array );

आप फ्लैशडेटा का उपयोग भी कर सकते हैं जो सत्र डेटा है जो केवल अगले सर्वर अनुरोध के लिए उपलब्ध होगा, फिर स्वचालित रूप से साफ़ हो जाएगा। जब आप उन्हें सूचनात्मक या स्थिति संदेशों के लिए उपयोग करते हैं (जैसे "उत्पाद हटा दिया गया है") ये बहुत उपयोगी हो सकते हैं ।

// Add Flashdata
$session->set_flashdata( 'item', 'value' );

// Retrieve Flashdata
$session->flashdata( 'item' );

// Preserving flashdata 
// (if you need to preserve flashdata through an additional request, 
// you can use this function):
$session->keep_flashdata( 'item' );

सत्र को नष्ट करने के लिए:

$session->sess_destroy();

प्लगइन शॉर्टकोड का भी समर्थन करता है । आप अपने पोस्ट या पेज पर कोई भी सत्र डेटा प्रिंट कर सकते हैं:

[session key="username"]

दूसरी कुंजी तक पहुंचने के लिए:

[session key="user_data" sec_key="display_name"]

मुझे उम्मीद है कि यह किसी के लिए मदद करता है।


1
WP सत्र प्लगइन्स नहीं है !?
किरेन शिवा

1
हां, आप उस एक का उपयोग करना चाहते हैं: wordpress.org/plugins/wp-session-manager (यह बहुत बेहतर और स्थिर है)।
beytarovski

एक अन्य प्लगइन wordpress.org/plugins/wp-native-php-session
nu everest

हम वर्डप्रेस में PHP डिफ़ॉल्ट सत्र कार्यक्षमता का उपयोग क्यों नहीं कर सकते हैं? यह समाधान एक प्लगइन पर निर्भरता बनाता है।
अमृत

@Amritpal क्योंकि सभी PHP / Apache सर्वर सत्रों का समर्थन नहीं करते हैं। यदि आप WP जैसे सार्वजनिक सॉफ्टवेयर / प्लगइन का निर्माण करना चाहते हैं, तो आपको इसके बारे में सोचना होगा। यदि इसकी निजी परियोजना जहां आप सर्वर को संपादित करने में सक्षम हैं, तो यह कोई समस्या नहीं है।
beytarovski

8

वर्डप्रेस सत्रों का उपयोग नहीं करता है, इसीलिए आपके सत्र चर काम नहीं कर रहे हैं।

तथ्य की बात के रूप में, अगर कुछ चर को परिभाषित किया जाता है, तो वर्डप्रेस वास्तव में $_SESSIONखुद को स्टेटलेस रखने के लिए नष्ट कर देगा

लेकिन अगर आप वास्तव में सत्र का उपयोग करना चाहते हैं, तो session_start()अपनी wp-config.phpफ़ाइल की शुरुआत में जोड़ने का प्रयास करें । जब भी WP शुरू होगा (यह उम्मीद है) सत्र शुरू होगा, तो आप $_SESSIONसिस्टम में कहीं और अपने चर सेट और पढ़ सकेंगे ।


मैंने देखा कि वर्डप्रेस कुछ लॉगिन डेटा को स्टोर करने के लिए कुकीज़ का उपयोग करता है। जब मैंने $ _COOKIE सरणी मुद्रित की, तो मैं कुछ डेटा देख सकता था। मैं उस डेटा को मैन्युअल रूप से सेट करना चाहूंगा। यहाँ अधिक जानकारी: stackoverflow.com/questions/21595900/…
shasi kanth

1
इसके अलावा, यह सत्र शुरू करने के लिए wp-config.php फ़ाइल को संशोधित करने की सिफारिश की गई है? अगर हम Wordpress को बाद में अपडेट करते हैं, तो wp-config.php फाइल भी अपडेट हो जाती है?
shasi kant

ट्यूटोरियल जो इस और अधिक चर्चा करता है silvermapleweb.com/use-the-php-session-in-wordpress
nu everest

1
@ शशिकांत नहीं, wp-cofnig.phpअपडेट पर छुआ नहीं है।
टोडुआ

1
@ शशिकांत wp-config.phpअपडेट नहीं होंगे, अन्यथा आप आपको डीबी कनेक्शन और आपके द्वारा निर्धारित अन्य मापदंडों को खो सकते हैं।
Erenor Paz

-5

Wordpress इसका समर्थन करता है

आपको सबसे ऊपर निम्नलिखित पंक्तियों को जोड़ना होगाfunctions.php

if ( ! session_id() ) {
    session_start();
}

10
आप सत्र को दो बार क्यों शुरू करेंगे?
kaiser
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.