!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/uploads/script/app/Http/Controllers/Admin/   drwxr-xr-x
Free 13.26 GB of 57.97 GB (22.87%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     FrontendController.php (17.72 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace App\Http\Controllers\Admin;

use 
App\Http\Controllers\Controller;
use 
Illuminate\Http\Request;
use 
App\Option;
use 
App\Category;
use 
App\Categorymeta;
use 
App\Helper\Sitehelper\Sitehelper;
use 
Str;
use 
Auth;
class 
FrontendController extends Controller
{
    

    
/**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    
public function store(Request $request)
    {
        if (
$request->type=="features") {
            
$validatedData $request->validate([
                
'title' => 'required|max:100',
                
'description' => 'required|max:200',
                
'file' => 'required|image|max:1000',
            ]);

            if (
$request->file) {
                 
$fileName time().'.'.$request->file->extension();  
                 
$request->file->move('uploads/1/'.date('Y/m/'), $fileName);
                 
$fileName='uploads/1/'.date('Y/m/').$fileName;
            }

            
$category=new Category;
            
$category->type="features";
            
$category->name=$request->title;
            
$category->slug=Str::slug($request->title);
            
$category->is_admin=1;
            
$category->user_id=Auth::id();
            
$category->save();

            
$meta=new Categorymeta;
            
$meta->category_id =$category->id;
            
$meta->type ="preview";
            
$meta->content =$fileName;
            
$meta->save();

            
$meta=new Categorymeta;
            
$meta->category_id =$category->id;
            
$meta->type ="excerpt";
            
$meta->content =$request->description;
            
$meta->save();

            return 
response()->json(['Features Created']);
        }

        if (
$request->type=="widget") {
            
$validatedData $request->validate([
                
'title' => 'required|max:100',
                
'count' => 'required|max:100',
                
'file' => 'required|image|max:1000',
            ]);

            if (
$request->file) {
                 
$fileName time().'.'.$request->file->extension();  
                 
$request->file->move('uploads/1/'.date('Y/m/'), $fileName);
                 
$fileName='uploads/1/'.date('Y/m/').$fileName;
            }

            
$category=new Category;
            
$category->type="widget";
            
$category->name=$request->title;
            
$category->slug=$request->count;
            
$category->is_admin=1;
            
$category->user_id=Auth::id();
            
$category->save();

            
$meta=new Categorymeta;
            
$meta->category_id =$category->id;
            
$meta->type ="preview";
            
$meta->content =$fileName;
            
$meta->save();

            return 
response()->json(['Widget Created']);
        }

        if (
$request->type=="testimonial") {
            

            
$category=new Category;
            
$category->type="testimonial";
            
$category->name=$request->name;
            
$category->slug=$request->position;
            
$category->is_admin=1;
            
$category->user_id=Auth::id();
            
$category->save();

           

            
$meta=new Categorymeta;
            
$meta->category_id =$category->id;
            
$meta->type ="excerpt";
            
$meta->content =$request->feedback;
            
$meta->save();


            return 
response()->json(['Testimonial Created']);
        }

        if (
$request->type=="brand") {
            
$validatedData $request->validate([
                
'name' => 'required|max:100',
                
'file' => 'required|image|max:1000',
            ]);

            if (
$request->file) {
                 
$fileName time().'.'.$request->file->extension();  
                 
$request->file->move('uploads/1/'.date('Y/m/'), $fileName);
                 
$fileName='uploads/1/'.date('Y/m/').$fileName;
            }

            
$category=new Category;
            
$category->type="brand";
            
$category->name=$request->name;
            
$category->is_admin=1;
            
$category->user_id=Auth::id();
            
$category->save();

            
$meta=new Categorymeta;
            
$meta->category_id =$category->id;
            
$meta->type ="preview";
            
$meta->content =$fileName;
            
$meta->save();

            return 
response()->json(['Brand Created']);
        }

        if (
$request->type=="support") {


        }    
    }

    
/**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    
public function show($type)
    {
        if (!
Auth()->user()->can('site.settings')) {
            return 
abort(401);
        }

        if (
$type=="header") {
            
$option=Option::where('key','header')->first();
            
$info=json_decode($option->value ?? '');
            return 
view('admin.frontend.header',compact('info'));
        }
        if (
$type=="features") {
            
$posts=Category::where('type','features')->where('is_admin',1)->latest()->get(); 
            return 
view('admin.frontend.features',compact('posts'));
        }
        if (
$type=="counter_area") {
            
            
$option=Option::where('key','counter_area')->first();
            
$info=json_decode($option->value ?? '');
            return 
view('admin.frontend.counter_area',compact('info','type'));
        }
        if (
$type=="about_1") {            
            
$option=Option::where('key','about_1')->first();           
            
$info=json_decode($option->value);
           
            return 
view('admin.frontend.about',compact('info','type'));
        }
        if (
$type=="about_2") {
            
$option=Option::where('key','about_2')->first();
            
$info=json_decode($option->value ?? '');
            return 
view('admin.frontend.about',compact('info','type'));
        }
        if (
$type=="about_3") {

            
$option=Option::where('key','about_3')->first();
            
$info=json_decode($option->value ?? '');
            return 
view('admin.frontend.about',compact('info','type'));
        }

        if (
$type=="testimonials") {
            
$posts=Category::where('type','testimonial')->where('is_admin',1)->latest()->get(); 
            return 
view('admin.frontend.testimonials',compact('posts'));
        }

        if (
$type=="brands") {
            
$posts=Category::where('type','brand')->with('preview')->where('is_admin',1)->latest()->get(); 
            return 
view('admin.frontend.brands',compact('posts'));
        }

        if (
$type=="ecom_features") {
             
$option=Option::where('key','ecom_features')->first();
             
$info=json_decode($option->value ?? '');
            return 
view('admin.frontend.ecom_features',compact('info','type'));
        }

        if (
$type=="contact") {
            return 
view('admin.frontend.contact');
        }

        if (
$type == 'instruction') {
        
         
$option=Option::where('key','instruction')->first();
         
$info=json_decode($option->value ?? '');
         return 
view('admin.frontend.instruction',compact('info','type'));
        }

        if (
$type == 'css-js') {
        
          if (
file_exists('uploads/support.js')) {
            
$support=file_get_contents('uploads/support.js');
          }
          else{
            
$support='';
          }

          if (
file_exists('uploads/additional.js')) {
            
$additional_js=file_get_contents('uploads/additional.js');
          }
          else{
            
$additional_js='';
          }
          if (
file_exists('uploads/additional.css')) {
            
$additional_css=file_get_contents('uploads/additional.css');
          }
          else{
            
$additional_css='';
          }
         return 
view('admin.frontend.script',compact('support','additional_js','additional_css','type'));
        }
        
    }

   
    
/**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    
public function update(Request $request$id)
    {

        if (
$id=='instruction') {
            
$option=Option::where('key',$id)->first();
            
$info=json_decode($option->value ?? '');
            if (empty(
$option)) {
                
$option=new Option;
                
$option->key=$id;
            }

            
$data['dns_configure_instruction']=$request->dns_configure_instruction;
            
$data['support_instruction']=$request->support_instruction;
            
$option->value=json_encode($data);
            
$option->save();
            return 
response()->json(['Update Success']);
        }

        if (
$id=='css-js') {
            
             
\File::put('uploads/additional.css',$request->additional_css);
             
\File::put('uploads/additional.js',$request->additional_js);
             
\File::put('uploads/support.js',$request->support_js);

            return 
response()->json(['Update Success']);
        }
        if (
$id=="header") {
            
$validatedData $request->validate([
                
'file' => 'image|max:1000',
            ]);

            
$option=Option::where('key','header')->first();
            
$info=json_decode($option->value ?? '');
            if (empty(
$option)) {
                
$option=new Option;
                
$option->key="header";
            }
            if(!empty(
$request->ytb_video)){
                
$ytb_url=$this->parse_yotube_url($request->ytb_video);
            }
            else{
                
$ytb_url=null;
            }
            
            
$data['title']=$request->title;
            
$data['highlight_title']=$request->highlight_title;
            
$data['ytb_video']=$ytb_url;
            
$data['description']=$request->description;
            if (
$request->file) {
                if (!empty(
$info->preview)) {
                    if (
file_exists($info->preview)) {
                        
unlink($info->preview);
                    }
                }
                
$fileName time().'.'.$request->file->extension();  
                
$request->file->move('uploads/1/'.date('Y/m/'), $fileName);
                
$fileName='uploads/1/'.date('Y/m/').$fileName;
                
            }
            else{
                
$fileName =$info->preview ?? null;
            }

            
$data['preview']=$fileName;
            
$option->value=json_encode($data);
            
$option->save();

            return 
response()->json(['Update Success']);
        }

        if (
$id=="counter_area") {
           

            
$option=Option::where('key','counter_area')->first();
            if (empty(
$option)) {
                
$option=new Option;
                
$option->key='counter_area';
            }

            
$data['happy_customer']=$request->happy_customer;
            
$data['total_reviews']=$request->total_reviews;
            
$data['total_domain']=$request->total_domain;
            
$data['community_member']=$request->community_member;
            
            
$option->value=json_encode($data);
            
$option->save();

            return 
response()->json(['Update Success']);
        }




        if (
$id=="ecom_features") {
             
$validatedData $request->validate([
                
'top_image' => 'image|max:1000',
                
'center_image' => 'image|max:1000',
                
'bottom_image' => 'image|max:1000',
             ]);
             
$option=Option::where('key',$id)->first();
             
$info=json_decode($option->value ?? '');
             if (empty(
$option)) {
                
$option=new Option;
                
$option->key=$id;
             }

            if (
$request->top_image) {
                if (!empty(
$info->top_image)) {
                    if (
file_exists($info->top_image)) {
                        
unlink($info->top_image);
                    }
                }
                
$fileName time().'.'.$request->top_image->extension();  
                
$request->top_image->move('uploads/1/'.date('Y/m/'), $fileName);
                
$top_image='uploads/1/'.date('Y/m/').$fileName;
                
            }
            else{
                
$top_image =$info->top_image ?? null;
            }

            if (
$request->center_image) {
                if (!empty(
$info->center_image)) {
                    if (
file_exists($info->center_image)) {
                        
unlink($info->center_image);
                    }
                }
                
$fileName time().'.'.$request->center_image->extension();  
                
$request->center_image->move('uploads/1/'.date('Y/m/'), $fileName);
                
$center_image='uploads/1/'.date('Y/m/').$fileName;
                
            }
            else{
                
$center_image =$info->center_image ?? null;
            }

            if (
$request->bottom_image) {
                if (!empty(
$info->bottom_image)) {
                    if (
file_exists($info->bottom_image)) {
                        
unlink($info->bottom_image);
                    }
                }
                
$fileName time().'.'.$request->bottom_image->extension();  
                
$request->bottom_image->move('uploads/1/'.date('Y/m/'), $fileName);
                
$bottom_image='uploads/1/'.date('Y/m/').$fileName;
                
            }
            else{
                
$bottom_image =$info->bottom_image ?? null;
            }

            
$data['top_image']=$top_image;
            
$data['center_image']=$center_image;
            
$data['bottom_image']=$bottom_image;
            
$data['area_title']=$request->area_title;
            
$data['description']=$request->description;
            
$data['btn_link']=$request->btn_link;
            
$data['btn_text']=$request->btn_text;
            
$option->value=json_encode($data);
            
$option->save();

            return 
response()->json('Option Updated Successfully...!!');



        }    
         if (
$id=="about_1") {
            
$validatedData $request->validate([
                
'file' => 'image|max:1000',
            ]);

            
$option=Option::where('key',$id)->first();
            
$info=json_decode($option->value ?? '');
            if (empty(
$option)) {
                
$option=new Option;
                
$option->key=$id;
            }
            
$about_1['title']=$request->title ?? '';
            
$about_1['description']=$request->description ?? '';
            
$about_1['btn_link']=$request->btn_link ?? '';
            
$about_1['btn_text']=$request->btn_text ?? '';
            
$fileName =$request->icon_name ?? null;

            
$about_1['preview']=$fileName;
            
$option->value=json_encode($about_1);
            
$option->save();

            return 
response()->json('Section Updated');
        }

        if (
$id=="about_2") {

            
$validatedData $request->validate([
                
'file' => 'image|max:1000',
            ]);

            
$option=Option::where('key',$id)->first();
            
$info=json_decode($option->value ?? '');
            if (empty(
$option)) {
                
$option=new Option;
                
$option->key=$id;
            }
            
$about_2['title']=$request->title ?? '';
            
$about_2['description']=$request->description ?? '';
            
$about_2['btn_link']=$request->btn_link ?? '';
            
$about_2['btn_text']=$request->btn_text ?? '';
            
$fileName =$request->icon_name ?? null;

            
$about_2['preview']=$fileName;
            
$option->value=json_encode($about_2);
            
$option->save();

            return 
response()->json('Section Updated');
        }

        if (
$id=="about_3") {
            
$validatedData $request->validate([
                
'file' => 'image|max:1000',
            ]);

            
$option=Option::where('key',$id)->first();
            
$info=json_decode($option->value ?? '');
            if (empty(
$option)) {
                
$option=new Option;
                
$option->key=$id;
            }
            
$data['title']=$request->title ?? '';
            
$data['description']=$request->description ?? '';
            
$data['btn_link']=$request->btn_link ?? '';
            
$data['btn_text']=$request->btn_text ?? '';
            
$fileName =$request->icon_name ?? null;

            
$data['preview']=$fileName;
            
$option->value=json_encode($data);
            
$option->save();

            return 
response()->json('Section Updated');
        }



        if (
$id=="contact") {
            
$validatedData $request->validate([
                
'file' => 'image|max:1000',
            ]);
            
$fileName 'contact.png';  
            
$request->file->move('uploads/'$fileName);
            return 
response()->json(['Image Changed']);

         }   
    }

     public function 
parse_yotube_url($url
        {
        
$pattern '#^(?:https?://)?';    # Optional URL scheme. Either http or https.
        
$pattern .= '(?:www\.)?';         #  Optional www subdomain.
        
$pattern .= '(?:';                #  Group host alternatives:
        
$pattern .=   'youtu\.be/';       #    Either youtu.be,
        
$pattern .=   '|youtube\.com';    #    or youtube.com
        
$pattern .=   '(?:';              #    Group path alternatives:
        
$pattern .=     '/embed/';        #      Either /embed/,
        
$pattern .=     '|/v/';           #      or /v/,
        
$pattern .=     '|/watch\?v=';    #      or /watch?v=,    
        
$pattern .=     '|/watch\?.+&v='#      or /watch?other_param&v=
        
$pattern .=   ')';                #    End path alternatives.
        
$pattern .= ')';                  #  End host alternatives.
        
$pattern .= '([\w-]{11})';        # 11 characters (Length of Youtube video ids).
        
$pattern .= '(?:.+)?$#x';         # Optional other ending URL parameters.
        
preg_match($pattern$url$matches);
        return (isset(
$matches[1])) ? $matches[1] : false;
    }
    
/**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    
public function destroy($id)
    {
        
//
    
}
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0071 ]--