shell bypass 403

GrazzMean Shell

Uname: Linux peekpos.com 6.8.0-1060-aws #63~22.04.1-Ubuntu SMP Tue Jun 30 02:32:53 UTC 2026 x86_64
Software: Apache
PHP version: 8.3.25 [ PHP INFO ] PHP os: Linux
Server Ip: 47.130.192.226
Your Ip: 10.1.31.86
User: www (1001) | Group: www (1001)
Safe Mode: OFF
Disable Function:
passthru,putenv,chroot,chgrp,chown,shell_exec,popen,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv

name : HomeController.php
<?php

namespace App\Http\Controllers\front;

use App\Http\Controllers\Controller;
use App\Helpers\helper;
use App\Models\About;
use App\Models\Slider;
use App\Models\Item;
use App\Models\Banner;
use App\Models\Blogs;
use App\Models\Ratting;
use App\Models\WhyChooseUs;
use App\Models\TopDeals;
use App\Models\Variation;
use App\Models\Cart;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
use Session;
use Illuminate\Support\Facades\Auth;

class HomeController extends Controller
{
    public function index(Request $request)
    {
        $user_id = @Auth::user()->id;
        $session_id = Session::getId();
        $sliders = Slider::with('item_info', 'category_info')->where('is_available', 1)->orderBy('reorder_id')->get();
        $bannerlist = Banner::with('item_info', 'category_info')->where('is_available', 1)->orderBy('reorder_id')->get();
        $banners = array();
        $banners['topbanners'] = array();
        $banners['bannersection1'] = array();
        $banners['bannersection2'] = array();
        $banners['bannersection3'] = array();
        foreach ($bannerlist as $bannerdata) {
            if ($bannerdata->section == 1) {
                $banners['topbanners'][] = array(
                    "id" => $bannerdata->id,
                    "item_id" => $bannerdata->item_id,
                    "cat_id" => $bannerdata->cat_id,
                    "image" => helper::image_path($bannerdata->image),
                    "item_info" => $bannerdata->item_info,
                    "category_info" => $bannerdata->category_info,
                );
            }
            if ($bannerdata->section == 2) {
                $banners['bannersection1'][] = array(
                    "id" => $bannerdata->id,
                    "item_id" => $bannerdata->item_id,
                    "cat_id" => $bannerdata->cat_id,
                    "image" => helper::image_path($bannerdata->image),
                    "item_info" => $bannerdata->item_info,
                    "category_info" => $bannerdata->category_info,
                );
            }
            if ($bannerdata->section == 3) {
                $banners['bannersection2'][] = array(
                    "id" => $bannerdata->id,
                    "item_id" => $bannerdata->item_id,
                    "cat_id" => $bannerdata->cat_id,
                    "image" => helper::image_path($bannerdata->image),
                    "item_info" => $bannerdata->item_info,
                    "category_info" => $bannerdata->category_info,
                );
            }
            if ($bannerdata->section == 4) {
                $banners['bannersection3'][] = array(
                    "id" => $bannerdata->id,
                    "item_id" => $bannerdata->item_id,
                    "cat_id" => $bannerdata->cat_id,
                    "image" => helper::image_path($bannerdata->image),
                    "item_info" => $bannerdata->item_info,
                    "category_info" => $bannerdata->category_info,
                );
            }
        }
        $getblogs = Blogs::orderBy('reorder_id')->take('4')->get();
        $testimonials = Ratting::with('user_info')->where('user_id', null)->where('item_id', null)->orderBy('reorder_id')->take('5')->get();

        if ($user_id != null) {

            $todayspecial = Item::with('category_info', 'subcategory_info', 'variation', 'item_image', 'item_images')->select('item.*', DB::raw('(case when favorite.item_id is null then 0 else 1 end) as is_favorite'), DB::raw('(case when item.price is null then 0 else item.price end) as item_price'), DB::raw('(case when cart.item_id is null then 0 else 1 end) as is_cart'), DB::raw('ROUND(AVG(testimonials.star),1) as ratings_average'))
                ->leftJoin('favorite', function ($query) use ($user_id) {
                    $query->on('favorite.item_id', '=', 'item.id')
                        ->where('favorite.user_id', '=', $user_id);
                })
                ->leftJoin('cart', function ($query) use ($user_id) {
                    $query->on('cart.item_id', '=', 'item.id')
                        ->where('cart.user_id', '=', $user_id);
                })
                ->leftJoin('testimonials', 'testimonials.item_id', '=', 'item.id')
                ->groupBy('item.id', 'cart.item_id')
                ->where('item.is_featured', '1')->where('item.item_status', '1')->where('item.is_deleted', 2)->orderBy('item.reorder_id')->take(9)->get();

            $topitemlist = Item::with('category_info', 'subcategory_info', 'variation', 'item_image', 'item_images')->select('item.*', 'order_details.qty as order_details_qty', DB::raw('count(order_details.item_id) as item_order_counter'), DB::raw('(case when favorite.item_id is null then 0 else 1 end) as is_favorite'), DB::raw('(case when item.price is null then 0 else item.price end) as item_price'), DB::raw('(case when cart.item_id is null then 0 else 1 end) as is_cart'), DB::raw('ROUND(AVG(testimonials.star),1) as ratings_average'))
                ->leftJoin('order_details', 'order_details.item_id', 'item.id')
                ->leftJoin('favorite', function ($query) use ($user_id) {
                    $query->on('favorite.item_id', '=', 'item.id')
                        ->where('favorite.user_id', '=', $user_id);
                })
                ->leftJoin('cart', function ($query) use ($user_id) {
                    $query->on('cart.item_id', '=', 'item.id')
                        ->where('cart.user_id', '=', $user_id);
                })
                ->leftJoin('testimonials', 'testimonials.item_id', '=', 'item.id')
                ->groupBy('order_details.item_id', 'item.id', 'cart.item_id')
                ->orderByDesc('item_order_counter')
                ->where('item.item_status', '1')->where('item.is_deleted', 2)->take(10)->get();
            $recommended = Item::with('category_info', 'subcategory_info', 'variation', 'item_image', 'item_images')->select('item.*', DB::raw('(case when favorite.item_id is null then 0 else 1 end) as is_favorite'), DB::raw('(case when item.price is null then 0 else item.price end) as item_price'), DB::raw('(case when cart.item_id is null then 0 else 1 end) as is_cart'), DB::raw('ROUND(AVG(testimonials.star),1) as ratings_average'))
                ->leftJoin('favorite', function ($query) use ($user_id) {
                    $query->on('favorite.item_id', '=', 'item.id')
                        ->where('favorite.user_id', '=', $user_id);
                })
                ->leftJoin('cart', function ($query) use ($user_id) {
                    $query->on('cart.item_id', '=', 'item.id')
                        ->where('cart.user_id', '=', $user_id);
                })
                ->leftJoin('testimonials', 'testimonials.item_id', '=', 'item.id')
                ->groupBy('item.id', 'cart.item_id')
                ->inRandomOrder()
                ->where('item.item_status', '1')->where('item.is_deleted', 2)->take(10)->get();

            $topdealsproducts = Item::with('category_info', 'subcategory_info', 'variation', 'item_image', 'item_images')->select('item.*', 'order_details.qty as order_details_qty', DB::raw('count(order_details.item_id) as item_order_counter'), DB::raw('(case when favorite.item_id is null then 0 else 1 end) as is_favorite'), DB::raw('(case when item.price is null then 0 else item.price end) as item_price'), DB::raw('(case when cart.item_id is null then 0 else 1 end) as is_cart'), DB::raw('ROUND(AVG(testimonials.star),1) as ratings_average'))
                ->leftJoin('order_details', 'order_details.item_id', 'item.id')
                ->leftJoin('favorite', function ($query) use ($user_id) {
                    $query->on('favorite.item_id', '=', 'item.id')
                        ->where('favorite.user_id', '=', $user_id);
                })
                ->leftJoin('cart', function ($query) use ($user_id) {
                    $query->on('cart.item_id', '=', 'item.id')
                        ->where('cart.user_id', '=', $user_id);
                })
                ->leftJoin('testimonials', 'testimonials.item_id', '=', 'item.id')
                ->groupBy('order_details.item_id', 'item.id', 'cart.item_id')
                ->orderByDesc('item_order_counter')
                ->where('item.top_deals', '1')->where('item.is_deleted', 2)->take(6)->get();
        } else {
            $todayspecial = Item::with('category_info', 'subcategory_info', 'variation', 'item_image', 'item_images')->select('item.*', DB::raw('(case when item.price is null then 0 else item.price end) as item_price'), DB::raw('(case when cart.item_id is null then 0 else 1 end) as is_cart'), DB::raw('ROUND(AVG(testimonials.star),1) as ratings_average'))
                ->leftJoin('cart', function ($query) use ($session_id) {
                    $query->on('cart.item_id', '=', 'item.id')
                        ->where('cart.session_id', '=', $session_id);
                })
                ->leftJoin('testimonials', 'testimonials.item_id', '=', 'item.id')
                ->groupBy('item.id', 'cart.item_id')
                ->where('item.is_featured', '1')->where('item.item_status', '1')->where('item.is_deleted', 2)->orderBy('item.reorder_id')->take(9)->get();
            $topitemlist = Item::with('category_info', 'subcategory_info', 'variation', 'item_image', 'item_images')->select('item.*', 'order_details.qty as order_details_qty', DB::raw('count(order_details.item_id) as item_order_counter'), DB::raw('(case when item.price is null then 0 else item.price end) as item_price'), DB::raw('(case when cart.item_id is null then 0 else 1 end) as is_cart'), DB::raw('ROUND(AVG(testimonials.star),1) as ratings_average'))
                ->leftJoin('order_details', 'order_details.item_id', 'item.id')
                ->leftJoin('cart', function ($query) use ($session_id) {
                    $query->on('cart.item_id', '=', 'item.id')
                        ->where('cart.session_id', '=', $session_id);
                })
                ->leftJoin('testimonials', 'testimonials.item_id', '=', 'item.id')
                ->groupBy('order_details.item_id', 'item.id', 'cart.item_id')
                ->orderByDesc('item_order_counter')
                ->where('item.item_status', '1')->where('item.is_deleted', 2)->take(10)->get();
            $recommended = Item::with('category_info', 'subcategory_info', 'variation', 'item_image', 'item_images')->select('item.*', DB::raw('(case when item.price is null then 0 else item.price end) as item_price'), DB::raw('(case when cart.item_id is null then 0 else 1 end) as is_cart'), DB::raw('ROUND(AVG(testimonials.star),1) as ratings_average'))
                ->leftJoin('cart', function ($query) use ($session_id) {
                    $query->on('cart.item_id', '=', 'item.id')
                        ->where('cart.session_id', '=', $session_id);
                })
                ->leftJoin('testimonials', 'testimonials.item_id', '=', 'item.id')
                ->groupBy('item.id', 'cart.item_id')
                ->inRandomOrder()
                ->where('item.item_status', '1')->where('item.is_deleted', 2)->take(10)->get();

            $topdealsproducts = Item::with('category_info', 'subcategory_info', 'variation', 'item_image', 'item_images')->select('item.*', 'order_details.qty as order_details_qty', DB::raw('count(order_details.item_id) as item_order_counter'), DB::raw('(case when item.price is null then 0 else item.price end) as item_price'), DB::raw('(case when cart.item_id is null then 0 else 1 end) as is_cart'), DB::raw('ROUND(AVG(testimonials.star),1) as ratings_average'))
                ->leftJoin('order_details', 'order_details.item_id', 'item.id')
                ->leftJoin('cart', function ($query) use ($session_id) {
                    $query->on('cart.item_id', '=', 'item.id')
                        ->where('cart.session_id', '=', $session_id);
                })
                ->leftJoin('testimonials', 'testimonials.item_id', '=', 'item.id')
                ->groupBy('order_details.item_id', 'item.id', 'cart.item_id')
                ->orderByDesc('item_order_counter')
                ->where('item.top_deals', '1')->where('item.is_deleted', 2)->take(6)->get();
        }

        $setting = About::first();

        $theme = $setting->theme;

        if (env('Environment') == 'sendbox') {
            if ($request->theme_id) {
                $theme = $request->theme_id;
            }
        }
        $choose = WhyChooseUs::orderBy('reorder_id')->get();
        if ($request->is('pwa')) {
            return view('web.themepwa', compact('sliders', 'banners', 'todayspecial', 'topitemlist', 'testimonials', 'getblogs', 'recommended', 'choose', 'setting', 'topdealsproducts'));
        } else {
            return view('web.home' . $theme . '.index', compact('sliders', 'banners', 'todayspecial', 'topitemlist', 'testimonials', 'getblogs', 'recommended', 'choose', 'setting', 'topdealsproducts'));
        }
        // return view('web.home' . $theme . '.index', compact('sliders', 'banners', 'todayspecial', 'topitemlist', 'testimonials', 'getblogs', 'recommended', 'choose', 'setting', 'topdealsproducts'));
    }
    public function categories(Request $request)
    {
        return view('web.categoryviewall');
    }
    public function change_dir(Request $request)
    {
        session()->put('direction', $request->dir);
        return redirect()->back();
    }
    public function getProductsVariantQuantity(Request $request)
    {

        $name = implode('|', str_replace('_', ' ', $request->name));
        $quantity = $variant_id = 0;
        $price = 0;
        $item = Item::where('id', $request->item_id)->first();
        $topdeals = TopDeals::first();
        $variant = Variation::where('item_id', $request->item_id)->where('name', $name)->first();
        if ($item->has_variation == 1) {

            if ($item->top_deals == 1) {

                if (@$topdeals->offer_type == 1) {
                    $price = $variant->price - @$topdeals->offer_amount;
                } else {
                    $price = $variant->price  - $variant->price  * (@$topdeals->offer_amount / 100);
                }

                $original_price = $variant->price;
            } else {
                $price = $variant->price;
                $original_price = $variant->original_price;
            }
        } else {

            if ($item->top_deals == 1) {

                if (@$topdeals->offer_type == 1) {
                    $price = $item->price - @$topdeals->offer_amount;
                } else {
                    $price = $item->price - $item->price * (@$topdeals->offer_amount / 100);
                }

                $original_price = $item->price;
            } else {
                $price = $item->price;
                $original_price = $item->original_price;
            }
        }
        $off = $original_price > 0 ? number_format(100 - ($price * 100) / $original_price, 1) : 0;

        if ($item->has_variation == 1) {

            $variant_id = @$variant->id;
            $variants_name = @$request->name;
            $qty = @$variant->qty;
            $stock_management = @$variant->stock_management;
        } else {

            $variant_id = "";
            $variants_name = "";
            $qty = "";
            $stock_management = @$item->stock_management;
        }
        $status = 1;

        if ($item->is_available == 2 || $item->is_deleted == 1) {
            $is_available = 2;
        } else {
            $is_available = @$variant->is_available;
        }


        return response()->json([
            'status' => 1,
            'price' => helper::currency_format($price),
            'item_price' => $price,
            'item_original_price' => $original_price,
            'original_price' => helper::currency_format($original_price),
            'variant_id' => $variant_id,
            'variants_name' => $variants_name,
            'is_available' => $is_available,
            'quantity' => $qty,
            'stock_management' => $stock_management,
            'off' => $off
        ], 200);
    }

