Код запускается только в том случае, если к странице обращается пользователь - PullRequest
0 голосов
/ 07 мая 2019

Это код для моего 404.php:

<?php
include $basedir  . 'includes/pageheader.php';
require dirname(__FILE__) . './vendor/autoload.php';
use Monolog\Logger;
use Monolog\Handler\StreamHandler;

$username = isset($_SESSION['username']) ? trim($_SESSION['username']) : '';

//code in question
$log = new Logger('404.php');
$log->pushHandler(new StreamHandler(dirname(__FILE__) . './log/db_queries.log', Logger::ERROR));
// $log->error($error['message'] . '. SQL query which caused the error: ' . $error['sqltext']);
$log->error("404 Error: ", array('username' => $username, 'module' => $_SERVER['PHP_SELF'], 'page_name' => '404.php', 'error_at' => 'line 9', 'severity' => 'ERROR', 'error_msg' => '404 Bad Request. IP Address:' . "'" . $_SERVER['REMOTE_ADDR'] . "'" . 'Server name: ' . "'" . $_SERVER['SERVER_NAME'] . "'"));
// code in question

echo "404 page hit";

Проблема в том, что этот код работает и выполняет запись журнала в моем журнале, независимо от того, что, даже если пользователь никогда не получает этостр.Эта страница отображается, если пользователь получает сообщение об ошибке 404, которое вызывается через мою страницу .htaccess:

ErrorDocument 404 /wam/404.php

Как мне остановить этот код регистрации, независимо от того, что и постоянно создавая журналы?Я хочу, чтобы код регистрации запускался только в том случае, если пользователь фактически перенаправлен на страницу 404.php.

Это может быть мое невежество относительно того, как код запускается в php, кажется, что все страницы отображаются на сервере, несмотря ни на что?Даже если страница никогда не запрашивается / не просматривается пользователем?

...