View Full Version : سوال: فوری: مشکل با حوزه توابع و اجرا نشدن تابع mysqli_real_escape_string
i-php-i
چهارشنبه 21 اردیبهشت 1390, 13:50 عصر
من از توابع زیر استفاده می کنم.
مشکل من اینه که mysqli_real_escape_string توی تابع injection_fun نمی تونه از متغیر cxn استفاده کنه.
لطفا بگید که چطور این مشکل رو حل کنم؟
function db_connect()
{
global $cxn;
$cxn=mysqli_connect('host','user','password','data base');
return $cxn;
}
function db_query($cxn, $sql)
{
mysqli_set_charset($cxn, "utf8");
$result = mysqli_query($cxn,$sql);
return $result;
}
function injection_fun($str)
{
$real=mysqli_real_escape_string($cxn, $mstr);
return $real;
}
Keramatifar
چهارشنبه 21 اردیبهشت 1390, 15:38 عصر
دوست عزیز
شما باید توی فانکشن injection_fun هم به متغیر مربوطه global scope بدهید
این کد ر و در ابتدای فانکشن injection_fun قرار دهید:
global $cxn;
i-php-i
چهارشنبه 21 اردیبهشت 1390, 16:08 عصر
دوست عزیز
شما باید توی فانکشن injection_fun هم به متغیر مربوطه global scope بدهید
این کد ر و در ابتدای فانکشن injection_fun قرار دهید:
global $cxn;
من این روش رو به همراه چندین روش مشابه دیگه تست کردم ولی هیچ کدوم تاثیری روی تابع mysqli_real_escape_string نداشتن.
بنظرم مشکل از تابع mysqli_real_escape_string هست، چون هر بار این تابع رو رو حذف می کنم یا از تابع mysql_real_escape_string استفاده می کنم، اسکریپت بدون مشکل اجرا می شه. نظر شما چیه؟
چه فرقی بین mysqli_real_escape_string و mysql_real_escape_string وجود داره؟
i-php-i
چهارشنبه 21 اردیبهشت 1390, 21:45 عصر
من متغیر cxn رو در هر سه تابع بصورت گلوبال تعریف کردم ولی باز هم مشکل بوجود می یاد.
دلیل این مشکل (عدم دسترسی به متغیر cxn ) چی هست؟
تابع mysqli_real_escape_string باعث بوجود اومدن مشکل می شه.
function db_connect()
{
global $cxn;
$cxn=mysqli_connect('host','user','password','data base');
return $cxn;
}
function db_query($cxn, $sql)
{
global $cxn;
mysqli_set_charset($cxn, "utf8");
$result = mysqli_query($cxn,$sql);
return $result;
}
function injection_fun($str)
{
global $cxn;
$real=mysqli_real_escape_string($cxn, $mstr);
return $real;
}
]
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.