ডাব্লুপি সেশনে ভেরিয়েবলগুলি কীভাবে সংরক্ষণ এবং গ্রহণ করতে হয়?


28

কয়েকটি চেকবক্স এবং ইনপুটবক্স নির্বাচন করা বাক্স সহ আমার একটি ফর্ম রয়েছে এবং এটি এজাক্স কলের মাধ্যমে ব্যবহারকারী কী চায় তা দেখায়। সমস্যাটি হ'ল ব্যবহারকারী যখন আইটেমটিতে ক্লিক করেন এবং বিশদ পৃষ্ঠাটি প্রদর্শিত হয় এবং তারপরে পূর্ববর্তী পৃষ্ঠায় ফিরে যাওয়ার সিদ্ধান্ত নেন এবং তার আগের পছন্দটি আবার ক্লিক করতে হবে।

আমি ডাব্লুপিকে সেশনে সমস্ত অপশন সংরক্ষণ করতে চাই যখন বিশদ পৃষ্ঠার বোতামটি ক্লিক করা হবে এবং সেশনে প্রকৃত তথ্য সংরক্ষণ করুন এবং তারপরে তিনি যখন পৃষ্ঠাটি আবার দেখবেন তখন সেশনগুলিতে মানগুলি চেক করা হবে এবং যদি থাকে তবে সেট করা হবে পাওয়া যায় নি।

এটা কি ডব্লিউপিতে করা যায়?

যদি হ্যাঁ, কিভাবে?

আসুন এটির ওপরে ব্যাখ্যা করুন এবং বলুন যে আমাদের ফর্মটিতে আমাদের এমন কিছু রয়েছে:

<input class="car_color" type="checkbox" name="car_color" value="1" />
<input class="car_color" type="checkbox" name="car_color" value="2" />
<input class="car_color" type="checkbox" name="car_color" value="8" />
<input class="car_color" type="checkbox" name="car_color" value="4" />
<input class="car_color" type="checkbox" name="car_color" value="6" />

আমি আমার ফর্মটিতে জমা বোতামটি ব্যবহার করি না, এটি ইনপুট পরিবর্তনের জন্য এজেএক্সের মাধ্যমে পরিচালনা করা হয়।

এবং আমার ফলাফলগুলিতে অজ্যাক্সের মাধ্যমে আমার কাছে বিস্তারিত পৃষ্ঠায় একটি লিঙ্ক রয়েছে:

<a class="detail-info-link" href="<?php echo $url ?>">

কোনও ধারণা কীভাবে আমি আমার মানগুলি সেশনে সঞ্চয় করতে পারি এবং ব্রাউজারে পুনর্বিবেচনা / পুনরায় লোড করার সময় / ফিরে বোতামটি এগুলি কল করতে পারি?

আমার সেশন সঞ্চিত স্টাফগুলি পড়তে এবং এটি জাভাস্ক্রিপ্টের মাধ্যমে ব্যবহার করতে সক্ষম হতে হবে? এবং আমার সন্ধান ফিকশনটি আজাক্সের মাধ্যমে ট্রিগার করুন যা ইতিমধ্যে ভাল কাজ করছে।

