دوره مجازی PHP (جلسه 26): طراحی و پیاده سازی پروژه فروشگاه تصویر



visibility  
mode_comment   ۱۵۷

خوب امروز هم هر دو جلسه ی مربوط به پروژه ی دوم رو با هم و در قالب یک فایل در اختیار شما قرار میدیم . در جلسه ی امروز با همدیگه یه پروژه ی گالری و فروشگاه تصویر رو به صورت کامل با هم پیاده سازی می کنیم . البته برای اینکه شما هم کمی دست به کد بشید قسمت های مختصری از اون رو به شما محول کردیم که بنویسید و کاملش کنید .

قابلیت ها این پروژه :

  • طراحی وبسایت گالری تصویر با قابلیت فروش تصاویر
  • تصویر بند انگشتی عکس های دانلودی باید به صورت خودکار از روی تصویر اصلی ساخته شوند .
  • تصاویر اصلی نباید توسط کاربران قابل دیدن باشند. فقط دمویی علامت دار را می توانند ببینند .
  • تصاویر باید پس از خرید توسط کاربر قابل دانلود باشند .
  • تصاویر باید در دسته بندی های مختلف قرار بگیرند .
  • در صفحه نخست لیست اخرین تصاویر ثبت شده باید نمایش داده شود .
  • با کلیک روی هر دسته بندی لیست تصاویر درون ان باید نمایش داده شوند .
  • دسته بندی ها قابل تعریف و حذف و ویرایش باشند .
  • برنامه قابلیت عضو گیری/ورود کاربر و تغیر رمز در هنگام فراموشی را داشته باشد .
  • برنامه سبد خرید داشته باشد .
  • کاربر بتواند لیست خریدهای خود را ببیند .
  • برنامه یک پنل مدیریت جداگانه برای مدیر داشته باشد .
  • بخش های مختلف نمایش محتوا در سایت باید صفحه بندی شده باشند .
  • در پنل مدیریت این موارد وجود داشته باشد :
  • - در صفحه نخست (داشبورد) گزارش هایی نمایش داده شود (تعداد تصاویر، سفارشات، کاربران ، درآمد ها و ...)
  • - بخشی برای آپلود تصاویر جدید و نمایش و مدیریت آخرین تصاویر ارسالی وجود داشته باشد .
  • - بخشی برای مدیریت دسته بندی ها وجود داشته باشی
  • - بخشی برای مدیریت و دیدن اخرین سفارشات وجود داشته باشد
  • - بخشی برای مدیریت و حذف و اضافه کردن کاربران سایت وجود داشته باشد
  • و امکانات جانبی دیگر ...

اهداف این پروژه :

  • آشنایی با نحوه طراحی و ایجاد پایگاه داده برای این اسکریپت
  • آشنایی با نحوه ی نمایش، ثبت، حذف و ویرایش موجودیت ها (کاربر، تصویر، سفارشات و ... ) در پایگاه داده
  • آشنایی با نحوه ی پیاده سازی برنامه بر اساس پارامترها و ایجاد راحتی بیشتر در تغیرها بعدی
  • آشنایی با نحوه ی پیاده سازی عملیات ورود و خروج کاربران موجود در پایگاه داده
  • آشنایی با نحوه ی مدیریت سیستم در یک پنل جداگانه
  • آشنایی با مفهوم سبد خرید و نحوه ی پیاده سازی آن
  • آشنایی با محافت از فایل های فروشی و دانلود انها از طریق یک اسکریپت بررسی کننده ی خریدار !
  • آشنایی با علامت گذاری بر روی تصاویر برای جلوگیری از دانلود تصاویر اصلی و نمایش دمو از آنها
  • آشنایی با نحوه ی پیاده سازی قابلیت فراموشی رمز عبور و ریست کردن پسورد کاربر
  • آشنایی با نحوه ی دسته بندی محتوا در وبسایت ها
  • آشنایی با نحوه ی گزارش گیری از داده های موجود در پایگاه داده با کوئری ها SQL
  • آشنایی با نحوه ی استفاده از درگاه پرداخت و انجام عملیات اتوماتیک پس از پرداخت موفقیت آمیز (شبیه سازی درگاه پرداخت)
  • آشنایی با میزان پردازش کار ها در PHP و راه حل هایی برای نوشتن کدهایی بهینه تر از لحاظ منابع مصرفی
  • آشنایی با مسائل موجود در هنگام پرداخت آنلاین و استفاده از سبد خرید (قفل سبد، مشکل کوکی به تنهایی و ...)
  • انجام تمرین برای شما و تکمیل برخی قسمت های پروژه
