الدالة session_register()‎ في PHP

من موسوعة حسوب
< PHP

(PHP 4, PHP 5.4.0)

تُسجل الدالة session_register()‎ مُتغيرًا عامًا واحدًا أو أكثر مع الجلسة الحالية.

الوصف

bool session_register ( mixed $name [, mixed $... ] )

تقبل الدالة session_register()‎ عددًا مُتغيرًا من المُعاملات التي يُمكن أن تكون سلسلة نصية تحتوي على اسم المتغير أو مصفوفة من أسماء المتغيرات أو المصفوفات الأخرى. تسجل الدالة session_register()‎ لكلّ اسم معامل مُتغيرًا عامًا بنفس الاسم في الجلسة الحالية.  يُمكنك عمل متغير عام جديد عن طريق إعداد عدد منُاسب مِن مصفوفة المُتغير ‎$_SESSION.

<?php

// لا يُفضل إستعمال هذه الدالة
$barney = "A big purple dinosaur.";
session_register("barney");

// $_SESSION يُفضل إستعمال المُتغير
$_SESSION["zim"] = "An invader from another planet.";
?>

في حال عدم استدعاء الدالة session_start()‎ قبل استدعاء الدالةsession_register() ‎، فإن استدعاء الدالة session_start()‎ سيكون ضمنيًا بدون أية معاملات. المتغيّر ‎$_SESSION لا يقلد هذا السلوك ويتطلب استدعاء الدالة session_start()‎ بداية.

تنبيه: أهملت الدالة في الإصدار 5.3.0 وحذفت في الإصدار 5.4.0

المعاملات

name

سلسلة نصية تحتوي على اسم المتغير المراد إنشاؤه أو مصفوفة من أسماء المتغيرات أو المصفوفات الأخرى.

القيم المعادة

تعيد الدالة session_register()‎ القيمة TRUE في حالة نجاحها، أو القيمة FALSE فيما عدا ذلك.

ملاحظات

تحذير: إذا أردت أن يعمل الكود بغض النظر عن الأمر register_globals، يجب عليك أن تستعمل مصفوفة المُتغير ‎$_SESSION كمدخلات للمتغيرات العامة الجديدة، لأنه إذا احتوت الشيفرة على الدالة session_register()‎ فلن تعمل في بيئات العمل الغير مُفعل فيها الأمر register_globals.

ملاحظة: مُنذ الإصدار 4.2.0 مِن PHP، قيمة التعليمة register_globals هي OFF وينصح مُجتمع PHP المُطورين بعدم تفعيلها واستخدام وسائل أخرى مثل superglobals.

تحذير: تُسجل الدالة مُتغيرات عامة. إذا أردت تسجيل مُتغير جلسة من خلال دالة، ستحتاج لجعلها متغير عام باستخدام الكلمة المفتاحية global أو المصفوفة ‎$GLOBALS[]‎.

تحذير : إذا كنت تستعمل المُتغير ‎$_SESSION فلا تستعمل الدوال session_register()‎ أو session_is_registered()‎ أو session_unregister().

ملاحظة: من غير الممكن  أن تُسجل المُتغيرات المصدرية في  جلسة. على سبيل المثال، لا يمكنك عمل اتصال بقاعدة بيانات وتخزين معرف الاتصال  في متغير جلسة ، فلن يصبح الاتصال صالحًا في المرة التالية من استعادة الجلسة. دوال PHP التي تُعيد المُتغيرات المصدرية مُعرفة بذلك في تعريف هذه الدوال (تُعيد النوع resource).

إذا استعمل المُتغير ‎$_SESSION، اسند قيمًا للمُتغير ‎$_SESSION. على سبيل المِثال:

$_SESSION['var']='ABC';.

انظر أيضًا

  • الدالة session_is_registered()‎: تتحقق من تسجيل متغير عام في الجلسة أم لا.
  • الدالة session_unregister()‎: تلغي تسجيل متغير عام مِن الجلسة الحالية.  

مصادر