سلام
@paressep28
یه تست بگیرید ران کنید کد رو متوجه میشید
$file_ext = substr($filename, strripos($filename, '.')); // get file name
2 تابع درون هم صدا زده شده!
سلام
@paressep28
طی 3 فرایند باید این کار انجام بشه
1) اول اینکه پسوند های مجاز رو توی اسکپریت ولیدیشن کنید که اصلا نتونه آپلود کنه!
2) سمت سرور آنتی شلر های معروف مثل CXS رو نصب کنید که اگرم آپلود شد حذف کنه
3) توابع امنیتی توی PHP باید از سمت سرور حتما و حتما بسته بشه ، که اگرم آپلود شد اجازه اجرا به اینگونه شل ها ندن
که اکثر این شل ها با توابع خطرناک PHP اجرا میشن.
شاید پاسخ شما همینجا باشد
@dfardabasi
ببخشید میشه درمورد mime type توضیح بدین؟و تکه کدی بدین من متوجه بشم؟
سلام مجدد
@paressep28
اینم یه نمونه کد برای PHP خام ، چون شما حس میکنم MVC کار هستید و از فریم ورک ها مثل لاراول کم استفاده میکنید و پی اچ پی خام بیشتر کد میزنید
:-)
( اینو از گفتگو ها متوجه شدم)
$allowed_file_types = array('.png','.gif','.jpg');
$file_size = 2048;
$upload_dir = "../files/documents/";
$filename = $_FILES["file"]["name"];
$file_basename = substr($filename, 0, strripos($filename, '.')); // get file extention
$file_ext = substr($filename, strripos($filename, '.')); // get file name
$filesize = $_FILES["file"]["size"];
if ((in_array($file_ext,$allowed_file_types) && ($filesize < $file_size * 1000)) || empty($filename)) {
// Rename file
$newfilename = md5(time()) . $file_ext;
move_uploaded_file($_FILES["file"]["tmp_name"], $upload_dir . "/files/" . $newfilename);
خیلی ساده محدودیت حجمی هم میتونید قرار بدید
@Alimotreb
خیلی ممنونم از شما
اره خودم سرخود MVC رو شروع کردم بخاطرهمین چون چیزی بلد نبوم سئوال میپرسیدم:)
بگذریم
وقلی اگر کاربر اینطور عمل کرد چی؟
test.php.jpeg
@mcpu.cc
خیلی ممنونم.
این تابعی که فرستادید ورودی چی میگیره دقیقا؟ 0و1 برگشت میده؟
سلام
@paressep28
توی نمونه کد من خودتون میتونید تست بگیرید خروجی رو ببینید از اولین . به بعد میگیره!
و کلا تو هر حالتی اگر جز موارد توی آرایه نباشه آپلود نمیشه!
توی لاراول اون چیزی که دوستمون راهنمایی کرد ، عملیاتی داریم تحت ولیدیشن
موارد ورودی از کاربر رو میسنجیم، حجمش ، پسوندش ، نوعش و ..... خیلی موارد دیگه!!
اگر اوکی بود که ادامه روند کد میره جلو
اگر نبود ارور رو برمیگردونیم!
@Alimotreb
درود بر شما بزرگوار!!
کامل ندیدم و اشتباه کردم.معذرت میخام ولی تو کدی که شما فرستادید بطور پیشفرض وقت کاربر خوب عکسی وارد میکنه ممکنه یه نقطه وسط اسم عکسش باشه:) و کاربر خوووب گیر میفته.
بصورت کلی میشه اینطور عمل کرد؟؟(از نظر من البته)
اسم فایل رو میگیریم و بر حسب نقطه به دو قسمت explode می کنیم و قسمت دوم explode شده رو implode می کنیم و توش جستجو می کنیم اگه چنین چیزی وجود داشت فالس برگردونه
.py .php و... یا ....
خیلی پیچیده شد:)
mime_content_type('php.gif')
ببخشید این تابع چه پارامتری باید بگیره؟ و چه چیزی رو برگشت میده؟