info نکته :

مدت زمان ویدیوی آموزشی این جلسه بیش از 5 ساعت است . در واقع دو جلسه ی مربوط به طراحی این پروژه رو یکجا و امروز در اختیار شما قرار دادیم. اگر در میانه ی دیدن ویدیو خسته شدید حتما به خودتون استراحت فکری بدید . می تونید در دو یا 3 مرحله ی 2 ساعته این ویدیو رو ببینید .

info توجه

این مطلب یک جلسه از آموزش حرفه ای php می باشد و برای مشاهده آن باید در دوره ثبت نام کنید.

ثبت نام در آموزش حرفه ای php

comment دیدگاه کاربران
داود فردعباسی replyپاسخ

سلام
میشه قالب خام این پروژه رو در اختیارم بگذارید میخوام همراه با آقای لقمان آوند کد بزنم ولی قالب استاتیکش تو فایل پروژه نیست

اون اسمی رو که تو فیلم آقای آوند گفتن سرچ کردم ولی قالب پیدا نکردم

وحید صالحی

امکانش نیست دوست عزیز چون روی همون قالب که لینکش داده شده استاد کدنویسی کردن و قالب خام رو ندارم کما اینکه خیلی ساده هست و خودتون هم می تونید طراحیش کنید

sana_esi replyپاسخ

سلام استاد آوند عزیز.
استاد مشکلی که برامون پیش اومده این هست که وقتی ما اطلاعات فرم رو به صورت post ارسال می کنیم، پیغام خطای زیر رو بهمون میده:
Deprecated: Automatically populating $HTTP_RAW_POST_DATA is deprecated and will
be removed in a future version. To avoid this warning set
‘always_populate_raw_post_data’ to ‘-1’ in php.ini and use the php://input stream
instead. in Unknown on line 0
برای حل این مشکل باید چه کاری انجام بدیم؟

لقمان آوند

سلام
یه کانفیگی رو می گه منسوخ شده و بهتره غیر فعالش کنید. اینجا رو بخونید .

sana_esi replyپاسخ

سلام خدمت استاد آوند گرامی.
مشکلی که برامون پیش اومده این هست که ما میخواهیم یک رشته رو که حاوی پیغام خطا یا پیغام موفقیت برای ثبت در پایگاه داده هست رو با json ارسال کنیم. درخواست هم به صورت ajax هستش.
سوال اول اینکه وقتی میخوایم رشته رو به json، encode کنیم آیا مشکلی پیش میاد؟ منظورم اینه که ورودی json_encode اگه رشته باشه مشکلی هست؟
سوال دوم این که وقتی اطلاعات برگردونده میشه به همون صحفه ای که در خواست از اون اومده (درخواست ajax)، دستور json.parse عمل نمیکنه؟
کد مربوط به درخواست ajax:
$.ajax({
type: frm.attr(‘method’),
url: frm.attr(‘action’),
dataType: ‘json’,
data: frm.serialize(),
success: function (response) {
frm.find(“div.result”).html(“”).fadeOut();
var result = JSON.parse(response);
frm.find(msgDiv).html(result);
}
})
مشکل از چیه؟

لقمان آوند

سلام
ورودی json_encode در php یک ارایه هست و باید به همین شکل استفاده کنید تا بهتون json معتبر بده.
ضمنا اگر فقط یه رشته می خواد برگرده و چاپ شه خوب فقط همون رشته رو echo کنید و لزوما نیازی نیست json تبدیل کنید!
احتمالا مقدار دریافتی json معتبری نیست که عمل نمی کنه!

sana_esi replyپاسخ

سلام خدمت استاد آوند.
استاد توی قسمتی که گفتید اسامی جداول رو توی یک متغیر از شی پایگاه داده بریزید، زمانی که ما این کار رو انجام میدیم، توی query ها، دستورات اجرا نمیشه. مگه اینکه اسم خود جدول رو مستقیم توی هر query بیاریم. به نظرتون مشکل از کجاست؟

