PDA

View Full Version : نمایش متن وارد شده با ادیتور



beh3000
چهارشنبه 17 اردیبهشت 1393, 12:10 عصر
سلام دوستان

من توی پروژه ام قسمتی دارم که کاربران پست ارسال میکنند ( با ادیتور ) یعنی رنگ متن تغییر میدن bold میکنن و غیره ... حالا وقتی که میام این ورودی رو میگیرم و از توابع sql injection عبور میدم و اسکیپ میکنم هنگام نمایش اون پست مشکل پیش میاد یعنی داخل پست اگه یه قسمتی باشه به این صورت


<font color="#ff0000">سلام خوبی ؟</font>


این کد رو تبدیل میکنه به این کد



<font color=\"#ff0000\">سلام خوبی ؟</font>


یعنی یک اسلش اضافه میکنه به color و هنگام نمایش رنگ قرمز نمایش داده نمیشه ... لطفا راهنمائیم کنید

uthman
چهارشنبه 17 اردیبهشت 1393, 12:45 عصر
سلام.

HttpUtility.HtmlDecode("Your Html String")

beh3000
چهارشنبه 17 اردیبهشت 1393, 16:24 عصر
این فک کنم مال asp.net باشه ها ؟!!! من تو php میخوام

foreach
چهارشنبه 17 اردیبهشت 1393, 16:34 عصر
اول اینکه بهتره موقع نمایش داده ها رو escape کنید
تابعی که نیاز دارید stripslashes
http://ir.php.net/stripslashes (http://au1.php.net/stripslashes)


<?php echo stripslashes('<font color=\"#ff0000\">سلام خوبی ؟</font>');?>

aalmair
چهارشنبه 17 اردیبهشت 1393, 16:44 عصر
این به php مربوطه و ربطی به mysql نداره که می توانی غیر فعالش کنی یا داده اصلی را بیرون بکشی
و وقتی php این کار رو می کنه که داده از خارج وارد سیستم شده باشه








@ini_set( 'magic_quotes_runtime', 0 );
@ini_set( 'magic_quotes_sybase', 0 );


function conditional_escape($str=''){
if (get_magic_quotes_gpc()){

return stripslashes($str);

}
return $str;
}

echo conditional_escape($_GET['input']);

beh3000
چهارشنبه 17 اردیبهشت 1393, 17:24 عصر
این به php مربوطه و ربطی به mysql نداره که می توانی غیر فعالش کنی یا داده اصلی را بیرون بکشی
و وقتی php این کار رو می کنه که داده از خارج وارد سیستم شده باشه


اصلا متوجه نشدم چی گفتی شرمنده ! کی حرفی از mysql زد !

foreach
چهارشنبه 17 اردیبهشت 1393, 17:45 عصر
اصلا متوجه نشدم چی گفتی شرمنده ! کی حرفی از mysql زد !
منظور ایشون اینه که در صورتی که magic_quotes_gpc فعال باشه داده هایی که در $_POST یا $_GET یا $_COOKIE باشند به صورت خودکار یک \ (backslash) قبل و بعد از ' یا " قرار میگیره
و در صورتی که بخواید داده هارو بدون \ (backslash) دریافت کنید باید از تابع stripslashes استفاده کنید و یا magic_quotes_gpc رو غیرفعال کنید