جلسه یازدهم آموزش عملی ساخت پروژه پنل وب سایت شخصی با PHP
جلسه یازدهم آموزش عملی ساخت پروژه پنل وب سایت شخصی با PHP
خب یکی دو تا چیز کاربردی رو بهتون بگم و بریم که تصویر رو برای پست هم تعبیه کنیم و بعد از این مراحل سراغ ساخت گالری میریم . گالری هم اگر قواعد آپلود رو خوب یاد بگیرید ساده است و فقط یه مقدار کد اضافه داریم تا تصاویر رو نگه داریم و در آخر درون دیتابیس گالری ذخیره کنیم .
دقت کنید که فیلتر های دیگه ای هم میتونیم برای فایل اعمال کنیم مثلا حجم فایل یا پسوند فایل و ...
برای پسوند و حجم فایل میتونید از متغیر های دیگر FILE استفاده کنید :
$_FILES['file']['type'];
این تابع پسوند فایل رو با یک اسلش بر میگردونه ( به اینصورت : image/jpg ) و شما لازم دارید با تابع explode همونطور که توی آموزش های قبل گفتم فایل رو با / بشکنید و به jpg دست پیدا کنید و با فرمت هایی که لازم دارید مطابقت بدین مثلا $final[1]==”jpg” || $final[1]==”jpeg” و به همین ترتیب برای فرمت های دیگه
$_FILES['file']['size'];
متغیری که در بالا میبینید سایز فایل رو بر اساس بایت نشون میده یعنی اگر بخواید بگید فایل های زیر ۲ مگ رو بررسی کن اینجوری باید بنویسید :
$_FILES[‘file’][‘size’]<2*1024*1024
و با این شرط حجم ۲ مگ رو به بایت تبدیل می کنیم و بررسی می کنیم .
بریم سراغ آموزش اصلی و ساخت قسمت تصویر برای پست مربوطه :
اضافه کردن بخش تصویر برای فایل :
به اینصورت عمل می کنیم که برای ذخیره پست جدید آپلود فایل رو اضافه می کنیم و فرق هایی داره که توضیح میدم .
برای ویرایش یک پست هم اگر اون پست تصویر داشت که نشون میدیم و اگر هم نداشت مینویسیم بدون تصویر، با این کار اگر کاربر بخواد تصویر جدید وارد کنه تصویر جدیدش جایگزین تصویر قبل میشه ، خب دست به کار میشیم .
برای قرار دادن امکان آپلود باید تغییراتی رو در پست جدید ایجاد کنیم و به تبع اون تغییراتی رو هم در فایل upload.php
نکته مهم : توجه کنید که توی فایل های html از php استفاده نکنید چون قابل اجرا نمی باشد
آخر فایل newpost رو به صورت زیر تغییر بدین :
توضیح :
خب ما برای اینکه بین صفحات upload و newpost یک وابستگی ایجاد کنیم ، از سشن استفاده می کنیم همونطور که توضیح داده بودم سشن رو فعال کنید و دو سشن که در خط ۳ و ۴ میبینید را اضافه کنید سشن post به ما کمک میکنه که متوجه بشیم برای پست جدید میخوایم تصویر ذخیره کنیم و سشن url به ما کمک میکنه که آدرس تصویر رو دوباره به صفحه newpost برای ذخیره سازی برگردونیم .
برای اینکه در همون قالب ارسال پست ، صفحه آپلود رو نشون بدیم از یک فریم کمک میگیریم و فریم رو در بالای صفحه با آدرس upload.php می سازیم .
در آخر هم ویو اصلی ارسال پست رو اینکلود می کنیم .
خب میریم سراغ صفحه upload.php :
کد های زیر رو اضافه کنید :
توضیح :
چون با سشن کار می کنیم اول از همه سشن رو فعال کنید . در خط بعدی از متغیر آدرس back استفاده می کنیم تا اگر تصویری ارسال کردیم و اون تصویر رو تایید هم کردیم و در نهایت آدرس تصویر در متغیر سشن url قرار گرفت ما باید راه برگشتی داشته باشیم تا در صورت پشیمونی کاربر دوباره بتونه تصویر وارد کنه برای همین در اینجور مواقع در آدرس متغیری ارسال می کنیم تا این مسئله رو متوجه بشیم و مقدار سشن url رو خالی کنیم به این دلیل که اگر بخوایم دوباره تصویر ارسال کنیم و آدرس تصویر قبل در سشن url باقی مونده باشه در این صورت اگر کاربر از ارسال تصویر پشیمون بشه تصویر قبلی در دیتابیس ذخیره میشه که ما نمیخوایم پس باید مقدار سشن url خالی کنیم.
قسمت d=yes صفحه upload هم به این صورت تغییر بدین :
توضیح :
خط اول که متغیر آدرس del رو بررسی کردیم رو فعلا کار نداشته باشید .
میریم سراغ قسمت بعدی یعنی ایجاد شدن متغیر post که اگر این متغیر سشن ایجاد شده باشد یعنی ما میخوایم برای یک پست جدید تصویر آپلود کنیم در غیر اینصورت یعنی در حالت عادی میخوایم فایل آپلود کنیم .
داخل شرط بررسی ایجاد شدن سشن post متغیر سشن url رو برابر همون متغیر آدرس url قرار میدیم تا آدرس اونو توی صفحه newpost داشته باشیم .
همونطورکه توضیح دادم برای تعویض پست ارسال شده لازمه تا متغیر back رو توی یه لینک قرار بدیم تا کابر بتونه عملیات آپلود رو بیخیال بشه و یا تصویر جدید آپلود کنه .
این خط از panel.html رو به این شکل تغییر بدین :
با این کار وقتی میخوایم آپلود free انجام بدیم به کارمون میاد و همونطور که توی کد بالا دیدید اگر این متغیر ست شده بود متغیر های سشن post و url رو unset می کنیم .
نکته مهم :
با تابع unset میتونید هر متغیر که ایجاد شده بود رو حذف کنید ، در واقع متغیر ایجاد شده ، ممکن است نیاز باشد تا بعدا مورد استفاده قرار گیرد و شما برای جلوگیری از هرگونه مشکل نیاز دارید تا آن را unset کنید.
خب با این کار آپلود آزاد رو از آپلود تصویر برای پست جدا کردیم حالا قسمت پست به این شکل در میاد :
توی else هم که مثل قبل برای پست آزاد اگر ارسال شده بود اونو ذخیره می کنیم . و آدرسش رو نشون میدیم برای تایید .
در قسمت آخر هم لازمه تغییراتی ایجاد کنیم در حالت آپلود آزاد و غیر آزاد تفاوت وجود دارد :
آخر upload رو اینطوری تغییر بدین :
با این کار نمایش حالت پست و غیر پست رو تغییر میدیم تفاوت خاصی نداره فقط به جای نمایش آدرس ، خود تصویر رو با آدرسی که آپلود شده نشون میدیم .
- توضیحات
- بازدید: 782
نظرات
- هیچ نظری یافت نشد.
نظر خود را اضافه نمایید
ارسال نظر به عنوان مهمان