لقمان آوند

احتمالا به اشتباهی دارید میکنید!
باید بررسی بشه کدتون…

sana_esi replyپاسخ

سلام استاد آوند.
استاد مشکلاتمون رو قبل اینکه شما جواب بدید، حل کردیم خدا را شکر. فقط مشکل ajax مونده که براتون ایمیل کردیم. به محض دسترسی آنلاین بهتون اطلاع میدیم که مشکلمون رو بررسی کنید.

Hossein Aziztoli replyپاسخ

سلام یه سوال داشتم برای این که path روت اصلی سایت رو بگیریم از هاست باید چه کدی رو بزنیم؟

در پوشه تصاویر من تو روت اصلی سایت هست چطور میشه اون دایرکتوری رو گرفت من این کد رو هم تست کردم ولی نشد:
dirname($_SERVER[‘SERVER_NAME’];)

لقمان آوند

معمولا به صورت نسبی می تونید بدست بیارید. پوشه اسکریپت رو که می تونید داشته باشید. با برگشت به عقب میشه دریافتش کرد .

ppp replyپاسخ

سلام استاد
استادMYSQLI_ASSOC یعنی چی ؟
fetch_all و این یعنی چی ؟
$result->fetch_all(MYSQLI_ASSOC);

سرچ کردم اما متوجه نشدم

لقمان آوند

MYSQLI_ASSOC یعنی نتیجه رو به عنوان یه آرایه اسوشییتیو بهتون میده (ایدنکس اعضا اختصاصی هست و لزوما عدد نیست)

حسین آقاتبار replyپاسخ

شاید بفرمایید قالب زدن این پروژه کار نداره ، اما وقتی دیدم نیست انرژیم برای این پروژه کم شد و فط نشستم نگا کردم !

محمد کیانی replyپاسخ

سلام استاد
در جدول user شما 3 کاربر را ثبت کردید که یک ادمین هست و دو کاربر, رمز اون ادمین(avand.loghman@gmail.com) چیه ؟؟

لقمان آوند

دقیقا نمی دونم.
خودتون می تونید تغیر بدید دیگه …

dariosh babaii replyپاسخ

با سلام
جناب آوند در دو پروژه اخیر که از معماری mvc استفاده کردید بنده میخواستم فرم عضویت و لاگین را به صورت ای جکس پیاده کنم در برنامه نویسی رویه ای همانطور که توضیح دادید کار انجام شد ولی در این معماری کمی پیچیده میشه و بنده نمیدانم چطور این مسعله را حل کنم یک توضیح کوتاه مرحمت کنید یا یک لینک بدهید.به علت اینکه اکشن صحفه عضویت توسط متغیرها و فایل اینکلود انجام میشود دقیق نمیدانم در قسمت ارسال فایل در ای جکس اطلاعات به کدوم صحفه ارسال میشود همان صحفه عضویت یا یوزر اکشن یا غیره

لقمان آوند

سلام
یه تماس با بنده بگیرید توضیح میدم خدمتتون.

mohaddeseh ershadi replyپاسخ

با عرض سلام
فایل مربوط به جلسه 26 پس از دانلود برای بنده باز نمی شود، مشکل کجاست؟
متشکرم

لقمان آوند

سلام
احتمالا ناقص دانلود شده باشه
مجدد دانلود کنید و ببینید

mohaddeseh ershadi replyپاسخ

از قسمت لینک دانلود ویدیو نتوانستم دانلود کنم، از طریق خود فیلم سیو کردم.
باتشکر

جاوید replyپاسخ

سلام

ببخشید ، فایل های پروژه این قسمت و دو قسمت بعدی دانلود نمی شه … لطفا برسی کنید …

مصطفی قدیمی

سلام وقت بخیر
موردی وجود نداره دوست عزیز لطفا دوباره بررسی کتید

امید رفعتی replyپاسخ

