اخواني كيف يمكنني منع اكواد الــــ php , htm , bbcode
من العمل بحيث لا تتم معالجتهم
عرض للطباعة
اخواني كيف يمكنني منع اكواد الــــ php , htm , bbcode
من العمل بحيث لا تتم معالجتهم
تقصد فين بالضبط؟
اذا كنت تقصد منع الأكواد من العمل عند طباعتها في الصفحة
فيكفيك الدالة htmlspecialchars()
مثلاً:
لو قمنا بتنفيذ الكواد التالي:
يكون الناتج:كود HTML:$text = "<font color='red'>مرحباً</font>";
echo $text;
مرحبا
أما الكود التالي:
فتكون نتيجة تنفيذه:كود HTML:$text = "<font color='red'>مرحباً</font>";
echo htmlspecialchars($text);
<font color='red'>مرحباً</font>
هذا بالنسبة لاكواد html و bbcode
امابالنسبة لاكواد php فلا تحتاج لأي معالجة قبل طباعتها
اتمنى ان اكون قد افدتك
/* xxxxxxxxxxxx */
$text=nl2br($text);
السلام عليكم
يمكنك استخدام هذه الداله الرائعه ( تنقع لسكربتات المقالات او المنتديات ...)
هذه هي الداله
كود PHP:
<?
function make_safe($str)
{
return htmlspecialchars(addslashes($str));
}
?>
طريقة الإستخدام :
كود PHP:
$name= make_safe($_POST['name']);
ملاحظة : الدالة منقوله من منتدى بي اتش بي.
...
شكرا اخواني علي التعاون الشديد منكم وتحياتي للجميع
واتم استخدام الدالة
شكرا (mahmoud009)كود PHP:
htmlspecialchars()
اخوي
ff5006
لم استطع استخدام الدالة عند عرض بيانات من قاعدة البيانات
شكرا للجميع
اخواني عند استخدم
لم يعد بالامكان نزول سطركود PHP:
htmlspecialchars()
كل المدخل يظهر في سطر واحد ارجو ايجاد حل
اخواني الموضوع بالاصل لمنع الزوار عند التعليق علي المواضيع منعهم من استخدام الاكواد المذكورة
الصراحة اخوي mahmoud009 ما اعرف ايش اقولك
بس اقول شكرا
لكن لو تعطينا بعض من علمك وتخبرنا ايش الفرق بين الدالتين
وكود PHP:
nl2br()
او ماذا تفعل بالتحديد كل واحدة منهماكود PHP:
htmlspecialchars()
وهل توقف الدالة
معالحة الـــ بي اتش بيكود PHP:
htmlspecialchars()
لان هذا ما حدث معي
تحياتي لاستاذي
اخي الكريم لا شكر على واجب
وما فعلت معك غير اللي كان أي أخ هنا في سوالف سيفعله
أنا اقولك عالفرق:
أولا الدالة nl2br(): ماذا تفعل؟
النص الموجود في أي textarea دائما يحتوي على عدة أسطر، وال textareaـ تستخدم الكود \n للتعبير عن سطر جديد، يرادفها في html الرمز <br />
ولتحويل النص من صورة الـ textarea (استخدام \n) الى صورة html (استخدام <br />) نستخدم الدالة nl2br() حيث تقوم كما هو واضح من اسمها باستبدال اي \n تجدها في النص الى <br />، وبهذا يظهر النص في سطور عند طباعته في صفحة html
اما دالة htmlspecialchars()
فهي تقوم بتشفير بعض الرموز الخاصة مثل (> و < و " و ' و & ) الى الاكواد المقابلة لها htmlentites وهي (< و > و " و ' و & ) على الترتيب
خلاص شفرنا النص؟
طيب عند طباعة هذا النص الى المتصفح يتم ترجمة هذه الرموز مرة أخرى الى أصلها الأول
وبالتالي تظهر الرموز في صفحة html بدون تنفيذ
اما لو ماكنا مررناها في الدالة كانت سيتم تنفيذها ولن تظهر، فقط سيظهر تأثيرها ككود html
اتمنى اني اكون وضحتلك الفكرة شوية
وسامحني لأي قصور
تحياتي
شكرا مرة ثانية استاذي mahmoud009
والصراحة توضيحك واضح ودقيق جدا
تحياتي
كود PHP:
function clean($val){
return htmlspecialchars(strip_tags(addslashes(nl2br($val))));
}
هذي تكفيك
وهذي اذا تحب تعرض الكود بدون مايشتغل بعد
كود PHP:
function post_htmlspecialchars($text = "") {
$text = str_replace( "<", "<" , $text);
$text = str_replace( ">", ">" , $text);
$text = str_replace( '"', """, $text);
$text = str_replace( "'", "'", $text);
return $text;
}
وهذي برضو لاحتساب الأسطر
وهي تضيف السلاش للأمان
+ تحويل المسافات والفراغات بما يعوض عنها
كود PHP:
$text = addslashes(preg_replace('#(\r\n|\n|\r)#', '<br />', $text));