برگزیده های پرشین تولز

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

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 خاموش هم درست كار كنه .

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

knowhow

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

nendoke

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

PHP:
<?php

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

?>
 

Piter1356

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

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

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



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


PHP:
<?php 

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

?>
 

sama_sally

Registered User
تاریخ عضویت
5 آپریل 2005
نوشته‌ها
2,598
لایک‌ها
1
سن
35
محل سکونت
Essen, Deutschland
اينو بالاي صفحه بذار: دوساله ازش استفاده ميكنم بخوبي كار ميكنه
PHP:
<?php
// If register_globals is off in php.ini file
if ($HTTP_SESSION_VARS) {extract($HTTP_SESSION_VARS, EXTR_SKIP);}
if ($_SESSION)          {extract($_SESSION, EXTR_SKIP);}
if ($HTTP_COOKIE_VARS)  {extract($HTTP_COOKIE_VARS, EXTR_SKIP);}
if ($_COOKIE)           {extract($_COOKIE, EXTR_SKIP);}
if ($HTTP_POST_VARS)    {extract($HTTP_POST_VARS, EXTR_SKIP);}
if ($_POST)             {extract($_POST, EXTR_SKIP);}
if ($HTTP_GET_VARS)     {extract($HTTP_GET_VARS, EXTR_SKIP);}
if ($_GET)              {extract($_GET, EXTR_SKIP);}
if ($HTTP_ENV_VARS)     {extract($HTTP_ENV_VARS, EXTR_SKIP);}
if ($_ENV)              {extract($_ENV, EXTR_SKIP);}
if ($PHP_SELF == "")    { $PHP_SELF = $HTTP_SERVER_VARS["PHP_SELF"]; }
?>
جواب رو بهم بگو!
 

Piter1356

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

PHP:
Notice: Undefined variable: HTTP_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 variable: PHP_SELF in d:\program files\easyphp1-8\www\student\editstudentlist.php on line 48
 
بالا