public function renderPhpFile($_file_, $_params_ = [])
{
$_obInitialLevel_ = ob_get_level();
ob_start();
ob_implicit_flush(false);
extract($_params_, EXTR_OVERWRITE);
try {
require $_file_;
return ob_get_clean();
} catch (\Exception $e) {
while (ob_get_level() > $_obInitialLevel_) {
if (!@ob_end_clean()) {
ob_clean();
}
}
throw $e;
} catch (\Throwable $e) {
while (ob_get_level() > $_obInitialLevel_) {
if (!@ob_end_clean()) {
ob_clean();
}
}
throw $e;
}
}
// запрос на тестовый адрес
$url = 'https://goooooogle.com/my-ip.php';
// ip и порт прокси
$proxy = '100.000.00.01:8080';
// если требуется авторизация на прокси-сервере
//$proxyauth = 'user:password';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
// подключение к прокси-серверу
curl_setopt($ch, CURLOPT_PROXY, $proxy);
// если требуется авторизация
// curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyauth);
// отправка запроса
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
$curl_scraped_page = curl_exec($ch);
curl_close($ch);
// вывод ответа сервера
// должен вернуть все заголовки и ip с которого
// было обращение, в данном случае это 100.000.00.01
var_dump($curl_scraped_page);
class Test{
private $option;
getOption():Example{
return $this->option
}
setOption(Example $option){
$this->option=$option;
}
}
Есть GET метод удаления записи.
ObjectHelper::getValue($payment,'customer.firstname',$defaultValue);
$content = '<?php
require_once $_SERVER[\'DOCUMENT_ROOT\']."/mycomponents/getoffices.php";
echo getOffices(32, 44);
?>';
а все проверки вроде "а может ли текущий пользователь удалять других пользователей" или "может ли пользователь просматривать других пользователей"
классы остаются незащищенными, если вдруг какая-то проверка окажется дырявой ...