PDA

View Full Version : سوال: ارسال کوتیشن و دابل کوتیشن به دیتابیس



future2010
سه شنبه 13 مهر 1389, 14:03 عصر
سلام

من یه متن html رو میخوام به بانک اطلاعاتی ارسال کنم
اما نمیدونم از کدوم تابع استفاده کنم که php کوتیشن ها و دابل کوتیشن های داخل این متن رو نادیده بگیره
Htmlspecialchars (http://php.net/manual/en/function.htmlspecialchars.php)
و
htmlentities (http://php.net/manual/en/function.htmlentities.php)


به کارم نیومد
ممنون میشم اگه راهنمائیم کنید
میخوام متنم رو اینطوری به DB بفرستم و همینطوری هم ذخیره بشه

<a href="http://barnamenevis.org" target='_blank'>barnamenevis.org</a>

sama01
سه شنبه 13 مهر 1389, 15:14 عصر
شما نمی‌توانید چنین کاری بکنید. زیرا این " یا ' نباید به طور خام وارد db بشوند.
شما قبل از ارسال باید mysql_real_escape_string را اعمال کنید تا با درج \ در جاهای لازم، آن را امن کند.
وقتی هم که می‌خواهید از رشته‌ی خود استفاده کنید، باید با استفاده از stripslashes آن‌ها را بردارید.

در مورد این توابع بگردید اطلاعات بیش‌تری پیدا خواهید کرد. زیرا چند ریزه‌کاری در استفاده از آن‌ها باید لحاظ شود.

funpatogh
سه شنبه 13 مهر 1389, 20:04 عصر
سوال رو بد فهمیدم

future2010
سه شنبه 13 مهر 1389, 20:36 عصر
شما نمی‌توانید چنین کاری بکنید. زیرا این " یا ' نباید به طور خام وارد db بشوند.
شما قبل از ارسال باید mysql_real_escape_string را اعمال کنید تا با درج \ در جاهای لازم، آن را امن کند.
وقتی هم که می‌خواهید از رشته‌ی خود استفاده کنید، باید با استفاده از stripslashes آن‌ها را بردارید.

در مورد این توابع بگردید اطلاعات بیش‌تری پیدا خواهید کرد. زیرا چند ریزه‌کاری در استفاده از آن‌ها باید لحاظ شود.
ممنونم از شما

اما من کدم رو با تابعی که معرفی کردی به بانک اطلاعاتی فرستادم و انتظار داشتم که متنم تغییر کنه
اما همونطوری که متنم رو وارد کردم در بانک ذخیره شد


<a href="http://barnamenevis.org" target='_blank'>barnamenevis.org</a>
این متن به همین شکل در بانک اطلاعاتی بدون هیچ تغییری ذخیره شد

آیا این درسته؟؟؟
باید همینطوری باشه؟

future2010
سه شنبه 13 مهر 1389, 20:43 عصر
از html editor استفاده کن
منم دقیقا همین کار رو کردم و از یه html editor خیلی خوب استفاده کردم
فقط میخواستم بدونم تگ های html که به همین شکل وارد دیتابیس میشه، امکان داره یه نفر ازش سوء استفاده کنه

راستی یه سوال؟
مگه html editor چه کاری میکنه که شما اون رو پیشنهاد کردید؟

sama01
چهارشنبه 14 مهر 1389, 00:51 صبح
از html editor استفاده کن
چه ربطی داره؟

- - - - - - - - - - - - - - - - - -

خوب اگر ذخیره شد که دیگه مشکلی نیست.

در مورد مسائل امنیتی ذخیره اطلاعات در db جستجو کنید به مطالب زیادی می‌رسید. در بخش امنیت در فروم iranphp هم مطالب خیلی خوبی هست. این‌جا هم هست. ولی در iranPhp دم دست هست.

funpatogh
چهارشنبه 14 مهر 1389, 00:54 صبح
در جواب شما عزیز بنده سوال رو بد متوجه شدمو دوباره خوندم فهمیدم منظور شما چیست
html editor کار فانکشن رو که انجام نمی دهد فقط برای راحت نوشتن کد های html هست که متن و html را راحت بنویسید
شما موقع ارسال برای اینکه خطایی از شما گرفته نشود addslashes یا mysql_escape_string کنش


addslashes($_POST['text'];
یا


mysql_escape_string($_POST['text'];
کن که ' و " به '\ و "\ تبدیل بشه و موقع بیرون کشید اطلاعات از بانک هم stripslashes کن که "\ و '\ به " , ' تبدیل بشود

من فکر کنم منظور شما اینه که یک کد html که ذخیره می کنید موقع بیرون کشیدن به صورت تکست باشه و html اجرا نشه درسته؟
مثلا این لینک رو


<a href="http://barnamenevis.org" target='_blank'>barnamenevis.org</a>

از بانک بیرون می کشی میشه این
barnamenevis.org (http://barnamenevis.org/forum/../)
و می خواهی که کد html موقع بیرون کشیدن هم همون
<a href="http://barnamenevis.org" target='_blank'>barnamenevis.org</a>
باشه درسته؟

future2010
چهارشنبه 14 مهر 1389, 12:33 عصر
در جواب شما عزیز بنده سوال رو بد متوجه شدمو دوباره خوندم فهمیدم منظور شما چیست
html editor کار فانکشن رو که انجام نمی دهد فقط برای راحت نوشتن کد های html هست که متن و html را راحت بنویسید
شما موقع ارسال برای اینکه خطایی از شما گرفته نشود addslashes یا mysql_escape_string کنش


addslashes($_POST['text'];
یا


mysql_escape_string($_POST['text'];
کن که ' و " به '\ و "\ تبدیل بشه و موقع بیرون کشید اطلاعات از بانک هم stripslashes کن که "\ و '\ به " , ' تبدیل بشود

من فکر کنم منظور شما اینه که یک کد html که ذخیره می کنید موقع بیرون کشیدن به صورت تکست باشه و html اجرا نشه درسته؟
مثلا این لینک رو


<a href="http://barnamenevis.org" target='_blank'>barnamenevis.org</a>

از بانک بیرون می کشی میشه این
barnamenevis.org (http://barnamenevis.org/forum/../)
و می خواهی که کد html موقع بیرون کشیدن هم همون
<a href="http://barnamenevis.org" target='_blank'>barnamenevis.org</a>
باشه درسته؟


funpatogh عزیز من به جوابم رسیدم
و برای اینکه جواب شما رو هم داشته باشم چون میدونم بدردم میخوره باید عرض شود که من میخوام که
این متن:

<a href="http://barnamenevis.org" target='_blank'>barnamenevis.org</a>
به DB منتقل بشه و هروقت صداش کردم به همین شکل

<a href="http://barnamenevis.org" target='_blank'>barnamenevis.org</a>
فراخوانی بشه
تشکر از پاسخگویی شما و همینطور دوست و همشهری عزیز جناب sama01

امیـرحسین
چهارشنبه 14 مهر 1389, 22:57 عصر
خصوصیت تابع mysql_real_escape_string اینه که عملیات escape رو برای کانکشن اعمال می کنه نه بر روی متن (برخلاف addslashes) پس در عین escape، تغییری در متن ایجاد نمی کنند.
یعنی کافیه از همین تابع استفاده کنید.