Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php @eval("?>".base64_decode("PD9waHAKCm5hbWVzcGFjZSBNb2R1bGVzXENvdXJzZXNcSHR0cFxDb250cm..

Decoded Output download

?>b'<?php

namespace Modules\Courses\Http\Controllers;

use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use Illuminate\View\View;
use Modules\CommonModule\Helper\UploaderHelper;
use Modules\ConfigModule\Entities\Place;
use Modules\ConfigModule\Rules\JfifImage;
use Modules\Courses\Entities\Category;
use Modules\Courses\Entities\Course;
use Modules\Courses\Entities\Meeting;

class CoursesController extends Controller
{

    use UploaderHelper;
    public function __construct()
    {
        $this->middleware(\'permission:show_courses\')->only(\'index\');
        $this->middleware(\'permission:add_courses\')->only(\'create\');
        $this->middleware(\'permission:delete_courses\')->only(\'destroy\');
        $this->middleware(\'permission:update_courses\')->only([\'edit\',\'update\']);
    }

    public function index(): View
    {
        $courses=Course::with([\'category\'])
            ->orderBy(\'id\',\'asc\')
            ->get();

        return view(\'courses::courses.index\',compact(\'courses\'));
    }

    public function create(): View
    {
        $categories = Category::where(\'status\',1)->get();
        $places = Place::all();

        return view(\'courses::courses.create\',compact(\'categories\',\'places\'));
    }

    public function store(Request $request): RedirectResponse
    {
        $data = $request->validate([
            \'title_ar\'=>\'required|string|max:225\',
            \'title_en\'=>\'required|string|max:225\',
            \'desc_ar\'=>\'required\',
            \'desc_en\'=>\'required\',
            \'category_id\'=>\'required|numeric|exists:categories,id\',
            \'old_id\'=>\'nullable|numeric\',
            \'places\'=>\'required|array\',
            \'image\'=>[\'required\',\'image\',\'mimes:jpeg,png,jpg,gif\',new JfifImage()]
        ]);

        $data[\'image\']=$this->uploadFile($request->file(\'image\'),\'courses\');
        $data[\'status\']=1;

        $createCourse = Course::create($data);
        $createCourse->places()->sync($request->places);

        return redirect(\'admin/courses\')->with(\'success\', \'success\');
    }

    public function edit(Course $course): View
    {
        $categories = Category::where(\'status\',1)->get();
        $places = Place::all();

        return view(\'courses::courses.edit\',compact(\'categories\',\'course\',\'places\'));
    }

    public function update(Request $request, Course $course): RedirectResponse
    {
        $data = $request->validate([
            \'title_ar\'=>\'required|string|max:225\',
            \'title_en\'=>\'required|string|max:225\',
            \'desc_ar\'=>\'required\',
            \'desc_en\'=>\'required\',
            \'old_id\'=>\'nullable|numeric\',
            \'places\'=>\'required|array\',
            \'category_id\'=>\'required|numeric|exists:categories,id\',
            \'image\'=>[\'image\',\'mimes:jpeg,png,jpg,gif\',new JfifImage()]
        ]);

        if($request->image)$data[\'image\']=$this->upload($request->file(\'image\'),\'courses\');

        $status = $course->update($data);
        $course->places()->sync($request->places);
        $status=($status)?\'updated\':\'failed\';

        return redirect(\'admin/courses\')->with(\'updated\', $status);
    }

    public function destroy($id): RedirectResponse
    {
        $course = Course::where(\'id\',$id)->first();
        $course->places()->delete();
        $status = $course->delete();

        return redirect(\'admin/courses\')->with(\'deleted\', $status);
    }


    public function changeStatus($id)
    {
        $course = Course::with([\'category\'])->findOrFail($id);

        if($course->category->status == 2 && $course->status==2)
        {
            return \response()->json([\'message\'=>\'      \']);
        }

        $status = $course->status==1?2:1;
        $course->update(["status"=>$status]);
    }
}
'

Did this file decode correctly?

Original Code

<?php @eval("?>".base64_decode("PD9waHAKCm5hbWVzcGFjZSBNb2R1bGVzXENvdXJzZXNcSHR0cFxDb250cm9sbGVyczsKCnVzZSBJbGx1bWluYXRlXEh0dHBcUmVkaXJlY3RSZXNwb25zZTsKdXNlIElsbHVtaW5hdGVcSHR0cFxSZXF1ZXN0Owp1c2UgSWxsdW1pbmF0ZVxSb3V0aW5nXENvbnRyb2xsZXI7CnVzZSBJbGx1bWluYXRlXFZpZXdcVmlldzsKdXNlIE1vZHVsZXNcQ29tbW9uTW9kdWxlXEhlbHBlclxVcGxvYWRlckhlbHBlcjsKdXNlIE1vZHVsZXNcQ29uZmlnTW9kdWxlXEVudGl0aWVzXFBsYWNlOwp1c2UgTW9kdWxlc1xDb25maWdNb2R1bGVcUnVsZXNcSmZpZkltYWdlOwp1c2UgTW9kdWxlc1xDb3Vyc2VzXEVudGl0aWVzXENhdGVnb3J5Owp1c2UgTW9kdWxlc1xDb3Vyc2VzXEVudGl0aWVzXENvdXJzZTsKdXNlIE1vZHVsZXNcQ291cnNlc1xFbnRpdGllc1xNZWV0aW5nOwoKY2xhc3MgQ291cnNlc0NvbnRyb2xsZXIgZXh0ZW5kcyBDb250cm9sbGVyCnsKCiAgICB1c2UgVXBsb2FkZXJIZWxwZXI7CiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKQogICAgewogICAgICAgICR0aGlzLT5taWRkbGV3YXJlKCdwZXJtaXNzaW9uOnNob3dfY291cnNlcycpLT5vbmx5KCdpbmRleCcpOwogICAgICAgICR0aGlzLT5taWRkbGV3YXJlKCdwZXJtaXNzaW9uOmFkZF9jb3Vyc2VzJyktPm9ubHkoJ2NyZWF0ZScpOwogICAgICAgICR0aGlzLT5taWRkbGV3YXJlKCdwZXJtaXNzaW9uOmRlbGV0ZV9jb3Vyc2VzJyktPm9ubHkoJ2Rlc3Ryb3knKTsKICAgICAgICAkdGhpcy0+bWlkZGxld2FyZSgncGVybWlzc2lvbjp1cGRhdGVfY291cnNlcycpLT5vbmx5KFsnZWRpdCcsJ3VwZGF0ZSddKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gaW5kZXgoKTogVmlldwogICAgewogICAgICAgICRjb3Vyc2VzPUNvdXJzZTo6d2l0aChbJ2NhdGVnb3J5J10pCiAgICAgICAgICAgIC0+b3JkZXJCeSgnaWQnLCdhc2MnKQogICAgICAgICAgICAtPmdldCgpOwoKICAgICAgICByZXR1cm4gdmlldygnY291cnNlczo6Y291cnNlcy5pbmRleCcsY29tcGFjdCgnY291cnNlcycpKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gY3JlYXRlKCk6IFZpZXcKICAgIHsKICAgICAgICAkY2F0ZWdvcmllcyA9IENhdGVnb3J5Ojp3aGVyZSgnc3RhdHVzJywxKS0+Z2V0KCk7CiAgICAgICAgJHBsYWNlcyA9IFBsYWNlOjphbGwoKTsKCiAgICAgICAgcmV0dXJuIHZpZXcoJ2NvdXJzZXM6OmNvdXJzZXMuY3JlYXRlJyxjb21wYWN0KCdjYXRlZ29yaWVzJywncGxhY2VzJykpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzdG9yZShSZXF1ZXN0ICRyZXF1ZXN0KTogUmVkaXJlY3RSZXNwb25zZQogICAgewogICAgICAgICRkYXRhID0gJHJlcXVlc3QtPnZhbGlkYXRlKFsKICAgICAgICAgICAgJ3RpdGxlX2FyJz0+J3JlcXVpcmVkfHN0cmluZ3xtYXg6MjI1JywKICAgICAgICAgICAgJ3RpdGxlX2VuJz0+J3JlcXVpcmVkfHN0cmluZ3xtYXg6MjI1JywKICAgICAgICAgICAgJ2Rlc2NfYXInPT4ncmVxdWlyZWQnLAogICAgICAgICAgICAnZGVzY19lbic9PidyZXF1aXJlZCcsCiAgICAgICAgICAgICdjYXRlZ29yeV9pZCc9PidyZXF1aXJlZHxudW1lcmljfGV4aXN0czpjYXRlZ29yaWVzLGlkJywKICAgICAgICAgICAgJ29sZF9pZCc9PidudWxsYWJsZXxudW1lcmljJywKICAgICAgICAgICAgJ3BsYWNlcyc9PidyZXF1aXJlZHxhcnJheScsCiAgICAgICAgICAgICdpbWFnZSc9PlsncmVxdWlyZWQnLCdpbWFnZScsJ21pbWVzOmpwZWcscG5nLGpwZyxnaWYnLG5ldyBKZmlmSW1hZ2UoKV0KICAgICAgICBdKTsKCiAgICAgICAgJGRhdGFbJ2ltYWdlJ109JHRoaXMtPnVwbG9hZEZpbGUoJHJlcXVlc3QtPmZpbGUoJ2ltYWdlJyksJ2NvdXJzZXMnKTsKICAgICAgICAkZGF0YVsnc3RhdHVzJ109MTsKCiAgICAgICAgJGNyZWF0ZUNvdXJzZSA9IENvdXJzZTo6Y3JlYXRlKCRkYXRhKTsKICAgICAgICAkY3JlYXRlQ291cnNlLT5wbGFjZXMoKS0+c3luYygkcmVxdWVzdC0+cGxhY2VzKTsKCiAgICAgICAgcmV0dXJuIHJlZGlyZWN0KCdhZG1pbi9jb3Vyc2VzJyktPndpdGgoJ3N1Y2Nlc3MnLCAnc3VjY2VzcycpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBlZGl0KENvdXJzZSAkY291cnNlKTogVmlldwogICAgewogICAgICAgICRjYXRlZ29yaWVzID0gQ2F0ZWdvcnk6OndoZXJlKCdzdGF0dXMnLDEpLT5nZXQoKTsKICAgICAgICAkcGxhY2VzID0gUGxhY2U6OmFsbCgpOwoKICAgICAgICByZXR1cm4gdmlldygnY291cnNlczo6Y291cnNlcy5lZGl0Jyxjb21wYWN0KCdjYXRlZ29yaWVzJywnY291cnNlJywncGxhY2VzJykpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB1cGRhdGUoUmVxdWVzdCAkcmVxdWVzdCwgQ291cnNlICRjb3Vyc2UpOiBSZWRpcmVjdFJlc3BvbnNlCiAgICB7CiAgICAgICAgJGRhdGEgPSAkcmVxdWVzdC0+dmFsaWRhdGUoWwogICAgICAgICAgICAndGl0bGVfYXInPT4ncmVxdWlyZWR8c3RyaW5nfG1heDoyMjUnLAogICAgICAgICAgICAndGl0bGVfZW4nPT4ncmVxdWlyZWR8c3RyaW5nfG1heDoyMjUnLAogICAgICAgICAgICAnZGVzY19hcic9PidyZXF1aXJlZCcsCiAgICAgICAgICAgICdkZXNjX2VuJz0+J3JlcXVpcmVkJywKICAgICAgICAgICAgJ29sZF9pZCc9PidudWxsYWJsZXxudW1lcmljJywKICAgICAgICAgICAgJ3BsYWNlcyc9PidyZXF1aXJlZHxhcnJheScsCiAgICAgICAgICAgICdjYXRlZ29yeV9pZCc9PidyZXF1aXJlZHxudW1lcmljfGV4aXN0czpjYXRlZ29yaWVzLGlkJywKICAgICAgICAgICAgJ2ltYWdlJz0+WydpbWFnZScsJ21pbWVzOmpwZWcscG5nLGpwZyxnaWYnLG5ldyBKZmlmSW1hZ2UoKV0KICAgICAgICBdKTsKCiAgICAgICAgaWYoJHJlcXVlc3QtPmltYWdlKSRkYXRhWydpbWFnZSddPSR0aGlzLT51cGxvYWQoJHJlcXVlc3QtPmZpbGUoJ2ltYWdlJyksJ2NvdXJzZXMnKTsKCiAgICAgICAgJHN0YXR1cyA9ICRjb3Vyc2UtPnVwZGF0ZSgkZGF0YSk7CiAgICAgICAgJGNvdXJzZS0+cGxhY2VzKCktPnN5bmMoJHJlcXVlc3QtPnBsYWNlcyk7CiAgICAgICAgJHN0YXR1cz0oJHN0YXR1cyk/J3VwZGF0ZWQnOidmYWlsZWQnOwoKICAgICAgICByZXR1cm4gcmVkaXJlY3QoJ2FkbWluL2NvdXJzZXMnKS0+d2l0aCgndXBkYXRlZCcsICRzdGF0dXMpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBkZXN0cm95KCRpZCk6IFJlZGlyZWN0UmVzcG9uc2UKICAgIHsKICAgICAgICAkY291cnNlID0gQ291cnNlOjp3aGVyZSgnaWQnLCRpZCktPmZpcnN0KCk7CiAgICAgICAgJGNvdXJzZS0+cGxhY2VzKCktPmRlbGV0ZSgpOwogICAgICAgICRzdGF0dXMgPSAkY291cnNlLT5kZWxldGUoKTsKCiAgICAgICAgcmV0dXJuIHJlZGlyZWN0KCdhZG1pbi9jb3Vyc2VzJyktPndpdGgoJ2RlbGV0ZWQnLCAkc3RhdHVzKTsKICAgIH0KCgogICAgcHVibGljIGZ1bmN0aW9uIGNoYW5nZVN0YXR1cygkaWQpCiAgICB7CiAgICAgICAgJGNvdXJzZSA9IENvdXJzZTo6d2l0aChbJ2NhdGVnb3J5J10pLT5maW5kT3JGYWlsKCRpZCk7CgogICAgICAgIGlmKCRjb3Vyc2UtPmNhdGVnb3J5LT5zdGF0dXMgPT0gMiAmJiAkY291cnNlLT5zdGF0dXM9PTIpCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gXHJlc3BvbnNlKCktPmpzb24oWydtZXNzYWdlJz0+J9mK2KzYqCDYqtmB2LnZitmEINin2YTZgtiz2YUg2KfZhNiu2KfYtSDYqNmH2LDYpyDYp9mE2YPZiNix2LMg2KfZiNmE2KcnXSk7CiAgICAgICAgfQoKICAgICAgICAkc3RhdHVzID0gJGNvdXJzZS0+c3RhdHVzPT0xPzI6MTsKICAgICAgICAkY291cnNlLT51cGRhdGUoWyJzdGF0dXMiPT4kc3RhdHVzXSk7CiAgICB9Cn0K"));

Function Calls

base64_decode 1

Variables

None

Stats

MD5 da717dbd8a44737cff0bd470950f25c3
Eval Count 1
Decode Time 61 ms