صفحة 1 من 4 1234 الأخيرةالأخيرة
النتائج 1 إلى 15 من 54

الموضوع: PHP6 ، نظرة نحو المستقبل ..!

  1. #1
    عضو شرف
    تاريخ التسجيل
    May 2007
    المشاركات
    1,647

    PHP6 ، نظرة نحو المستقبل ..!



    بسم الله الرحمن الرحيم

    الحمدلله ، والصلاة والسلام على خير عباد الله ، محمد بن عبدالله ، وعلى آله وصحبه ومن والاه ، وبعد ؛

    سنتحدث اليوم عن الإضافات التي يدرسها ويعمل عليها فريق PHP لتوفيرها في إصدار PHP الجديد ، PHP6 ..

    هناك الكثير جداً من الإضافات والتخصيصات والتعديلات .. سنبدأ بذكرها واحدة تلو الأخرى ، وسأعمل جاهداً بإذن الله تعالى على تخصيص هذا الموضوع من حيث الردود بتزويده بأحدث المعلومات التي أصل إليها حول تلك الإضافات والتعديلات ..

    ملاحظة: أتمنى أن يعلم الجميع الهدف من هذا الموضوع، فالهدف هو تمهيد برمجتنا نحو برمجة متناسبة مع الإصدارات الجديدة ، إذا توافقت برمجتنا من الآن مع PHP6 ، عندها لن نقلق من تعطّل سكربتاتنا في الإصدار الجديد. وكذلك كنظرة مستقبلية متفائلة نحو التطويرات القادمة ..

    نبدأ بسم الله الرحمن الرحيم ..

    وداعاً Register Globals

    كلنا نعلم مدى اعتماد الأحافير البي إتش باوية على خاصية Register Globals = On ، والتي يعود أصلها إلى PHP3 .. وكذلك نعلم مدى خطورة تفعيل خاصية Register Globals ..

    Register Globals هي الخاصية التي تعمل على تسجيل المصفوفات الرئيسية :
    كود:
    $_GET
    $_POST
    $_FILES
    $_COOKIE
    $_REQUEST
    $_SERVER
    $_ENV
    $_SESSION
    حيث تستطيع الوصول إليها وكأنها متغيرات عادية ، أي كأنك قمت بتنفيذ الأمر extract على كل منها ..

    هذه الخاصية تم إلغاؤها في PHP6 ، حيث أنك لن تجدها حتى في خيارات PHP في ملف php.ini ولن تستطيع تفعيلها ..

    والسبب هو الخطر الكبير الذي تؤدي إليه ، المصدر - المانيوال :
    This feature has been DEPRECATED and REMOVED as of PHP 6.0.0. Relying on this feature is highly discouraged.
    وداعاً للمتغيرات الكبيرة الطويلة HTTP_*_VARS

    في PHP6 سوف لن تستطيع عزيزي المبرمج الوصول إلى المتغيرات الكبرى التي تحمل الأسماء HTTP_*_VARS ، عليك باستخدام الصيغ التي تم اعتمادها منذ زمن ، مثل COOKIE_$ و SESSION_$ و POST_$ و GET_$ ، القسم السابق يوضّح بعض المعلومات حول هذا الموضوع ..

    وداعاً Magic Quotes

    أيضاً نقطة لصالحنا ، خاصية Magic Quotes ستودعنا في PHP6 ، وهي الخاصية التي تعمل على تجاهل النصوص المرسلة في PHP .. أي أن عملها مطابق لدالة addslashes إلا أنها تعمل بشكل تلقائي على النصوص المرسلة عبر النماذج . وهذا قد يسبب الكثير من المشاكل للمبرمجين .

    هذه الخاصية لن تجدها في ملف php.ini أيضاً ، ولن تتمكن من تفعيلها في PHP6 .. كذلك استناداً للمانيوال ( PHP: Magic Quotes - Manual ) :
    This feature has been DEPRECATED and REMOVED as of PHP 6.0.0. Relying on this feature is highly discouraged.
    هذا سيؤثر في الخيارات : magic_quotes ، magic_quotes_sybase ، و magic_quotes_gpc .

    وداعاً للوضع الآمن Safe Mode

    هاا ؟! السيف مود سيختفي أيضاً ؟؟؟

    نعم سيختفي من PHP6 طبقاً لما ورد في المانيوال :
    Safe Mode was removed in PHP 6.0.0.
    لن يعد بإمكانك تشغيل الوضع الآمن في سيرفرك عند استخدامك للإصدار PHP6 .. ولن تجد الخيار أيضاً في php.ini ..

    يا للمصيبة ! لغة PHP بدأت بالتدهور أمنياً .. !!

    هذا ما قد تظنه للوهلة الاولى ، لكن مطوري لغة PHP يعلمون تماماً ما يفعلون ، فقد أوضحوا أن safe_mode لم يكن يعمل بالشكل المرغوب للحماية الكاملة ، فهو أصلح للمبتدئين لحماية سيرفراتهم .. أما الآن ، فلا داعٍ له ، يمكن للجميع استخدام open_basedir للحد من المجلدات التي يصل لها مبرمج السكربت .. وكذلك منع الدوال التي يرغب بمنعها .. لا تزال الحرية متاحة كالسابق في المنع والحماية .

    وداعاً مكتبة Freetype 1 و GD 1

    لا داعي للكلام الكثير هنا ، مكتبة Freetype 1 و GD 1 ، مكتبتان قديمتان جداً جداً وسيتم استئصالها من نسخة PHP ..

    دالة ifsetor

    دالة ifsetor الجديدة تفيد المبرمجين في تحديد قيم افتراضية للمتغيرات ، في السابق كنا نستخدم:
    كود PHP:
    $var = (isset($var) ? $var 'default'); 
    في نقاش PHP6 ، تم اقتراح دالة ifsetor التي ستريحنا في طريقة الكتابة ، فالكود السابق سيصبح:
    كود PHP:
    $var ifsetor($var'default'); 
    ومعناه : إذا لم يكن المتغير var$ يحمل قيمة ، اجعل قيمته default .

    من الجدير بالذكر ، أن الاجتماع أفضى إلى عدم اعتماد هذه الخاصية ، على أغلب الأحوال لن ترى ifsetor في PHP6 ..

    إذاً ، لماذا خصصت لها قسم من الموضوع ؟

    اعتمد مطورو PHP أسلوب آخر لهذه العملية ،
    كود PHP:
    $var = (isset($var) ? $var 'default'); 
    في هذه الصيغة ، تم إسقاط " ضرورية " الباراميتر الأوسط ، فليس من المهم بعد اليوم أن تضع النتيجة في المنتصف، وذلك عن طريق معامل ?: ..

    هذه الصيغة تتيح مجالاً أكبر من العمليات ، دون محدودية التحكم في ifsetor ..

    المثال بعد التطوير:
    كود PHP:
    $var = (isset($var) ?: 'default'); 
    عندما يكون المنتصف فارغاً ، لن يحدث شيئاً إذا كان المتغير يحمل قيمة في الأصل ..

    ربما نرى كمبرمجين أن صيغة ifsetor أسهل ، لكن الطريقة هذه معتمدة من قبل وأوسع وأشمل ..

    إذا كنت ترغب باعتماد ifsetor خاصتك ، يمكنك صنع دالتك الخاصة:
    كود PHP:
    function ifsetor(&$var$or) {
        return (isset(
    $var) ? $var $or);

    Goto وإضافتها إلى اللغة

    كثيراً ما يحتاج مبرمجو لغات الويب أو الديكستوب إلى القفز إلى سطر معين في برنامجهم ، وفي ظل هذه الاحتياجات ، توفرت هذه الكلمات المحجوزة في بعض لغات البرمجة، فمثلاً :
    كود:
    print 'hello';
    goto myLine;
    print 'welcome';
     
    myLine:
    print 'This is my line';
    عندما يصل معالج اللغة إلى goto سينتقل إلى السطر المحدد وهو هنا myLine مباشرة دون تنفيذ الكود الذي يتخللهما ..

    هذه الصيغة لن تكون مدعومة في PHP6 ، نظراً لارتباطها بأمور سيئة مع لغات برمجة أخرى !

    وحيث أن عملها مختلف في هذه اللغة الواسعة ، تم توسيع كلمة break لتتمكن من الانتقال إلى أسطر معينة كذلك ... وهنا مثال لاستخدام break الموسعة في PHP6 :
    كود PHP:
    <?php
    for ($i 0$i 9$i++)
    {
            if (
    true) {
                    break 
    blah;
            }
            echo 
    "not shown";
    blah:
            echo 
    "iteration $i\n";
    }
    ?>
    قد تكون هذه الخاصية مفيدة للمبرمجين إلا أني أرى أنها تحدث " حالة فوضى " في الكود البرمجي ، فقد تعودنا على الكود دونها ، فلا أرى لزوم استخدامها في سكربتاتنا .. من يدري ، قد أكون أول من يحتاجها ..

    foreach الآن تتعامل مع المصفوفات متعددة الأبعاد

    في السابق كنا نقوم بالآتي:
    كود PHP:
    $array = array(array('a''b'), array('c''d'));
    foreach (
    $array as $val) {
        list (
    $val1$val2) = $val;

    وبذلك نحصل على قيم المصفوفتين الداخليتين ، هذه المصفوفة ذات الأبعاد المتعددة ، سيمكنك التعامل معها بطرق أبسط وأسهل في PHP6 .

    ما رأيك بهذا:
    كود PHP:
    $array = array(array('a''b'), array('c''d'));
    foreach (
    $array as list($val1$val2)) {
     

    ستحصل على نفس القيم بهذه الطريقة ، يا إلهي ، هذه الطريقة ذات تأثير كبير جداً على مستقبل البرمجة . خطوة موفقة من فريق PHP .

    وداعاً {} ، و [] تتقدم !

    أنعم النظر في المثال الآتي:
    كود PHP:
    $str 'abcd';
    echo 
    $str{1}; 
    الكود السابق سيطبع b ، لأن {} هي محددات تحدد المفتاح Index في المتغير النصي للتعامل معه .

    نستخدم [] لنفس الغرض كذلك ،
    كود PHP:
    echo $str[1]; 
    فريق PHP قام بتجاهل {} في PHP5.1.0 وسيتم إزالة هذه المحددات بشكل كامل من PHP6 . عندها ، لن تستطيع التعامل معها أبداً .

    في الوقت ذاته ، يطوّر فريق PHP المحددات [] لتعمل بشكل رهيب ، الخطوة هذه غير مسبوقة وستسهّل علينا الكثير الكثير ، وأنا أعني ما أقول .

    الآن هذا المحدد سيعمل عمل دالتي array_slice, substr ، هذا يعني أنه يمكنك تناول جزءاً من متغير نصي أو مصفوفة دون التطرق إلى الدوال السابقة .. كيف ؟
    كود PHP:
    $str 'this is my text';
    echo 
    $str[2,]; 
    هذا سيأخذ من الحرف ( أو عنصر المصفوفة ) الثاني إلى النهاية ..

    يمكن التحديد برقمين 1,2 مثلاً ، يمكن كذلك وضع أرقام سالبة ، ستعمل تماماً كعمل array_slice إن كانت مصفوفة ، و substr إن كان نصاً ، وإن لم تحدد نقطة البداية ، سيبدأ من 0 .

    بهذه الشروط ، سيسلك المتغير النصي بالشكل التالي مسلكاً جديداً :
    كود PHP:
    $str 'tex';
    $str[] = 't'
    عندها سيحوي المتغير القيمة text ، هذا يعني أن [] ستعمل كعمل المعامل .= على النصوص .. عملها أصبح شبيهاً بعملها مع المصفوفات ..

    تعديل سلوك Microtime الافتراضي

    إذا كنت من مستخدمي دالة microtime في لغة PHP على المدى السابق ، ستدرك فوراً الفرق بين microtime في الإصدارات السابقة وهذا الإصدار .

    منذ أ، وجدت دالة microtime كانت تعيد نتيجة نصية String تحوي أجزاء الثانية متبوعة بمسافة ، ثم الوقت بنسق Unix Timestamp ، مثال:
    كود:
    0.75000200 1211460710
    كنا في السابق للحصول على الوقت الحالي بالثواني وأجزائها ، نقول بتجزئة النتيجة ونجمعها ..
    كود PHP:
    $micro explode(' 'microtime());
    $microtime $micro[0] + $micro[1]; 
    لكن ، في PHP5 ، تمت إضافة باراميتر جديدة لهذه الدالة ، والباراميتر الوحيد لها .. حيث أنه إذا أخذ القيمة true سيعيد الناتج على شكل Float ( بالشكل الذي حصلنا عليه في المثال الأخير ) ..

    فالمثال التالي في PHP5 مشابه للمثال السابق :
    كود PHP:
    $microtime microtime(true); 
    أما في PHP6 ، ففريق PHP قام بجعل القيمة الافتراضية لهذا الباراميتر هي true ، أي أن :
    كود:
    microtime() = microtime(true)
    هذا في PHP6 ، طبعاً السابق ليس كود PHP ، فقط توضيح ..

    ( طيب واللي استخدم طريقة explode وجمع الجزئين ؟!!! يعني كل السكربتات اللي تستخدمه رح تخرب ؟!!! )

    دعونا ننفذ الكود نفسه في PHP6 :
    كود PHP:
    $micro explode(' 'microtime());
    $microtime $micro[0] + $micro[1]; 
    السطر الأول سيعيد لنا مصفوفة تحتوي عنصراً واحداً ، حيث أن النتيجة ستكون مثلاً :
    كود:
    1211460710.75
    وهي لا تحوي أي مسافة كي يتم التقسيم من عندها .. إذاً العنصر 0 سيتم جمعه مع العنصر 1 ، العنصر 1 غير موجود ، فالنتيجة هي العنصر 0 ..

    لكن عند الجمع مع العنصر 1 ستظهر رسالة خطأ من نوع Notice ، لأن العنصر الثاني غير موجود ..

    هذه الرسالة لن تؤثر في عمل السكربت ، عموماً يجب علينا تغيير طريقتنا في التعامل مع هذه الدالة من الآن بتفعيل الباراميتر بالقيمة true حتى تعمل بكفاء في PHP5 و PHP6 .. ووداعاً PHP4 ..

    وداعاً <%

    من منا لم يستخدم <% في سكربتاتنا ؟ << كلنا ..!

    كلنا درسنا في بداية مسيرتنا البرمجية أن <% و %> تعملان عمل <?php و ?> .. هذا إن كانت مفعلة في خيارات php.ini ..

    لكني شخصياً لم أحتجها يوماً من الأيام ، هذه الصيغة تم إسقاطها من لغة PHP .. مع الاحتفاظ بـ <? وبقية الوسوم ..

    النتيجة: صيغة وسوم ASP لم تعد متاحة لكتابة سكربتات PHP ..

    إضافة APC إلى النسخة الرسمية

    حسب رغبات مستخدمي لغة PHP ، قام فريق PHP بتضمين نظام الكاش المعروف APC في ملفات النسخة الرسمية من الإصدار الجديد PHP6 . هذه المكتبة ستكون معطلة افتراضياً ، لكنها ستتوافر ضمنياً .

    قارئ/كاتب XML في النسخة الرسمية

    وتدخل مكتبة XMLReader و XMLWriter في توزيعة PHP الجديدة رسمياً ، وستكون مفعلة في الوضع الافتراضي في PHP6 .

    ستسهّل هاتان المكتبتان الكثير من التعاملات مع ملفات XML من كتابة وقراءة ..

    Ereg ستخرج إلى PECL

    قام فريق PHP بتحويل ereg إلى امتداد Extension ، وبوجود مكتبة PCRE والتي سوف لن تكون قابلة للتعطيل ، يمكن الاستغناء عن امتداد ereg ونقله إلى مكتبة PECL للامتدادات ..

    عليك عزيزي المبرمج الانتقال فوراً للبرمجة باستخدام مكتبة PCRE بدوال preg .. فهي التي نثق بوجودها مستقبلاً في إصدارات PHP .

    ويتّضح أن هناك امتداد جديد للتعامل مع التعابير القياسية ، غير PCRE و ereg ، بالاعتماد على ICU .. لكني لا أعلم عنه شيئاً حتى الآن .

    الخاتمة Conclusion

    لست بصدد إنهاء الموضوع بشكل كلي ، فالتطويرات والتغييرات في PHP6 ليست مقتصرة على ما ذكرت هنا، وإنما هي تغييرات كثيرة هذا ما استطعت نقله منها حتى الآن ، وحتى أضمن قراءة الأعضاء لمعظم هذه الميزات الجديدة والتعديلات ، لم أرغب بالتأخر في طرح الموضوع ..

    لم أذكر التغييرات في OO مع أنها ليست بالقليلة ، ولم أتطرق للـ Unicode ولا Namespace لأن الأخ عبدالله عيد تحدّث عنها في إحدى المواضيع ، فلم أرغب بتكرارها ..

    من يجد لديه بعض المعلومات غير المذكورة ، ومن يرى أنه لم يفهم إحدى الخصائص والتغييرات فليبادر بالرد بالاستفسار أو الإضافة مشكوراً ..

    الموضوع سيتجدد كلما توفر الوقت بإذن الله تعالى .. وسيبقى مفتوحاً للحديث والنقاش ..

    أطيب التحيات، أشرف السمهوري





    التعديل الأخير تم بواسطة أشرف السمهوري ; 24-05-2008 الساعة 10:58 AM
    __________________
    # اتبعني على Twitter
    # عِرفان ساهم ببناء المحتوى العربي العلمي على الإنترنت!




  2. والله شغل عدل الله يعطيك العافيه خيوو السمهوري





    __________________
    سبحان الله وبحمده
    > "كتبي، لعلها تفيدك!" *جديد
    > "مدونتي، تصويري.." | LaZqA
    > Twitter

  3. #3
    عضو نشيط
    تاريخ التسجيل
    May 2006
    المشاركات
    168


    وداعاً Register Globals

    حسب علمي المتواضع فاستخدام هذه الدوال شائع جدا
    ماهو البديل وهل سيكون سهل الاستخدام ؟؟

    وداعاً للمتغيرات الكبيرة الطويلة HTTP_*_VARS
    ماذا تقصد بالصيغ التي تم اعتمادها منذ زمن ؟؟

    سأعود بإذن الله تعالى لقراءة بقية الموضوع والتساؤل حول كل نقطة فأني أجهل كثيرا مما تتكلم عنه كيف كان حتى افهم كيف سيكون

    اللهم علمنا ماينفعنا وانفعنا بما علمتنا وزدنا علما .
    شكرا لك على هذه الموضوع القيم والذي يجعلنا متابعين لتطور اللغة .





    __________________
    100 صقر !!
    يومياتي في تعلم php ..
    أرحب بالمبتدئين لنتعلم معا والمحترفين ليقدموا النصح والتوجيه .
    .
    .
    سبحان الله وبحمده عدد خلقه .. ورضا نفسه .. وزنة عرشه .. ومداد كلماته .

  4. #4
    عضو فعال
    تاريخ التسجيل
    Aug 2007
    المشاركات
    1,431


    الله يجزاك خير اخوي على هالموضوع المرتب الرائع .






  5. #5


    مشاء الله

    موضوع اكثر من رائع يا اشرف

    جزاك الله كل خيرا





    __________________
    prog4me.com

  6. #6
    عضو نشيط جدا
    تاريخ التسجيل
    Sep 2006
    المشاركات
    389


    مشكور على الموضوع ، صراحة يوجد مصادر قليل بالعربي تتكلم عن PHP6
    اعتقد ان موضوعك كان اشملها والجميع يشكرون ..
    مع المحبة





    __________________
    أرجوا من الجميع ان يسامحوني ، سواء عرفوني أو لم يعرفوني !! ، ارجوا من جميع من قد اكون اسأت اليهم أن يصفحوا عني ، ومن لديهم عندي حقوق أن يطلبوها مني .. جمعنا الله في الجنان .

  7. #7
    عضو نشيط
    تاريخ التسجيل
    May 2008
    المشاركات
    237


    يعطيك العافية . والله شكل هل الأصدار راح ينهي asp.net






  8. #8


    موضوع رائع شكراً لك أخي أشرف





    __________________
    ahmed sliman .. Web Programmer
    ahmeds _ link @ hotmail . com

  9. #9
    عضو شرف
    تاريخ التسجيل
    May 2007
    المشاركات
    1,647


    شاعر_الظلام ، ff5006 ، Prog4Me.Com ، الفايق ، IrIsH ، ahmeds_link : شكراً لمروركم وتواجدكم في الموضوع .. جزيتم خيراً لكلماتكم الطيبة والتي لا يسعني أن أرد عليها واحدة واحدة :$ ..

    SaharRose :

    وداعاً Register Globals

    حسب علمي المتواضع فاستخدام هذه الدوال شائع جدا
    ماهو البديل وهل سيكون سهل الاستخدام ؟؟
    أولاً ، مجموعة المصفوفات التي كتبتها في الموضوع هي متغيرات كبرى Global Variables ، أو Global Arrays ، ولا تعتبر من الدوال ، لأنها ببساطة ليست بتركيب الدوال Functions .

    ثم أن استخدام القائمة في الموضوع ، وهي:
    كود:
    $_GET
    $_POST
    $_FILES
    $_COOKIE
    $_REQUEST
    $_SERVER
    $_ENV
    $_SESSION
    فعلاً شائع جداً ، وهذه المتغيرات والمصفوفات ستبقى في النسخة الجديدة ، ومن الاستحالة الاستغناء عنها ..

    في النسخ القديمة ، وحتى PHP5 ، هناك خيار يدعى register_globals في ملف php.ini ، عند تفعيله ، سيتمكن المبرمج من الوصول إلى عناصر هذه المصفوفات دون ذكر اسم المصفوفة ، فمثلاً:
    كود PHP:
    $_POST['username'
    سنتمكن من الوصول إليها بهذه الطريقة:
    كود PHP:
    $username 
    أي وكأنا قمنا بعمل extract على جميع تلك المصفوفات ، هذه الخاصية لها سلبيات كثيرة جداً ، وقد تم تعطيلها افتراضياً في نسخ سابقة ، لكن في PHP6 سيتم إلغاء الخاصية كلها ، وتعتبر هذه إحدى نقاط الأمان التي ستؤكد عليها PHP6 ..

    للمزيد حول Register Globals: PHP: Using Register Globals - Manual
    للمزيد حول مشاكلها: ط§ظ„ظ…ط´ط±ظˆط¹ - طھط·ظˆظٹط± ط§ظ„ظ…ظˆط§ظ‚ط¹ » ط§ظ„ط¨ط±ظ…ط¬ط© ط§ظ„ط¢ظ…ظ†ط© ظپظٹ ظ„ط؛ط© Declare Variables … PHP

    استخدام المصفوفات المذكورة سيبقى كما هو وهي بالتأكيد شائعة جداً ، أتمنى أن تكون الفكرة قد وصلت .. فالذي سيختفي هو خيار Register Globals ، وليست المصفوفات في الأعلى ..

    وداعاً للمتغيرات الكبيرة الطويلة HTTP_*_VARS
    ماذا تقصد بالصيغ التي تم اعتمادها منذ زمن ؟؟
    أيضاً كنا نستطيع الوصول إلى نفس المتغيرات بهذه الطريقة:
    كود PHP:
    $HTTP_POST_VARS['username'
    ثم تم اعتماد طريقة :
    كود PHP:
    $_POST['username'
    وستختفي الطريقة الأولى ، هذا يعني أنه علينا استخدام $_ بدلاً من HTTP_*_VARS$ .. يعني نتيجة هاتان النقطتان هي أنه علينا دائماً استخدام المصفوفات التي ذكرتها في الموضوع وفي ردي هنا ، وعدم التطرق إلى التعامل مع Register Globals أو المصفوفات القديمة التي ستختفي HTTP_*_VARS$ ..

    أتمنى أن تكون قد اتضحت الفكرة ..

    تحياتي، أشرف السمهوري





    __________________
    # اتبعني على Twitter
    # عِرفان ساهم ببناء المحتوى العربي العلمي على الإنترنت!

  10. #10
    عضو سوبر نشيط
    تاريخ التسجيل
    Jun 2001
    المشاركات
    707


    شكراً لك علىة المعلومات القيمة ، إن شاء الله يكون موضوعك دليل للإنتقال إلى php6.

    بالنسبة إلى Register Globals هل أفهم من كلامك أن مجموعة المتغيرات التي ذكرتها مثل:
    كود PHP:
    $_GET[]
    $_POST[] 
    وغيرها ستحد مكان المتغير الرئيسي لـ Register Globals ؟ مع أني تركت التعامل معها منذ فترة لسماعي بهذا الخبر ..





    __________________
    مدونة مبدع

  11. #11
    عضو نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    181


    لي عوده يااشرف عشان اكمل قراءه الموضوع واتمنى منك المزيد من هذه المواضيع





    __________________
    يتم قبول الان استقبال اي طلبات التطبيقات
    على اي نوع من المنصات الاتيه للجوال
    ( اندرويد -- ايفون ) تابعنا
    ( أعمالنا - اتصل بنا )
    يمكنك الان عمل تطبيق خاص لمنتداك

  12. #12
    عضو سوبر نشيط
    تاريخ التسجيل
    Jan 2008
    المشاركات
    604


    شغل قوي يا ابو الشوش

    PHP6 راح تقضي على ASP.NET قضاء القط على الفأر !!

    لكن لدي استفسار بسيط

    هل PHP6 مطروحة للتحميل ؟!!

    انا دوريا اراجع الموقع ولم اجد الا الاصدار
    PHP 5.2.6


    فكيف تطبق برامجك عليها !!!





    __________________

  13. #13
    عضو شرف
    تاريخ التسجيل
    May 2007
    المشاركات
    1,647


    ahmed100 :

    المتغيرات التي تحمل المصفوفات الكبرى Global Arrays ستصبح الطريقة الوحيدة للوصول إلى المتغيرات الخارجية، كما قلت في ردي السابق ، لن تتمكن من الوصول إلى عنصر خارجي مرسل من فورم مثلاً بهذه الطريقة : username$ ، لأن هذه الطريقة لا تفعّل إلا بـ Register Globals ،

    حتى تصل الفكرة للجميع ، في السابق إذا أرسلنا عن طريق نموذج HTML أو Form حقل باسم username وبطريقة POST ، كنا نستخدمه في ملف PHP بالطرق التالية:
    كود PHP:
    $username // إذا كانت register_globals = on
    $HTTP_POST_VARS['username']
    $_POST['username'
    في PHP6 ، لن تستطيع استخدام الطريقة الأولى ولا الثانية ، الطريقة الأخيرة هي الوحيدة المتاحة للمبرمج ..

    يمكن التحايل على السكربت وعمل extract لـ _POST ، هذا لمن يحب إعادة الثغرات لسكربته ..
    كود PHP:
    extract($_POST); 
    عندها ستتمكن من الوصول إلى username$ بالطريقة القديمة .. وكأن register_globals = on بالرغم من اختفاء هذا الخيار من إعدادات PHP كلياً ..

    artint.net : شكراً لمرورك عبدالرحمن ، وان شاء الله ترجع وتستفيد من الموضوع

    النحات : هههه لا أريد الحديث مرة أخرى حول ASP.NET ، سأدعها لأصحابها ..

    PHP6 لم تنته بعد ، وليست مطروحة للتحميل .. إذا كنت تريد مشاهدة الـ Source Code أو الحصول على نسخ أولية ومباشرة من إصدارات PHP ، شاهد هذه الصفحة:
    PHP Snapshots

    بمجرد صدور النسخة ستكون قابلة للتحميل للجميع إن شاء الله ، عندها ستشاهدها هنا :
    PHP: Downloads

    تحياتي، أشرف السمهوري





    __________________
    # اتبعني على Twitter
    # عِرفان ساهم ببناء المحتوى العربي العلمي على الإنترنت!

  14. #14
    عضو نشيط
    تاريخ التسجيل
    May 2006
    المشاركات
    168


    نعم واضح جدا
    وأرى بأن الطريقة الجديدة ستكون أسهل ما سبق
    جزاك الله خيرا

    لي عودة بإذن الله تعالى .





    __________________
    100 صقر !!
    يومياتي في تعلم php ..
    أرحب بالمبتدئين لنتعلم معا والمحترفين ليقدموا النصح والتوجيه .
    .
    .
    سبحان الله وبحمده عدد خلقه .. ورضا نفسه .. وزنة عرشه .. ومداد كلماته .

  15. #15
    عضو سوبر نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    613


    هذه قائمة بماسيتم عمله في النسخة 6

    أعتقد أن إزالة الـ Magic Quotes هي تغيير جذري في اللغة ، عموماً من الجيد أنني قمت بمعرفة هذه المعلومة الآن لأنني كنت أبرمج سابقاً بدون إستخدام الدالتين addslashes ، stripslashes ، أعتقد أنني الآن ملزم بذلك .

    أشكرك أخي أشرف على جهدك في كتابة هذا الموضوع المتميز .





    التعديل الأخير تم بواسطة dev11 ; 24-05-2008 الساعة 09:24 PM





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض