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 |
Stats
MD5 | da717dbd8a44737cff0bd470950f25c3 |
Eval Count | 1 |
Decode Time | 61 ms |