পিএইচপি দিয়ে মূল ইউআরএল রেফার পাবেন?


110

আমি $_SERVER['HTTP_REFERER'];রেফারার url পেতে ব্যবহার করছি । ব্যবহারকারী প্রত্যাশা অনুযায়ী কাজ করে যতক্ষণ না ব্যবহারকারী অন্য পৃষ্ঠায় ক্লিক করে এবং রেফারারটি শেষ পৃষ্ঠায় পরিবর্তন করে।

আমি কীভাবে মূল উল্লিখিত url সংরক্ষণ করব?

উত্তর:


137

এটি কোনও কুকিতে সংরক্ষণ করুন (যদি এটি আপনার অবস্থার জন্য গ্রহণযোগ্য হয়), বা একটি সেশন ভেরিয়েবলে।

session_start();

if ( !isset( $_SESSION["origURL"] ) )
    $_SESSION["origURL"] = $_SERVER["HTTP_REFERER"];

13
নীচের উত্তরে @pcp এর পরামর্শ দয়া করে নোট করুন!
d -_- বি

6
মনে রাখবেন যে আপনার http_refererউপস্থিত রয়েছে কিনা তাও পরীক্ষা করা উচিত , কারণ এটি প্রায়শই হয় না, যা "অপরিজ্ঞাত সূচক" ত্রুটির কারণ হতে পারে।
জাস্টিন

17

যোনাথন যেমন পরামর্শ দিয়েছেন, আপনি এটি কোনও কুকি বা একটি সেশনে সংরক্ষণ করতে চান।

সেশন ভেরিয়েবল ব্যবহার করা সহজ উপায়।

session_start();
if(!isset($_SESSION['org_referer']))
{
    $_SESSION['org_referer'] = $_SERVER['HTTP_REFERER'];
}

এটি পৃষ্ঠার শীর্ষে রাখুন এবং আপনি সর্বদা প্রথম রেফারারটি অ্যাক্সেস করতে সক্ষম হবেন যা সাইটের দর্শকের দ্বারা নির্দেশিত হয়েছিল।


4

এটি কোনও কুকিতে সংরক্ষণ করুন যা কেবলমাত্র বর্তমান ব্রাউজিং সেশনের জন্য স্থায়ী


4

বেশিরভাগ ক্ষেত্রেই কুকিটিকে রেফারেন্স পৃষ্ঠার ভান্ডার হিসাবে ব্যবহার করা আরও ভাল, কারণ ব্রাউজারটি বন্ধ না হওয়া পর্যন্ত কুকিগুলি রেফারার রাখবে (এবং ব্রাউজার ট্যাব বন্ধ করা সত্ত্বেও এটি রাখবে), তাই যদি ব্যবহারকারী পৃষ্ঠাটি খোলা রাখে, তবে বলি যে সপ্তাহান্তের আগে এবং কয়েক দিন পরে এটিতে ফিরে আসার আগে, আপনার সেশনটি সম্ভবত শেষ হয়ে যাবে, তবে কুকিজ এখনও থাকবে।

পৃষ্ঠার শুরুতে সেই কোডটি রাখুন (কোনও এইচটিএমএল আউটপুটের আগে, যেহেতু কোনও ইকো / মুদ্রণের আগে কুকিজ সঠিকভাবে সেট করা থাকে):

if(!isset($_COOKIE['origin_ref']))
{
    setcookie('origin_ref', $_SERVER['HTTP_REFERER']);
}

তারপরে আপনি এটি পরে অ্যাক্সেস করতে পারবেন:

$var = $_COOKIE['origin_ref'];

এবং কুকি ব্যবহার করার সময় @pc $ _SERVER ['HTTP_REFERER'] এড়িয়ে যাওয়ার বিষয়ে যে পরামর্শ দিয়েছে তা ছাড়াও, আপনি প্রতিটি অনুরোধে $ _COOKIE ['original_ref'] থেকে পালাতেও পারেন।


-4

এটা চেষ্টা কর

(isset ($_SERVER['HTTP_CLIENT_IP']) ? 
    $_SERVER['HTTP_CLIENT_IP'] : 
    (isset ($_SERVER['HTTP_X_FORWARDED_FOR']) ? 
        $_SERVER['HTTP_X_FORWARDED_FOR'] : 
        $_SERVER['REMOTE_ADDR']
    )
)

এটি পাওয়ার বিষয়ে IP ADDRESSতবে পোস্টটি REFERERওয়েব পৃষ্ঠার বিষয়ে যা প্রশ্নাবলীতে উত্সাহিত করে।
সানকসফোন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.