آژانس هواپیماییexchanging

زماني كه register_global برابر off باشه اين دستور به چه شكلي بايد باشه ؟

شروع موضوع توسط Piter1356 ‏11 جولای 2005 در انجمن PHP

  1. Piter1356

    Piter1356 کاربر تازه وارد

    تاریخ عضویت:
    ‏11 اکتبر 2004
    نوشته ها:
    395
    تشکر شده:
    0
    محل سکونت:
    tehran
    سلام
    همانطور كه ميدونيد قبلا در هاستها register_global را on قرار مي دادند . اما بدنبال مشكلات امنيتي اين خصوصيت رو بصورت off در آوردند .

    امروزه اكثر هاستهاي لينوكس اين خصوصيت بصورت off ست ميشه .

    با اين تغيير بايد شكل بكار گيري برخي از فرامين تغيير پيدا كنه .

    مثلا اين خط دستور پي اچ پي در صورتي كه register_global روشن باشه درست عمل ميكنه :
    کد:
     echo "<tr bgcolor=$color><td>$id:</td><td>$question</td><td>[ <a href='editstudent.php?id=$id'>ظˆغŒط±ط§غŒط´</a> ]</td><td>[ <a href='deletestudent.php?id=$id' onClick=\"return confirm('ط¢غŒط§ ظ…غŒ ط®ظˆط§ظ‡غŒط¯ ط§غŒظ† ط§ط³ظ… ط±ط§ ظ¾ط§ع© ع©ظ†غŒط¯ طں')\">ظ¾ط§ع© ع©ط±ط¯ظ†</a> ]</td></tr>";
    
    حالا از دوستاني كه تجربه دارند ميخوام كه اين دستور رو طوري تغيير بدند كه با egister_global خاموش هم درست كار كنه .

    البته در صورت امكان
    ممنون ميشم
     
  2. knowhow

    knowhow مدیران قدیمی

    تاریخ عضویت:
    ‏25 دسامبر 2002
    نوشته ها:
    3,477
    تشکر شده:
    19
    موضوع سر اینه که $id و یا $color و یا $question از کجا اومده اگه اینها از فرم پست شدن باید تبدیل شن به $_POST[id] و.....
    اگه از url میان باید بشه $_GET[id] البته این مال id بود و بقیه هم به همین صورت.
     
  3. sama_sally

    sama_sally Registered User

    تاریخ عضویت:
    ‏5 آپریل 2005
    نوشته ها:
    2,598
    تشکر شده:
    1
    محل سکونت:
    Essen, Deutschland
    بگو این متغیر ها از کجا اومدن تا خط رو تغییر بدیم
     
  4. nendoke

    nendoke کاربر تازه وارد

    تاریخ عضویت:
    ‏31 آگوست 2003
    نوشته ها:
    412
    تشکر شده:
    5
    محل سکونت:
    Some Where in Moon !
    می تونی بجای اینکه تک و تکه خط ها رو تغییر بدی و این کد رو بالای صفحه ات اضافه کنی تا بدون مشکل کار منه متغیر هات :

    PHP:
    <?php

    if (!ini_get("register_globals")) {
        
    import_request_variables('GPC');
    }

    ?>
     
  5. Piter1356

    Piter1356 کاربر تازه وارد

    تاریخ عضویت:
    ‏11 اکتبر 2004
    نوشته ها:
    395
    تشکر شده:
    0
    محل سکونت:
    tehran
    سلام
    ضمن تشكر از همه دوستان بايد عرض كنم :
    متغيير $color و $question قرار نيست به فرم ديگري ارسال بشه و داخل فايل فعلي معتبره .

    فقط بايد مقدار متغيير $id به يك فايل ديگه ارسال بشه .
    مثلا يه ليستي داريم كه ميخواهيم يكي از ركوردها رو اصلاح كنيم . بايد با كليك روي گزينه اصلاح ، $id كه حاوي پرايمري كي ركورد مورد نظر ماست به يك فايل پي اچ پي ديگري كه وظيفه اصلاح رو داره فرستاده بشه .

    اين اتفاق زماني كه register_global روشنه مي افته ولي زماني كه خاموشه نمي افته .



    ضمنا كد زير رو امتحان كردم . افاقه نكرد :


    PHP:
    <?php 

    if (!ini_get("register_globals")) { 
        
    import_request_variables('GPC'); 


    ?> 
     
  6. sama_sally

    sama_sally Registered User

    تاریخ عضویت:
    ‏5 آپریل 2005
    نوشته ها:
    2,598
    تشکر شده:
    1
    محل سکونت:
    Essen, Deutschland
    اينو بالاي صفحه بذار: دوساله ازش استفاده ميكنم بخوبي كار ميكنه
    PHP:
    <?php
    // If register_globals is off in php.ini file
    if ($HTTP_SESSION_VARS) {extract($HTTP_SESSION_VARSEXTR_SKIP);}
    if (
    $_SESSION)          {extract($_SESSIONEXTR_SKIP);}
    if (
    $HTTP_COOKIE_VARS)  {extract($HTTP_COOKIE_VARSEXTR_SKIP);}
    if (
    $_COOKIE)           {extract($_COOKIEEXTR_SKIP);}
    if (
    $HTTP_POST_VARS)    {extract($HTTP_POST_VARSEXTR_SKIP);}
    if (
    $_POST)             {extract($_POSTEXTR_SKIP);}
    if (
    $HTTP_GET_VARS)     {extract($HTTP_GET_VARSEXTR_SKIP);}
    if (
    $_GET)              {extract($_GETEXTR_SKIP);}
    if (
    $HTTP_ENV_VARS)     {extract($HTTP_ENV_VARSEXTR_SKIP);}
    if (
    $_ENV)              {extract($_ENVEXTR_SKIP);}
    if (
    $PHP_SELF == "")    { $PHP_SELF $HTTP_SERVER_VARS["PHP_SELF"]; }
    ?>
    جواب رو بهم بگو!
     
  7. appbannerkhuniresbanner
  8. Piter1356

    Piter1356 کاربر تازه وارد

    تاریخ عضویت:
    ‏11 اکتبر 2004
    نوشته ها:
    395
    تشکر شده:
    0
    محل سکونت:
    tehran
    ممنون ولي:
    كار نميكنه و با اين پيغام خطا مواجه ميشم

    PHP:
    NoticeUndefined variableHTTP_SESSION_VARS in d:\program files\easyphp1-8\www\student\editstudentlist.php on line 38

    Notice
    Undefined variable_SESSION in d:\program files\easyphp1-8\www\student\editstudentlist.php on line 39

    Notice
    Undefined variablePHP_SELF in d:\program files\easyphp1-8\www\student\editstudentlist.php on line 48