From 5df5a0ad7a40a5ce2a01a98d4e5fc876a16652ba Mon Sep 17 00:00:00 2001 From: Chris Date: Tue, 10 Jun 2025 11:50:24 +0200 Subject: [PATCH] added logging --- src/helpers.php | 19 +++++++++++++ web/index.php | 73 ++++++++++++++++++++++++++----------------------- 2 files changed, 58 insertions(+), 34 deletions(-) diff --git a/src/helpers.php b/src/helpers.php index 612b704..bb217e1 100755 --- a/src/helpers.php +++ b/src/helpers.php @@ -13,4 +13,23 @@ function renderTemplate($templatename,$variables=[],$basepath=ROOT.'/src') ob_end_clean(); return $rendered; +} + +function addToLog($data) +{ + $fp = fopen(ROOT.DS.'logs'.DS.'app.log','a'); + fwrite($fp,date("d.m.y H:i")."\t".$data."\n"); + fclose($fp); +} + +function getUserIP() +{ + if (!empty($_SERVER['HTTP_CLIENT_IP'])) { + $ip = $_SERVER['HTTP_CLIENT_IP']; + } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { + $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; + } else { + $ip = $_SERVER['REMOTE_ADDR']; + } + return $ip; } \ No newline at end of file diff --git a/web/index.php b/web/index.php index 56a8310..5997edd 100755 --- a/web/index.php +++ b/web/index.php @@ -1,66 +1,71 @@ addArguments(['--headless', '--disable-gpu', '--no-sandbox', '--disable-dev-shm-usage']); - + $capabilities = DesiredCapabilities::chrome(); $capabilities->setCapability(\Facebook\WebDriver\Chrome\ChromeOptions::CAPABILITY, $options); //disable javascript if $js is false - if(!$js) + if (!$js) $capabilities->setCapability('javascriptEnabled', false); - $driver = RemoteWebDriver::create($serverUrl, $capabilities); - $driver->get($target); + try { + $driver = RemoteWebDriver::create($serverUrl, $capabilities); + $driver->get($target); + //hide scroll bars + $driver->executeScript('document.body.style.overflow = "hidden";'); - //hide scroll bars - $driver->executeScript('document.body.style.overflow = "hidden";'); - - //set screenshot size to 1920x1080 - //$driver->manage()->window()->setSize(new \Facebook\WebDriver\WebDriverDimension(1024, 768)); - //if $viewport is set, set window size - if($viewport) - { - $viewport = explode('x',$viewport); - $driver->manage()->window()->setSize(new \Facebook\WebDriver\WebDriverDimension($viewport[0], $viewport[1])); - } - else - { - $driver->manage()->window()->setSize(new \Facebook\WebDriver\WebDriverDimension(1024, 768)); + //set screenshot size to 1920x1080 + //$driver->manage()->window()->setSize(new \Facebook\WebDriver\WebDriverDimension(1024, 768)); + //if $viewport is set, set window size + if ($viewport) { + $viewport = explode('x', $viewport); + $driver->manage()->window()->setSize(new \Facebook\WebDriver\WebDriverDimension($viewport[0], $viewport[1])); + } else { + $driver->manage()->window()->setSize(new \Facebook\WebDriver\WebDriverDimension(1024, 768)); + } + addToLog("$ip\tRequested $target with viewport " . implode('x', $viewport) . " and js " . ($js ? 'enabled' : 'disabled')); + } catch (Exception $e) { + header('HTTP/1.0 500 Internal Server Error'); + addToLog("$ip\tRequested $target but resulted in error:\t" . $e->getMessage()); + echo 'Error: ' . $e->getMessage(); + exit; } // take screenshot and save to file @@ -68,8 +73,8 @@ switch($url[0]) header('Content-Type: image/png'); echo $driver->takeScreenshot(); - break; + break; default: echo renderTemplate('index.html.php'); break; -} \ No newline at end of file +}