আমাকে কেবল সঞ্চয় করতে হবে (সম্ভবত বিশদ বোতামে href- এ লিঙ্কে যাওয়ার আগে এবং সেশন ভেরিয়েবলগুলি পড়তে এবং প্রেরণ করতে (যদি তাদের উপস্থিত থাকে)।


উত্তরটি যদি আপনার পক্ষে সহায়ক হয়ে থাকে তবে তা গ্রহণ করার বিষয়টি বিবেচনা করুন। দেখুন someone কেউ আমার প্রশ্নের উত্তর দিলে আমার কী করা উচিত? «এবং / বা voting কেন ভোটদান গুরুত্বপূর্ণ? এবং, ওয়ার্ডপ্রেস বিকাশ মডেল সম্পর্কে আরও তথ্য সহায়তা কেন্দ্রে উপলব্ধ
নিকোলাই

আমি মনে করি নীচের লিঙ্কটি আপনাকে সাহায্য করবে। ওয়ার্ডপ্রেস.স্ট্যাকেক্সেঞ্জাওয়েজ.কমশনেস
ম্যাকসেস /

উত্তর:


32

ডিফল্টরূপে ওয়ার্ডপ্রেসে সেশনগুলি সক্ষম হয় না, আপনি যদি পিএইচপি সেশনগুলি সক্রিয় করতে চান তবে এটি আপনার শুরুতে যুক্ত করুন functions.php:

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

আপনি এখন $_SESSION['your-var'] = 'your-value';একটি সেশন ভেরিয়েবল সেট করতে ব্যবহার করতে পারেন । সেশনে পিএইচপি ডকুমেন্টেশন একবার দেখুন ।



হালনাগাদ:

সেখানে একটি দ্বিতীয় উত্তর ছিল, যা আমার মনে একটি মূল্য ছিল - দুর্ভাগ্যক্রমে এটি মুছে ফেলা হয়েছে, আমি এখানে তথ্যটি আবার যুক্ত করছি। উত্তরটি ডাব্লুপি সেশন ম্যানেজারকে বিকল্প সমাধান হিসাবে @ ইমান দ্বারা লিখিত একটি প্লাগইন উল্লেখ করছিল।
আমি প্লাগইন সম্পর্কে কিছু জিনিস পড়েছি, তবে এটি কখনও ব্যবহার করিনি কারণ - এখনও পর্যন্ত - আমি পিএইচপি সেশনগুলির সাথে লেগে আছি - কখনওই সমস্যা হয়নি যে আমি সেগুলি ব্যবহার করতে পারি না। এটি প্লাগইন লেখকের নিজের বক্তব্য / মন্তব্য যা আমি কিছু সম্ভাব্য সুবিধা সম্পর্কে পেয়েছি।


আমি কি আপনাকে এখানে কাস্টম ক্ষেত্র সম্পর্কিত প্রশ্নটি দেখতে জিজ্ঞাসা করতে পারি: ওয়ার্ডপ্রেস.স্ট্যাকেক্সচেঞ্জ / প্রশ্নগুলি / ২6565৫৫২ / ??
ইসতিয়াক আহমেদ

1

আপনার ফাংশন.এফপি এ এটি যোগ করুন

<?php

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

add_action('init', 'tatwerat_startSession', 1);

1

আমি কীভাবে ওয়ার্ডপ্রেস প্লাগইনের জন্য নেটিভ পিএইচপি সেশনগুলির সাথে একটি ব্যবহারকারীর নাম সেশন সেট করবেন তা ব্যাখ্যা করব । আপনি এই সমস্যাটিকে আপনার সমস্যার জন্য প্রয়োগ করতে পারেন।

এটি আপনার ফাংশন.এফপি ফাইলটিতে যুক্ত করুন

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

  if ( isset( $_POST['wp-submit'] ) ){

    $_SESSION['username']=$_POST['log'];

  }

$ _POST ['লগ'] ওয়ার্ডপ্রেস লগইন ফর্ম থেকে ব্যবহারকারীর নাম ইনপুট বাক্সটি উল্লেখ করছে। যখন কোনও ব্যবহারকারী লগ ইন করে, ব্যবহারকারীর নামটি $ _SESSION ['ব্যবহারকারীর নাম'] এ সংরক্ষণ করা হয়। আপনার ক্ষেত্রে, আপনি 'লগ' পরিবর্তন করে ফর্ম ভেরিয়েবল নামের 'car_color' করতে হবে।

পরে অন্য কোনও পিএইচপি ফাইলে ব্যবহারকারীর নামটি উল্লেখ করুন

$username=$_SESSION['username'];

0

সম্ভবত ওয়ার্ডপ্রেসে কোনও সাধারণ সেশন নেই ... যাইহোক, ওয়ার্ডপ্রেস ব্যবহারকারীদের ধারণাটি জানেন। আপনি ফাংশন সঙ্গে নির্দিষ্ট ব্যবহারকারীদের সম্পর্কিত তথ্য পরিচালনা করতে পারেন add_user_meta, update_user_meta, get_user_meta, এবং delete_user_meta

আপনার যদি জাভাস্ক্রিপ্টে এইভাবে সংরক্ষণ করা তথ্যের প্রয়োজন হয় তবে আপনি একটি সামান্য পিএইচপি স্ক্রিপ্ট লিখতে পারেন যা আপনার যা প্রয়োজন বমি করে, এবং এটি অ্যাজ্যাক্স দিয়ে কল করতে পারেন।


2
এটি কেবলমাত্র যদি ব্যবহারকারী লগ ইন করে থাকেন তবেই ভাল
টিম হলম্যান

0

পিএইচপি পৃষ্ঠায় যে AJAX অনুরোধটি পেয়েছে, like _SSSION এর মতো সেট করুন।

$car_color = <user selected form input data>;
$_SESSION['car_color'] = $car_color;

$ _SESSION ভেরিয়েবল অ্যাক্সেস করুন

if(isset($_SESSION['car_color'])) {
    $value = $_SESSION['car_color'];
} else {
    $value = 'Please select a car color.';
}

এই টিউটোরিয়ালটি সেশনগুলির সঠিক সেটআপ এবং নিষ্পত্তি সম্পর্কে আরও বিশদে যায় into

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.