PDA

View Full Version : مشکل در ثبت متن ckeditor در دیتابیس



pure_love
دوشنبه 06 مرداد 1393, 13:03 عصر
سلام بچه ها من تو پنل مدیریت سایتم یه صفحه گذاشتم که مربوط به ارسال مطلبه و ثبت که میزنم مطالب درست در دیتابس ذخیره میشه و در صفحه اصلی سایت در یک گریدویو نمایش میده اینجوری مشکلی نداره!
حالا اومدم در textbox که مطلبم داخلش ثبت دیتابیس میشد برنامه ckeditor گذاشتم و همه مراحل هم درست انجام دادم و ckeditor درست نمایش میده و کار میکنه و متن،عکس،تغییرات متن و.... همه نمایش میده:
121641

در ضمن در پایگاه داده ام یک فیلد گذاشتم از نوع text در یک جدل تعریف کردم،حالا میخوام ثبت که بزنم برو تو این فیلد در دیتابیس ذخیره بشه،چون بعد میخوام ازش استفاده کنم میخوام همه ی متن،عکس،ویرایش های متن و... که انجام دادم در دیتابیس ذخیره بشه که بعد در صفحه اول سایت ازش استفاده کنم.
الان همون کدهای قبلی که متنم در دیتابیس ذخیره میکردم استفاده کردم و وقتی ثبت میزنم پیغام میده :

121642
لطفا بگین چیکار کنم؟چجوری مشکلم رفع کنم؟
با تشکر

salmah
سه شنبه 07 مرداد 1393, 15:54 عصر
توی دکمه ثبت خبر قبل از کدهای ثبت اینو بنویس

if (IsPostBack == false)

aminmousavi
یک شنبه 12 مرداد 1393, 07:23 صبح
با سلام دوست عزیز .

این خطا برای امنیت پلتفرم دات نت هست . به دلیل وجود داشتن تگ های HTML و کوتیشیتن و دبل کوتیشن و علامت های غیر معمول همچین خطایی میده
دو کار میتونید انجام بدید :

1- تو صفحه .aspx (کد های HTML توش قرار داره) در تگ :
<%@ Page .... %>

کد ValidateRequest="false" رو بنویس (اگر از مسترپیچ هم استفاده میکنی در آنجا هم بنویس)

2- قبل از ذخیره سازی اطلاعات تگ ها رو کد کنی و وقتی هم که میخواهی اطلاعات رو بخونی دیکد کنی ، مثلا : (کوتیشن ، دبل کوتیشن ، و ... رو میبایست کد کنی)

کد کردن :

string result = ckeditor.Text.Replace("<", "TagOpen").Replace(">", "TagClose").Replace(......;





د

دیکد کردن :string result = ckeditor.Text.Replace( "TagOpen","<").Replace("TagClose",">").Replace(......;]