فوری: مشکل با حوزه توابع و اجرا نشدن تابع mysqli_real_escape_string

i-php-i

Active Member
من از توابع زیر استفاده می کنم.

مشکل من اینه که mysqli_real_escape_string توی تابع injection_fun نمی تونه از متغیر cxn استفاده کنه.

لطفا بگید که چطور این مشکل رو حل کنم؟

PHP:
function db_connect()
{
    global $cxn;
    $cxn=mysqli_connect('host','user','password','database');
    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;
}
 

Masoud1365

مدیر انجمن
به نظر من شما نوع کد نویسیتون رو باید عوض کنید ! چون اینجوری که شما از متغیر کانکشن استفاده میکنید هم درست نیست و هم امنیتش پائین هست + اینکه در میدان دید هم دچار مشکل میشوید !
 

i-php-i

Active Member
به نظر من شما نوع کد نویسیتون رو باید عوض کنید ! چون اینجوری که شما از متغیر کانکشن استفاده میکنید هم درست نیست و هم امنیتش پائین هست + اینکه در میدان دید هم دچار مشکل میشوید !
من این کدها رو از روی یه کتاب دارم استفاده می کنم.

می شه یه نمونه ایمن برام مثال بزنید که با میدان دید هم مشکلی نداره؟

به این کدها احتیاج دارم.
 

Masoud1365

مدیر انجمن
شما راحت با استفاده از یک تابع بازگشتی میتونید این کارو انجام بدید ! که مقداری که تابع برمیگردونه همون اتصال به db هست !
 

i-php-i

Active Member
شما راحت با استفاده از یک تابع بازگشتی میتونید این کارو انجام بدید ! که مقداری که تابع برمیگردونه همون اتصال به db هست !
من الان هم از توابع برگشتی استفاده می کنم.

مقدار برگشتی از تابع رئ می گیرم و توی یع متغیر قرار می دم.

بعد از این، متغیر رو به توابع دیگه می فرستم تا بتونم از اتصال استفاده کنم.
 

i-php-i

Active Member
توی injection_fun اتصال رو به صورت آرگومان بفرستید به تابع !
اتصال بصورت گلوبال تعریف شده و باید توی توابع دیگه شناسایی بشه.

PHP:
function db_connect()
{
    global $cxn;
    $cxn=mysqli_connect('host','user','password','database');
    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;
}
 

Masoud1365

مدیر انجمن
خوب تو تابع injection_fun($str) اتصالت رو به صورت آرگومان بفرست !
 

جدیدترین ارسال ها

بالا