আমি লোককে (যারা সাধারণত ভাল কোড লেখেন) সরাসরি $_POST
এই জাতীয় কোড দিয়ে অ্যারে পরিবর্তন করে দেখেছেন :
// Add some value that wasn't actually posted
$_POST['last_activity'] = time();
// Alter an existing post value
$_POST['name'] = trim($_POST['name']);
// Our pretend function
// Pass the entire $_POST array as data to work with in the function
// The function update_record() will read only the values we actually need
update_record($_POST);
// ...That sure was easier than creating a new array
// with only the $_POST values we actually need.
এটি উপলব্ধি করে যে update_record()
$ _POST সরাসরি অ্যাক্সেস করা উচিত নয়, সুতরাং উদাহরণস্বরূপ আমরা এটিতে অন্যান্য ডেটার অ্যারে পাস করতে পারি, তবে অবশ্যই এটি অলস, খারাপ নকশা, বা সম্ভবত ভুল? যাইহোক, আমরা এখনও একটি বৈধ অ্যারে পাস করছি update_record()
, সুতরাং কেন একটি নতুন তৈরি করবেন?
এটি প্রশ্নের বিন্দু নয়, কেবল ব্যবহারের উদাহরণ। তবে, আমি প্রচুর লোককে বলতে শুনেছি যে $_REQUEST
এটি ডেটা দিয়ে করা উচিত নয় এবং এটি খারাপ অভ্যাস। কিন্তু কেন? যথেষ্ট নিরীহ দেখাচ্ছে।
উদাহরণ:
একটি ডিফল্ট
$_GET
(বা পোস্ট) মান সেট করা যা সত্যই বিদ্যমান নেই$_POST
ফর্ম জমা দেওয়ার পরে পোস্ট করা হয়নি এমন মান যুক্ত করা হচ্ছেস্ক্রিপ্টের খুব প্রথম দিকে
$_GET
অ্যারে মান বা কীগুলি সরাসরি স্যানিটাইজিং বা ফিল্টারিং করা (ফলব্যাক স্যানিটেশন ... কেন নয়?)$_POST
একটি ডিফল্ট মান সহ কোনও ইনপুট পপুলেট করার জন্য ফর্ম জমা দেওয়ার আগে ম্যানুয়ালি একটি মান সেট করা (যখন ইনপুটটি$_POST
এটির ডিফল্ট মানের জন্য পড়ে ; আমি এটি করেছি)নিজের
$_SERVER
মূল্যবোধ তৈরি? অবশ্যই, আরে কেন?অন্যদের মত,
$_COOKIE
এবং মত$_SESSION
? অবশ্যই আমরা সরাসরি তাদের সংশোধন করতে হবে? তাহলে অন্যরা কেন নয়?
সুপারগ্লোবালগুলির সরাসরি সংশোধন করা কখনই করা উচিত নয়, বা কিছু ক্ষেত্রে করা ঠিক আছে ?