    public function changeqty(Request $request)
    {

        if ($request->variants_name == null) {

            $item = item::where('id', $request->item_id)->first();
            if (Auth::user()) {
                $cartqty = Cart::select(DB::raw("SUM(qty) as totalqty"))->where('item_id', $item->id)->where('user_id', Auth::user()->id)->first();
            } else {

                $cartqty = Cart::select(DB::raw("SUM(qty) as totalqty"))->where('item_id', $item->id)->where('session_id', Session::getId())->first();
            }
            if ($cartqty->totalqty != null && $cartqty->totalqty != "") {
                $qty = $cartqty->totalqty + $request->qty;
            } else {
                $qty = $request->qty;
            }

            if ($item->stock_management == 1) {
                // if ($item->min_order != null && $item->min_order != "" && $item->min_order != 0) {
                //     if ($item->min_order > $qty) {
                //         return response()->json(['status' => 0, 'message' => trans('messages.min_qty_message') . $item->min_order, 'qty' => $request->qty], 200);
                //     }
                // }
                if ($item->max_order != null && $item->max_order != "" && $item->max_order != 0) {
                    if ($item->max_order < $qty) {
                        if ($cartqty->totalqty == null) {
                            return response()->json(['status' => 0, 'message' => trans('messages.max_qty_message') . $item->max_order, 'qty' => $request->qty - 1], 200);
                        } else {
                            return response()->json(['status' => 0, 'message' => trans('messages.cart_qty_msg') . ' ' . trans('messages.max_qty_message') . $item->max_order, 'qty' => $request->qty - 1], 200);
                        }
                    }
                }
                if ($qty == $item->qty) {
                    return response()->json(['status' => 1, 'message' => 'success', 'qty' => $qty], 200);
                }
                if ($qty > $item->qty && ($item->qty != null && $item->qty != "")) {
                    return response()->json(['status' => 0, 'message' => trans('labels.out_of_stock_msg') . ' ' . $item->item_name, 'qty' => $request->qty - 1], 200);
                } else {
                    return response()->json(['status' => 1, 'message' => 'success', 'qty' => $request->qty], 200);
                }
            } else {
                return response()->json(['status' => 1, 'message' => 'success', 'qty' => $request->qty], 200);
            }
        } else {
            $variant_name = str_replace('_', ' ', $request->variants_name);
            $item = Variation::where('name', str_replace(',', '|', $variant_name))->where('item_id', $request->item_id)->first();

            $item_name = Item::select('item_name')->where('id', $request->item_id)->first();

            if (Auth::user() && Auth::user()->type == 2) {
                $cartqty = Cart::select(DB::raw("SUM(qty) as totalqty"))->where('variation_id', $item->id)->where('user_id', Auth::user()->id)->first();
            } else {

                $cartqty = Cart::select(DB::raw("SUM(qty) as totalqty"))->where('variation_id', $item->id)->where('session_id', Session::getId())->first();
            }

            if ($cartqty->totalqty != null && $cartqty->totalqty != "") {
                $qty = $cartqty->totalqty + $request->qty;
            } else {
                $qty = $request->qty;
            }

            if ($item->stock_management == 1) {
                // if ($item->min_order != null && $item->min_order != "" && $item->min_order != 0) {
                //     if ($item->min_order > $qty && $item->min_order != $qty) {
                //         return response()->json(['status' => 0, 'message' => trans('messages.min_qty_message') . $item->min_order, 'qty' => $request->qty], 200);
                //     }
                // }
                if ($item->max_order != null && $item->max_order != "" && $item->max_order != 0) {
                    if ($item->max_order < $qty && $item->max_order != $qty) {
                        if ($cartqty->totalqty == null) {
                            return response()->json(['status' => 0, 'message' => trans('messages.max_qty_message') . $item->max_order, 'qty' => $request->qty - 1], 200);
                        } else {
                            return response()->json(['status' => 0, 'message' => trans('messages.cart_qty_msg') . ' ' . trans('messages.max_qty_message') . $item->max_order, 'qty' => $request->qty - 1], 200);
                        }
                    }
                }
                if ($qty == $item->qty) {
                    return response()->json(['status' => 1, 'message' => 'success', 'qty' => $qty], 200);
                }
                if ($qty > $item->qty  && ($item->qty != null && $item->qty != "")) {
                    return response()->json(['status' => 0, 'message' => trans('labels.out_of_stock_msg') . ' ' . $item_name->item_name . '(' . $item->name . ')', 'qty' => $request->qty - 1], 200);
                } else {
                    return response()->json(['status' => 1, 'message' => 'success', 'qty' => $request->qty], 200);
                }
            } else {
                return response()->json(['status' => 1, 'message' => 'success', 'qty' => $request->qty], 200);
            }
        }
    }
}
© 2026 GrazzMean