Compare commits

..

No commits in common. "master" and "redirect-uri" have entirely different histories.

3 changed files with 4 additions and 17 deletions

View File

@ -4,8 +4,6 @@ use SokoWeb\Interfaces\Database\IConnection;
use SokoWeb\Interfaces\Database\IResultSet;
use SokoWeb\Interfaces\Database\IStatement;
use mysqli;
use DateTime;
use DateTimeZone;
class Connection implements IConnection
{
@ -111,16 +109,5 @@ class Connection implements IConnection
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$this->connection = new mysqli($this->host, $this->user, $this->password, $this->db, $this->port, $this->socket);
$this->connection->set_charset('utf8mb4');
$this->connection->query('SET time_zone = \'' . $this->getTimeZone() . '\'');
}
private function getTimeZone(): string {
$tz = new DateTimeZone(date_default_timezone_get());
$offset = $tz->getOffset(new DateTime('now', new DateTimeZone('UTC')));
$hours = intdiv($offset, 3600);
$minutes = abs(($offset % 3600) / 60);
return sprintf("%+03d:%02d", $hours, $minutes);
}
}

View File

@ -170,7 +170,7 @@ class HttpResponse
$this->request->session()->set('redirect_after_login', $this->rawUrl);
$response = new Redirect(
$this->routeCollection->getRoute($this->appConfig['loginRouteId'])
->generateLink(['redirect_after_login' => $this->rawUrl]),
->generateLink(['redirect_after_login' => urlencode($this->rawUrl)]),
IRedirect::TEMPORARY);
header('Location: ' . $this->getRedirectUrl($response), true, $response->getHttpCode());
}

View File

@ -34,7 +34,7 @@ class Route implements IRoute
foreach ($this->pattern as $fragment) {
if (preg_match('/^{(\\w+)(\\?)?}$/', $fragment, $matches) === 1) {
if (isset($parameters[$matches[1]])) {
$link[] = rawurlencode($parameters[$matches[1]]);
$link[] = $parameters[$matches[1]];
unset($parameters[$matches[1]]);
} elseif (!isset($matches[2])) {//TODO: why? parameter not found but not optional
$link[] = $fragment;
@ -53,7 +53,7 @@ class Route implements IRoute
$queryParams[$key] = $value;
}
$query = count($queryParams) > 0 ? '?' . http_build_query($queryParams, encoding_type: PHP_QUERY_RFC3986) : '';
$query = count($queryParams) > 0 ? '?' . http_build_query($queryParams) : '';
return '/' . implode('/', $link) . $query;
}
@ -64,7 +64,7 @@ class Route implements IRoute
foreach ($path as $i => $fragment) {
if (preg_match('/^{(\\w+)(?:\\?)?}$/', $this->pattern[$i], $matches) === 1) {
$parameters[$matches[1]] = rawurldecode($fragment);
$parameters[$matches[1]] = $fragment;
} elseif ($fragment != $this->pattern[$i]) {
return null;
}