واجهت هذه المشكلة سابقاً ، ونقلاً عن : http://www.spiration.co.uk/post/1231 ، أكتب لك :
This is occuring as a result of some security fixed which went into php with version 4.4. The intention is to prevent the direct transfer of global variables into the session array when register_globals is turned off. An example snipped of code which might cause this to happen is:
$_SESSION['firstname']=$_REQUEST['firstname'];
$_SESSION['lastname']=$_REQUEST['lastname'];
$_SESSION['position']=$_REQUEST['position'];
$_SESSION['email']=$_REQUEST['email'];
$_SESSION['landline']=$_REQUEST['landline'];
$_SESSION['phone']=$_REQUEST['phone'];
$_SESSION['login']=$_REQUEST['login'];
$_SESSION['password']=$_REQUEST['password'];
هذا يحدث كنتيجة لبعض الإصلاحات الأمنية التي طهرت في إصدار PHP 4.4 .. الأمر هو منع تحديد قيم متغيرات الجلسات Sessions بقيم مصفوفات الجلوبال ( GET, POST, ...etc ) عندما تكون register_gloabls = off ... كما هو واضح في الأمثلة في الاقتباس ، فهذه الصيغة تنتج التحذير السابق ...
The quickest way around this restriction (without turning on register_globals is to move the data over in two stages:
الطريقة الأسرع لتجنب هذا التحذير ( دون جعل قيمة register_globals = on ) هو تمرير البيانات في مرحلتين ..
أولاً قم بجعل قيمة الجلوبال داخل متغير عادي ، مثل :
كود:
$firstname=$_REQUEST['firstname'];
ثم قيمة الجلسة بقيمة المتغير العادي :
كود:
$_SESSION['firstname']=$firstname;
And there you have it.
Just cheat your way around and PHP is happy again... Crazy, huh?!
انتهينا من الموضوع ... نخدع الـ PHP ونخدع حالنا في نفس الوقت ونروح في داهية أمنية ...... ..
حاول تتأكد من كل المحتويات اللي تمررها ، حتى تتفادى المشاكل الأمنية ..
تحياتي، أشرف السمهوري