Metal Gear Solid
دوشنبه 17 مرداد 1390, 10:34 صبح
سلام
من از ادیتور tinymce استفاده میکنم و میخوام ادیت هایی که ادیتور انجام میده به همراه تگ های HTML اش توی دیتابس ذخیره شه که بعداً درست و حسابی به کاربرا نشون داده شه.
همه چیز خوب پیش میره وقتی از mysql_real_escape_string استفاده میکنم الا زمانی که به کاراکتر & میرسه
تست کردم وقتی به این کاراکتر میرسه باقی متن رو دیگه توی دیتابیس ذخیره نمیکنه.
من چه کار کنم که هم از استایل های ادیتور استفاده کنم هم از شر علامت & خلاص شم؟
مثلاً من چطور این رو در دیتابیس ذخیره کنم
<div> Hello me & you </div>
راستی من از این کلاس برای اعتبارسنجی استفاده میکنم.
پارامتر $preventExtraChars برای زمانی به کار میبرم که بخوام مثلاً نام کاربری رو اعتبار سنجی کنم. برای Text area ها $preventExtraChars را به False تغییر میدم.
public function validateString( $nameString, $preventExtraChars = true ){
if ( !empty( $nameString )){
if ( $preventExtraChars ) {
$nameString = trim( $nameString );
$nameString = htmlentities($nameString, ENT_QUOTES, "UTF-8");
$arrayInput = str_split( $nameString );
for ( $i = 0; $i < count( $arrayInput ); $i++ )
if ( chr( ord( $arrayInput[ $i ] ) ) <= 31 )
$Input = str_replace( $arrayInput, "", $nameString );
$symbol = array('/', '\\', '[', ']', '=', '\x00','\x7F','\xC0','\xFD', '\n', '\t', '\r', '\x1a', '&');
$nameString = preg_replace("/<.*?>/", "", $nameString );
$nameString = str_replace( $symbol , "", $nameString);
$nameString = strip_tags( $nameString );
}
$nameString = htmlentities($nameString, ENT_QUOTES, "UTF-8");
$nameString = trim( $nameString );
if( get_magic_quotes_gpc() )
$nameString = stripslashes( $nameString );
if ( function_exists("mysql_real_escape_string") )
return mysql_real_escape_string( $nameString );
else
return false;
}
else
return false;
}
خواهش میکنم ببینید و در صورتی که اضافه یا کم کاری کردم در این متد به من اطلاع بدید.
من از ادیتور tinymce استفاده میکنم و میخوام ادیت هایی که ادیتور انجام میده به همراه تگ های HTML اش توی دیتابس ذخیره شه که بعداً درست و حسابی به کاربرا نشون داده شه.
همه چیز خوب پیش میره وقتی از mysql_real_escape_string استفاده میکنم الا زمانی که به کاراکتر & میرسه
تست کردم وقتی به این کاراکتر میرسه باقی متن رو دیگه توی دیتابیس ذخیره نمیکنه.
من چه کار کنم که هم از استایل های ادیتور استفاده کنم هم از شر علامت & خلاص شم؟
مثلاً من چطور این رو در دیتابیس ذخیره کنم
<div> Hello me & you </div>
راستی من از این کلاس برای اعتبارسنجی استفاده میکنم.
پارامتر $preventExtraChars برای زمانی به کار میبرم که بخوام مثلاً نام کاربری رو اعتبار سنجی کنم. برای Text area ها $preventExtraChars را به False تغییر میدم.
public function validateString( $nameString, $preventExtraChars = true ){
if ( !empty( $nameString )){
if ( $preventExtraChars ) {
$nameString = trim( $nameString );
$nameString = htmlentities($nameString, ENT_QUOTES, "UTF-8");
$arrayInput = str_split( $nameString );
for ( $i = 0; $i < count( $arrayInput ); $i++ )
if ( chr( ord( $arrayInput[ $i ] ) ) <= 31 )
$Input = str_replace( $arrayInput, "", $nameString );
$symbol = array('/', '\\', '[', ']', '=', '\x00','\x7F','\xC0','\xFD', '\n', '\t', '\r', '\x1a', '&');
$nameString = preg_replace("/<.*?>/", "", $nameString );
$nameString = str_replace( $symbol , "", $nameString);
$nameString = strip_tags( $nameString );
}
$nameString = htmlentities($nameString, ENT_QUOTES, "UTF-8");
$nameString = trim( $nameString );
if( get_magic_quotes_gpc() )
$nameString = stripslashes( $nameString );
if ( function_exists("mysql_real_escape_string") )
return mysql_real_escape_string( $nameString );
else
return false;
}
else
return false;
}
خواهش میکنم ببینید و در صورتی که اضافه یا کم کاری کردم در این متد به من اطلاع بدید.