403Webshell
Server IP : 23.254.227.96  /  Your IP : 216.73.216.46
Web Server : Apache/2.4.62 (Unix) OpenSSL/1.1.1k
System : Linux hwsrv-1277026.hostwindsdns.com 4.18.0-477.13.1.el8_8.x86_64 #1 SMP Tue May 30 14:53:41 EDT 2023 x86_64
User : viralblo ( 1001)
PHP Version : 8.1.31
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /home/viralblo/instantblog/app/Http/Controllers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/viralblo/instantblog/app/Http/Controllers/PageController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Validation\Rule;
use App\Models\Page;
use Image;

class PageController extends Controller
{

    public function __construct()
    {
        $this->middleware('can:admin-area');
    }

    public function index()
    {
        $pages = Page::orderBy('id', 'DESC')
            ->paginate(30);

        return view('posts.pages', compact('pages'));
    }

    public function create()
    {
        return view('pages.create');
    }

    public function store(Request $request)
    {
        $attributes = request(['page_title', 'page_slug', 'page_content']);

        $this->validate(request(), [
            'page_title' => 'required|unique:pages,page_title',
            'page_slug' => 'required|unique:pages,page_slug',
        ]);

        if(!empty($request->page_content)){
            $message = $attributes['page_content'];
            $dom = new \DomDocument();
            $dom->loadHtml( mb_convert_encoding($message, 'HTML-ENTITIES', "UTF-8"), LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
            $images = $dom->getElementsByTagName('img');
            foreach($images as $img){
                $src = $img->getAttribute('src');
                if(preg_match('/data:image/', $src)){                
                    preg_match('/data:image\/(?<mime>.*?)\;/', $src, $groups);
                    $mimetype = $groups['mime'];                
                    $filename = uniqid();
                    $filepath = "/uploads/$filename.$mimetype";
                    $image = Image::make($src)
                      ->encode($mimetype, 100)
                      ->save(public_path($filepath));                
                    $new_src = asset($filepath);
                    $img->removeAttribute('src');
                    $img->setAttribute('src', $new_src);
                }
            }
            $attributes['page_content'] = $dom->saveHTML();
        }

        Page::create($attributes);

        session()->flash('message', 'Page Created!');
        return redirect('/pages');
    }

    public function show($id)
    {
        $page = Page::findOrFail($id);
        return view('pages.show', compact('page'));
    }

    public function edit($id)
    {
        $page = Page::findOrFail($id);
        return view('pages.edit', compact('page'));
    }

    public function update(Request $request, $id)
    {
        $page = Page::findOrFail($id);

        $attributes = request(['page_title', 'page_slug', 'page_content']);

        $this->validate(request(), [
            'page_title' => [
                'required',
                Rule::unique('pages')->ignore($page->id),
            ],

            'page_slug' => [
                'required',
                Rule::unique('pages')->ignore($page->id),
            ],

        ]);

        if(!empty($request->page_content)){
            $message = $attributes['page_content'];
            $dom = new \DomDocument();
            $dom->loadHtml( mb_convert_encoding($message, 'HTML-ENTITIES', "UTF-8"), LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);   
            $images = $dom->getElementsByTagName('img');
            foreach($images as $img){
                $src = $img->getAttribute('src');
                if(preg_match('/data:image/', $src)){                
                    preg_match('/data:image\/(?<mime>.*?)\;/', $src, $groups);
                    $mimetype = $groups['mime'];                
                    $filename = uniqid();
                    $filepath = "/uploads/$filename.$mimetype"; 
                    $image = Image::make($src)
                      ->encode($mimetype, 100)
                      ->save(public_path($filepath));                
                    $new_src = asset($filepath);
                    $img->removeAttribute('src');
                    $img->setAttribute('src', $new_src);
                }
            }
            $attributes['page_content'] = $dom->saveHTML();
        }
        
        $page->update($attributes);

        session()->flash('message', 'Page Updated!');
        return redirect('/pages');
    }

    public function destroy($id)
    {
        $page = Page::findOrFail($id);
        $page->delete();
        session()->flash('message', 'Page Deleted!');
        return redirect('/pages');
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit