الدالة is_uploaded_file()‎ في PHP

من موسوعة حسوب
< PHP
مراجعة 10:06، 24 أبريل 2018 بواسطة جميل-بيلوني (نقاش | مساهمات) (إضافة محتويات الصفحة.)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

تتحقَّق الدالة is_uploaded_file()‎ إن كان الملف مرفوعًا باستعمال HTTP POST.

الوصف

bool is_uploaded_file ( string $filename )

تعيد هذه الدالة القيمة TRUE إن رُفع الملف الذي يُدعى filename بوساطة HTTP POST، وهذا الأمر مفيد لأنَّه يساعد على التأكُّد من عدم احتيال المستخدمين الخبيثين على السكربت لإجباره على العمل على ملفات لا يُفترض العمل عليها مثل الملف ‎/etc/passwd.

هذا النوع من التحقُّق مهمٌّ جدًا إذ يساعد على التأكُّد من عدم وجود أي فرصة تسنح بالكشف عن محتوى الملفات المرفوعة للآخرين أو حتى المستخدمين الموجودين على النظام ذاته وذلك أثناء إجراء أي عمليَّة على تلك الملفات.

تحتاج الدالة is_uploaded_file()‎ من أجل العمل بطريقة صحيحة معاملًا مثل ‎$_FILES['userfile']['tmp_name']‎ إذ إنَّ اسم الملف المرفوع على جهاز العميل ‎$_FILES['userfile']['name']‎ لا يعمل آنذاك.

المعاملات

filename

مسار الملف المراد التحقُّق منه.

القيم المعادة

تُعاد القيمة TRUE عند نجاح العمليَّة، أو القيمة FALSE خلاف ذلك أو عند وجود خطأ.

أمثلة

المثال 1: استعمال الدالة is_uploaded_file()‎

<?php

if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
   echo "File ". $_FILES['userfile']['name'] ." uploaded successfully.\n";
   echo "Displaying contents\n";
   readfile($_FILES['userfile']['tmp_name']);
} else {
   echo "Possible file upload attack: ";
   echo "filename '". $_FILES['userfile']['tmp_name'] . "'.";
}

?>

انظر أيضًا

  • الدالة move_uploaded_file()‎: تنقل ملفًا مرفوعًا إلى موقع جديد.
  • ‎.$_FILE
  • راجع أيضًا التحكم برفع الملفات للاطلاع على المزيد من الأمثلة البسيطة شائعة الاستعمال.

مصادر