با درود و احترام
جناب آوند نصب اسکریپت شما با خطای زیر مواجه میشه:
Notice: Trying to get property of non-object in C:\xampp\htdocs\imageshop\lib\funcs.php on line 50
Fatal error: Call to a member function query() on null in C:\xampp\htdocs\imageshop\lib\funcs.php on line 51
فایل کانفیگ هم به درستی ویرایش شده. ظاهرا یک چیزی در تابع getCategories درست عمل نمی کند یا با نسخه 5.6 php سازگار نیست.

کیوان علی محمدی

سلام خط های 50 و 51 در فایل funcs.php رو بررسی کنید

امید رفعتی

بله از متن ارور مشخص است ولی سورس کدها همان هایی است که آقای آوند نوشته اند. سرچ کردم ولی متاسفانه نتیجه ای حاصل نشد. تابعی که ایشان نوشته اند با نسخه جدید php ظاهرا مشکل دارد.
با سپاس

لقمان آوند

دقت کنید که کانکشن دیتابیس به درستی ایجاد شده باشه. احتمالا $db نال هست. اطلاعات اتصال به دیتابیس رو بررسی کنید.

Webirooni _com replyپاسخ

سلام وقت تون بخیر، یک سوال از حضورتون داشتم.
من داخل کدهای جاوا اسکریپت مربوط به پلاگین fancybox با استفاده از foreach سعی کردم آی دی عکس ها رو به صورت داینامیک چاپ کنم که کاربر زمانی که بر روی تصویر کلیک کرد، و عکس رو به سبد خرید اضافه کرد، تصویر مربوط به آیدی انتخاب شده، به سبد خرید اضافه بشه اما به یک مشکل برخورد کردم:
با این کد، زمانی که بر روی سبد خرید کلیک می کنم فقط آیدی اولین عکس در دیتابیس در قسمت url چاپ می شه و به صورت داینامیک، آیدی عکس ها عوض نمیشه.
فایل های پروژه هم که دانلود کردم، این مشکل رو داشت. آیدی عکس ها در قسمت url چاپ نمی شد و فقط add2cart? چاپ می شد.
اگر امکانش هست راهنمایی بفرمایید.

پیشاپیش ممنون از حسن توجه شما

 $(document).ready(function() {
        $(".fancybox").fancybox({
            afterLoad: function() {
                var tArr = this.title.split(‘|’);
                if(this.title.search(‘bought’) === -1){
                    <?php foreach ($images as $img): ?>
                    this.title = ‘<a class="addBtn btn btn-outline-success" style="font-family:iransans;" href="’+baseUrl+
                    ‘?add2cart=’+<?php echo $img[‘id’]; ?> + tArr[0] + ‘">افزودن به سبد خرید</a> ‘;
                    <?php endforeach; ?>
                }else{
                    this.title = ‘<span class="addBtn btn-outline-danger">قبلا خریداری شده است</span> ‘;

                }
            },
            helpers: {
                title: {
                    type: ‘inside’
                }
            }
        });
    });
Seyed Reza Bazyar replyپاسخ

من وقتی که دیتابیس رو import کردم با ارور پایین مواجه شدم
( ! ) Warning: mysqli::__construct(): (HY000/1045): Access denied for user ‘root’@’localhost’ (using password: NO) in /Applications/MAMP/htdocs/shop/lib/config.php on line 28

از سیستم عامل مک استفاده میکنم و توی مسیر /Applications/MAMP/htdocs/shop/ فایل هام رو قرار دادم. دلیل این ارور دقیقا چیه؟ راه حل برطرف کردن ارور چیه؟

کیوان علی محمدی

سلام. این خطا میگه شما با کاربر root امکان دسترسی به mysql server رو ندارد. password و آدرس و موارد دیگه رو بررسی کنید.

مجید کریم پناه replyپاسخ

سلام.
من سورس کدهاتون رو اجرا می کنم در بخش کلیک روی thumbnailونمایش تصاویر در کادر بزرگ مشکل دارم یک کادر بازمیشه The requested content cannot be loaded.Please try again later نشون میده به نظرتون برای حل این مشکل باید پیکار کنم؟

لقمان آوند

متن همین ارور رو سرچ کنید و در موردش بخونید

ارسال نظرات

کاربر گرامی، امکان ارسال نظر و پشتیبانی برای دوره های مجازی فقط برای دانشجویان این دوره امکان پذیر می باشد.

1 2