هذا ليس بحل لانه ستظل ملفات php تعمل بامتدادات أخرىالمشاركة الأصلية كتبت بواسطة arif2001
الحل هو تعطيل محرك php وحتى لو سمحت بملفات php لن تضرك هذه الملفات
والأمر الصحيح هو كما ذكر الاخ حلول برمجية
هذا ليس بحل لانه ستظل ملفات php تعمل بامتدادات أخرىالمشاركة الأصلية كتبت بواسطة arif2001
الحل هو تعطيل محرك php وحتى لو سمحت بملفات php لن تضرك هذه الملفات
والأمر الصحيح هو كما ذكر الاخ حلول برمجية
هذي هي طريقه لجعل السرفر يقرء الملف و يتعرف على نوعيه المحتوى بطريقه قرأة الMIME Types اي نوع المحتوى وليس الامتداد ..
اذا كانت test.jpg هي صحيحه ملف صوره فيسكون الناتج من الداله هي image/jpeg واذا لم تكن كذالك ستعطيك مثلا application/pdfكود PHP:
<?
$this_file = './test.jpg';
if (file_exists($this_file))
{
echo "File $this_file exists.<br />";
echo mime_content_type($this_file);
}
else
{
echo "File $this_file does NOT exist!";
}
?>
المشكهه انا لا تعمل بالطريقه الصحيحه في سرفرات الوندوز .. انا جربته عل جهازي:
عندما كنت استخدم LINUX/Fedora core 5 كانت النتائج صحيحه اما على الوندوز XP لم يكن النتائج صحيحه .. حتى وان كانت السرفر Apche 2.2 و PHP5 وملف الPHP.ini مجهز بالسطور:
كود HTML:extension=php_mime_magic.dll mime_magic.magicfile = "C:\PHP\ext\php_mime_magic.dll"
موضوع حلو مفيد وبما انكم اجتمعتوا وكل واحد قام يبدي وجهة نظره معناها راح نوصل الى افضل نتيجة ان شاء الله
اعتذر اني لا افقه في امور البرمجة لكن الموضوع يهمني بشكل كبير
اتمنى منكم التوصل لحل متفق عليه وهو الآمن "الى حد كبير"
تقديري
السلام عليكم
نقاش رائع فعلا
اخي hilaby اتمنى توضح لنا اخوي
الكود اللي وضعته يتأكد ان الملف موجود ويحدد نوعه
بس مافهمت كيف احدد انواع معينة ومايقبل غيرها؟معذرة لان مااستوعبت الكود
فيه بس شرط واحد
if (file_exists($this_file))
اذا الملف موجود او لا
هذا اللي فهمته .. اتمنى افداتك
ايضا بالنسبة للتعديل على ملف php.ini بالنسبة للويندوز
لم أجد الموديل php_mime_magic.dll
ضمن ملفات البي اتش بي هل هو من نسخة البي اتش بي ؟؟
وعلى الهامش ايضا
ذكرت انك جربت الطريقة على LINUX/Fedora core 5 ..
سؤالي هل على جهاز موجود عندك ام على سيرفر انترنت تقصد ؟
لو على جهاز عندك هل من طريق ابتدأ به في تثبيت النظام على جهاز شخصي وتالعامل معه مثل التعامل مع سيرفرات الإنترنت
فقط هذا كل شي ،
خالص التحايا للجميع
__________________
كل مالا يعطى يضيع
راجعالمشاركة الأصلية كتبت بواسطة hilaby
http://bugs.php.net/bug.php?id=38235&edit=3
لكن المشكلة عندي أن الدالة لم تعمل نهائياً
طبعا الدالة لا تعمل الا في php v4.3 فما فوق وحاولت بشتى الطرق تشغيلها ولم استطع لا اعلم لماذا مع اني فعلت php_mime_magic.dll ووضعت مسار الملف لكن حتى الآن يقولي
Fatal error: Call to undefined function: mime_content_type()
أخي اولا لابد ان يكون اصدار php الي عندك php v4.3 فما فوقايضا بالنسبة للتعديل على ملف php.ini بالنسبة للويندوز
لم أجد الموديل php_mime_magic.dll
ضمن ملفات البي اتش بي هل هو من نسخة البي اتش بي ؟؟
وعلى الهامش ايضا
ذكرت انك جربت الطريقة على LINUX/Fedora core 5 ..
سؤالي هل على جهاز موجود عندك ام على سيرفر انترنت تقصد ؟
لو على جهاز عندك هل من طريق ابتدأ به في تثبيت النظام على جهاز شخصي وتالعامل معه مثل التعامل مع سيرفرات الإنترنت
اذا كان كذلك افتح ملف php.ini
اضف الكود التالي
طبعا ضع المسار الصحيح الي عندك لملف php_mime_magic.dllكود:[mime_magic] mime_magic.debug = On mime_magic.magicfile = "C:\path\to\php\extensions\php_mime_magic.dll"
وابحث عن
واستبدلها بكود PHP:
;extension=php_mime_magic.dll
بدون الفاصلة المنقوطة واعد تشغيل السيرفر المفروض الآن تعمل الدالة لكنها لم تعمل عنديكود PHP:
extension=php_mime_magic.dll