PDA

View Full Version : سوال: مشکل با Ckeditor و html entites



DR.HTML
پنج شنبه 09 مرداد 1393, 09:55 صبح
دوستان از دیشب با نمایش اطلاعاتی که توسط ckeditor ذخیره شدن کشتی گرفتم اطلاعات به صورت المنتهای html نشون داده میشد که یعنی ادیتور داره درست کارشو انجام میده اما خوب نمیشد به این شکلم کار کرد چون وسط متن کلی کد بود برایاینکار اومدم ریپلیس کردم < > رو با &lt و .. بعد متنها درست نشون داده میشدن اما بازم یه سری مشکل وجود داشت اضافه کردن <br> و شبیه اون با این کدها config.enterMode = CKEDITOR.ENTER_P;
config.enterMode = CKEDITOR.ENTER_DIV;
config.enterMode = CKEDITOR.ENTER_BR;
config.autoParagraph = false;

درست شدش و از اضافه کردن پاراگراف الکی جلوگیری میکرد البته کدهای بالا باید به فایل کافیگ اضافه بشه اما موقع اضافه کردن img کوتیشن های اضافی میذاشت که باعث میشد عکسها ادرسشون اضافه بشه و نشون داده نشن یا توی Table انکد &nbsp اضافه میکرد که این دوتا به کدهای بالا ربطی نداشت یهو یادم افتاد این اضافه کردنها کم کردنها از htmlentities که باعث میشه المنتها به صورت انکد دربیاد و ذخیره بشه وقتی از اون تابع بیرون میارم ثبت در دیتابیس همه چیز درست میشه سوال منم اینه نمیشه که اطلاعات مستقیم قلفتی اضافه کرد به دیتابیس و نشون داد خودم فکر کردم گفتم از
html_entity_decode

استفاده کنم که بازم میشه همون اطلاعات بدون دیکد نشون یوزر میدیم کسی راهی یا توصیه ای نداره ممنون میشم

DR.HTML
جمعه 10 مرداد 1393, 19:17 عصر
دوستان کسی راهی برای مشکل من نداره ؟

vahidqara
جمعه 10 مرداد 1393, 19:55 عصر
درود و سلام ..
همشهری شما کامل و قشنگ مستندات ckeditor رو مطالع کن.. :لبخندساده:

DR.HTML
جمعه 10 مرداد 1393, 20:22 عصر
والا ما که نیافتیم باشد که کسی قبلا یافته به ما هم بگوید :لبخند:

برا تابع stripslash هست راه حل اما مال م نیست اگرم باگه که ریپرت کنم

DR.HTML
شنبه 11 مرداد 1393, 16:21 عصر
عجیبه واقعا کسی راهی برای این مشکل نداره ؟ توی سایت stackoverflow هم بی جواب مونده :متعجب:

مهرداد سیف زاده
شنبه 11 مرداد 1393, 16:39 عصر
در هنگام ذخیره در دیتابیس از htmlspecialchars استفاده کنید بصورت زیر

htmlspecialchars($_POST['content']);
و برای برداشتن و نوشن داده روی صفحه وب از htmlspecialchars_decode بصورت زیر

htmlspecialchars_decode($rowp['content']);

DR.HTML
شنبه 11 مرداد 1393, 16:45 عصر
در هنگام ذخیره در دیتابیس از htmlspecialchars استفاده کنید بصورت زیر

htmlspecialchars($_POST['content']);
و برای برداشتن و نوشن داده روی صفحه وب از htmlspecialchars_decode بصورت زیر

htmlspecialchars_decode($rowp['content']);
خیلی خوشحال شدم که یکی بالاخره جوابمو داد :لبخند:

دوست عزیز بالام توضیح دادم وقتی ما درنهایت کد رو دیکد میکنیم ایا این از ارزش کار کم نمیکنه و درنهایت ما داریم ورودی کاربرو بهش نشون میدیم نه مقدار امن شدش حالا چه special چه entities

اگر من این وسط اشتباه دارم میکنم ممنون میشم چیزی از شما یاد بگیرم :لبخندساده:

مهرداد سیف زاده
شنبه 11 مرداد 1393, 17:04 عصر
چه ارزشی رو کم کنه؟
برای ریختن یه سری کد و کاراکترهایی که برای مرورگر مفهوم خاصی داره، مثل تگهای html و یا js باید اونها رو انکد کرد و برای نمایش هم باید decode کرد
همچنین در مثالهای ckeditor هم اگر دقت کنید از این روش استفاده کرده

2undercover
شنبه 11 مرداد 1393, 17:04 عصر
فک می کنم شما می خواید اطلاعاتی رو که فک می کنید می تونن مشکل امنیتی ایجاد بکنند رو از خروجی ادیتور حذف بکنید.

راه حل رو اینجا کاربر @eshpilen توضیح داده:

http://www.hamidreza-mz.tk/?p=730

DR.HTML
شنبه 11 مرداد 1393, 18:29 عصر
فک می کنم شما می خواید اطلاعاتی رو که فک می کنید می تونن مشکل امنیتی ایجاد بکنند رو از خروجی ادیتور حذف بکنید.

راه حل رو اینجا کاربر @eshpilen توضیح داده:

http://www.hamidreza-mz.tk/?p=730

با تشکر درمورد کتابخونههای دیگه اطلاع داشتم اما من مشکلم همین توابع ساده بود ه اقا مهرداد گفتن مشکلی نداره دیکد کن همون entiti رو دیکد کردم