جلسه نهم آموزش عملی ساخت پروژه پنل وب سایت شخصی با PHP
جلسه نهم آموزش عملی ساخت پروژه پنل وب سایت شخصی با PHP
خب تا اینجای کار فرم رو ساختیم و موارد لازم و دیتابیس رو آماده کردیم و حالا میریم سراغ uploud.php ، اول از همه کد های زیر رو به فایل اضافه کنید :
کد بالا رو بر اساس منطق توضیح میدیم و قسمت به قسمت جلو میریم شما هم برای تمرین قسمت به قسمت جلو برید و سعی کنید هر قسمت رو به خوبی بررسی و برای خودتون جا بندازید.
توضیح کد ها :
به قسمت هایی که با قرمز مشخص کردم خیلی دقت کنید این مکان ها جای اشتباهاتیه که گاها نمیتونید پیدا هم کنید .
تا if اول که توضیح دادم ،
منطق فایل :
در مورد منطق فایل مثل قبل اول از همه ارسال شدن فرم آپلود رو بررسی می کنیم و آپلود نشدن فرم آپلود رو پس دو حالت کلی داریم ، که فرم آپلود شده باشه یا نشده باشه اگر فرم ما آپلود شده بود یعنی متغیر حداکثر سایز ارسال ،
خب دقت کنید که در قسمت بعد $_GET[‘d’] رو بررسی می کنیم ، این فایل به این منظوره که اگر فرم ما آپلود شده بود (پس باید این شرط درون شرط آپلود شدن فرم باشد ) ، در اینصورت باید بررسی کنیم ببینیم این فایل و آپلود این فایل تایید شده یا خیر ما دو قسمت درست کردیم که اگر آپلود فایل تایید شد متغیر d=yes و اگر تایید نشد d=no باشه البته با هرکدام از این حالت ها متغیر دیگری هم به نام url ارسال می شود که نشان دهنده آدرس جهت حذف فایل ارسالی(در صورت d=no) و یا ذخیره آدرس تصویر در دیتابیس (در صورت d=yes) می باشد .
پس داخل شرط اول که d=no باشه رو بررسی می کنیم :
در این حالت کاربر فایل ارسال شده رو نمیخواد به همین دلیل ما باید اونو از روی هاست
پاک کنیم برای این منظور url ارسال شده رو داخل $file قرار میدیم و این url همون
آدرس تصویر ماست .
بررسی دستور unlink :
با این دستور فایلی که کاربر تمایلی به ذخیره آن ندارد را حذف می کنیم دستور !unlink یعنی اگر تابع unlink مقدار false رو برگرداند و در واقع عملیات حذف ناموفق بود به کاربر اعلام کند که حذف نشد .
اگر هم موفقیت آمیز بود پیغامی بر این اساس به کاربر نشان داده می شود و دوباره فرم آپلود نمایش داده می شود تا کاربر اگر تمایل داشت فایل دیگری آپلود کند .
همونطور هم که میبینید برای عدم ادامه دادن از دستور die استفاده کردیم که میتوانستیم به جای آن از دستور exit هم مثل قبل همانطور که توضیح دادم استفاده کنیم .
نکته بسیار مهم :
دقت کنید هیچ وقت به تابع unlink آدرس کامل ندین یعنی توی آدرس http و امثالهم استفاده نشده باشه که در این صورت خطا میده توی php توابع زیادی وجود داره که دسترسی آن ها برای آدرس دهی کامل بسته شده فرضا شما اگر بخواید یک فایل رو از سایت دیگه پاک کنید نمیتوانید بنابر این این محدودیت هم برای جلوگیری از بروز این خطا ها اعمال شده است .
قسمت d=yes و ثبت در دیتابیس تصاویر :
توضیح :
خب کار ما در قسمت دریافت و بررسی فایل آپلود شده تقریبا تموم شده در آخر باید اگر کاربر ارسال فرم رو تایید کرد اونو توی دیتابیس ذخیره کنیم .
پس به این صورت عمل کنید که در بالا میبینید فقط توضیح اینکه برای ذخیره سازی در دیتابیس id که auto می باشد پس لازم است جای آن NULL را ارسال کنید و از طرفی چون ما داریم آپلود آزاد انجام میدیم برای راحتی پیدا کردن این آپلود های آزاد و خالی نماندن مقادیر فیلد های دیتابیس از free رو به عنوان مقادیر دیگه وارد می کنیم و اگر ذخیره پست موفقیت آمیز بود که پیغام ذخیره شد را نمایش می دهیم و در آخر هم دوباره فرم آپلود را برای آپلود مجدد نمایش داده و آخر از همه die یا exit رو به کار میبریم . همانطور هم که در مورد این دو تابع توضیح داده بودیم کار آن ها این است که از جایی که فراخوانی می شوند ، ادامه دستورات را متوقف می کنند و ادامه برنامه اجرا نخواهد شد .
برای قسمت آخر همونطور که میبینید یک else گذاشتیم به این معنی که اگر فرم آپلود ارسال نشده بود و در قبل هم هیچ فرم آپلودی ارسال نشده بود ، به این معنی که در قبل آپلود تایید یا رد نشده بود ، ما باید فرم آپلود رو دوباره نمایش بدیم پس منطق “عدم ارسال” رو ساختیم .
در فایل بعدی آپلود ارسال شده رو منیج می کنیم و منطقش رو درست می کنیم .
- توضیحات
- بازدید: 921
نظرات
- هیچ نظری یافت نشد.
نظر خود را اضافه نمایید
ارسال نظر به عنوان مهمان