Warning (2): file_put_contents(/home/pdemos/sales.physicsdemos/logs/debug.log): failed to open stream: Permission denied [CORE/src/Log/Engine/FileLog.php, line 133]Code Contextif (!$mask) {
return file_put_contents($pathname, $output, FILE_APPEND);
}
$level = 'info' $message = 'Array ( [host] => sales.physicsdemos.com [url] => /preview/view/3209 [type] => guest [lang] => en [ip] => 216.73.216.204 ) ' $context = [ 'scope' => [] ] $output = '2025-06-30 21:40:41 Info: Array ( [host] => sales.physicsdemos.com [url] => /preview/view/3209 [type] => guest [lang] => en [ip] => 216.73.216.204 ) ' $filename = 'debug.log' $pathname = '/home/pdemos/sales.physicsdemos/logs/debug.log' $mask = nullfile_put_contents - [internal], line ?? Cake\Log\Engine\FileLog::log() - CORE/src/Log/Engine/FileLog.php, line 133 Cake\Log\Log::write() - CORE/src/Log/Log.php, line 384 Cake\Log\Log::info() - CORE/src/Log/Log.php, line 517 App\Controller\AppController::beforeFilter() - APP/Controller/AppController.php, line 146 App\Controller\VideosController::beforeFilter() - APP/Controller/VideosController.php, line 33 Cake\Event\EventManager::_callListener() - CORE/src/Event/EventManager.php, line 416 Cake\Event\EventManager::dispatch() - CORE/src/Event/EventManager.php, line 393 Cake\Controller\Controller::dispatchEvent() - CORE/src/Event/EventDispatcherTrait.php, line 110 Cake\Controller\Controller::startupProcess() - CORE/src/Controller/Controller.php, line 502 Cake\Http\ActionDispatcher::_invoke() - CORE/src/Http/ActionDispatcher.php, line 114 Cake\Http\ActionDispatcher::dispatch() - CORE/src/Http/ActionDispatcher.php, line 93 Cake\Routing\Dispatcher::dispatch() - CORE/src/Routing/Dispatcher.php, line 60 [main] - ROOT/webroot/index.php, line 36
Warning (2): file_put_contents(/home/pdemos/sales.physicsdemos/logs/audit.log) [<a href='https://secure.php.net/function.file-put-contents'>function.file-put-contents</a>]: failed to open stream: Permission denied [CORE/src/Log/Engine/FileLog.php, line 133]Code Contextif (!$mask) {
return file_put_contents($pathname, $output, FILE_APPEND);
}
$level = 'info' $message = 'Array ( [host] => sales.physicsdemos.com [url] => /preview/view/3209 [type] => guest [lang] => en [ip] => 216.73.216.204 ) ' $context = [ 'scope' => [] ] $output = '2025-06-30 21:40:41 Info: Array ( [host] => sales.physicsdemos.com [url] => /preview/view/3209 [type] => guest [lang] => en [ip] => 216.73.216.204 ) ' $filename = 'audit.log' $pathname = '/home/pdemos/sales.physicsdemos/logs/audit.log' $mask = nullfile_put_contents - [internal], line ?? Cake\Log\Engine\FileLog::log() - CORE/src/Log/Engine/FileLog.php, line 133 Cake\Log\Log::write() - CORE/src/Log/Log.php, line 384 Cake\Log\Log::info() - CORE/src/Log/Log.php, line 517 App\Controller\AppController::beforeFilter() - APP/Controller/AppController.php, line 146 App\Controller\VideosController::beforeFilter() - APP/Controller/VideosController.php, line 33 Cake\Event\EventManager::_callListener() - CORE/src/Event/EventManager.php, line 416 Cake\Event\EventManager::dispatch() - CORE/src/Event/EventManager.php, line 393 Cake\Controller\Controller::dispatchEvent() - CORE/src/Event/EventDispatcherTrait.php, line 110 Cake\Controller\Controller::startupProcess() - CORE/src/Controller/Controller.php, line 502 Cake\Http\ActionDispatcher::_invoke() - CORE/src/Http/ActionDispatcher.php, line 114 Cake\Http\ActionDispatcher::dispatch() - CORE/src/Http/ActionDispatcher.php, line 93 Cake\Routing\Dispatcher::dispatch() - CORE/src/Routing/Dispatcher.php, line 60 [main] - ROOT/webroot/index.php, line 36
Warning (2): file_put_contents(/home/pdemos/sales.physicsdemos/logs/error.log) [<a href='https://secure.php.net/function.file-put-contents'>function.file-put-contents</a>]: failed to open stream: Permission denied [CORE/src/Log/Engine/FileLog.php, line 133]Code Contextif (!$mask) {
return file_put_contents($pathname, $output, FILE_APPEND);
}
$level = 'warning' $message = 'Headers already sent in /home/pdemos/sales.physicsdemos/vendor/cakephp/cakephp/src/Error/Debugger.php:850' $context = [ 'scope' => [] ] $output = '2025-06-30 21:40:41 Warning: Headers already sent in /home/pdemos/sales.physicsdemos/vendor/cakephp/cakephp/src/Error/Debugger.php:850 ' $filename = 'error.log' $pathname = '/home/pdemos/sales.physicsdemos/logs/error.log' $mask = nullfile_put_contents - [internal], line ?? Cake\Log\Engine\FileLog::log() - CORE/src/Log/Engine/FileLog.php, line 133 Cake\Log\Log::write() - CORE/src/Log/Log.php, line 384 Cake\Log\Log::warning() - CORE/src/Log/Log.php, line 469 Cake\Http\Response::sendHeaders() - CORE/src/Http/Response.php, line 517 Cake\Http\Response::send() - CORE/src/Http/Response.php, line 492 Cake\Error\ErrorHandler::_sendResponse() - CORE/src/Error/ErrorHandler.php, line 197 Cake\Error\ErrorHandler::_displayException() - CORE/src/Error/ErrorHandler.php, line 140 Cake\Error\BaseErrorHandler::handleException() - CORE/src/Error/BaseErrorHandler.php, line 187 Cake\Error\BaseErrorHandler::wrapAndHandleException() - CORE/src/Error/BaseErrorHandler.php, line 171 [main] - [internal], line ??
Error: SQLSTATE[HY000] [1045] Access denied for user 'root'@'server.physicsdemos.com' (using password: YES)
$connection = new PDO( |
|
$dsn, |
|
$config['username'], |
|
$config['password'], |
|
$config['flags'] |
|
); |
|
$this->connection($connection); |
|
|
|
return true; |
'mysql:host=mariadb;port=3306;dbname=pdemos_videos;charset=utf8' 'root' 'physics123' [ (int) 12 => false, (int) 1000 => true, (int) 3 => (int) 2 ]
} else { |
|
$dsn = "mysql:unix_socket={$config['unix_socket']};dbname={$config['database']}"; |
|
} |
|
|
|
$this->_connect($dsn, $config); |
|
|
|
if (!empty($config['init'])) { |
|
$connection = $this->connection(); |
|
foreach ((array)$config['init'] as $command) { |
'mysql:host=mariadb;port=3306;dbname=pdemos_videos;charset=utf8' [ 'driver' => 'Cake\Database\Driver\Mysql', 'persistent' => false, 'host' => 'mariadb', 'username' => 'root', 'password' => 'physics123', 'database' => 'pdemos_videos', 'encoding' => 'utf8', 'timezone' => '+0:00', 'cacheMetadata' => true, 'log' => false, 'quoteIdentifiers' => false, 'name' => 'default', 'port' => '3306', 'flags' => [ (int) 12 => false, (int) 1000 => true, (int) 3 => (int) 2 ], 'init' => [ (int) 0 => 'SET time_zone = '+0:00'', (int) 1 => 'SET NAMES utf8' ] ]
* @param \Cake\Database\Driver $driver The driver to use. |
|
*/ |
|
public function __construct(Driver $driver) |
|
{ |
|
$driver->connect(); |
|
$this->_driver = $driver; |
|
} |
|
|
|
/** |
No arguments
*/ |
|
public function schemaDialect() |
|
{ |
|
if (!$this->_schemaDialect) { |
|
$this->_schemaDialect = new MysqlSchema($this); |
|
} |
|
|
|
return $this->_schemaDialect; |
|
} |
object(Cake\Database\Driver\Mysql) { 'connected' => false }
*/ |
|
public function __construct(Connection $connection) |
|
{ |
|
$this->_connection = $connection; |
|
$this->_dialect = $connection->getDriver()->schemaDialect(); |
|
} |
|
|
|
/** |
|
* Get the list of tables available in the current connection. |
No arguments
* @param string|bool $cacheKey The cache key or boolean false to disable caching. |
|
*/ |
|
public function __construct(ConnectionInterface $connection, $cacheKey = true) |
|
{ |
|
parent::__construct($connection); |
|
$this->setCacheMetadata($cacheKey); |
|
} |
|
|
|
/** |
object(Cake\Database\Connection) { 'config' => [ 'password' => '*****', 'username' => '*****', 'host' => '*****', 'database' => '*****', 'driver' => 'Cake\Database\Driver\Mysql', 'persistent' => false, 'encoding' => 'utf8', 'timezone' => 'UTC', 'cacheMetadata' => true, 'log' => false, 'quoteIdentifiers' => false, 'name' => 'default' ], 'driver' => object(Cake\Database\Driver\Mysql) { 'connected' => false }, 'transactionLevel' => (int) 0, 'transactionStarted' => false, 'useSavePoints' => false, 'logQueries' => false, 'logger' => null }
return $this->_schemaCollection; |
|
} |
|
|
|
if (!empty($this->_config['cacheMetadata'])) { |
|
return $this->_schemaCollection = new CachedCollection($this, $this->_config['cacheMetadata']); |
|
} |
|
|
|
return $this->_schemaCollection = new SchemaCollection($this); |
|
} |
object(Cake\Database\Connection) { 'config' => [ 'password' => '*****', 'username' => '*****', 'host' => '*****', 'database' => '*****', 'driver' => 'Cake\Database\Driver\Mysql', 'persistent' => false, 'encoding' => 'utf8', 'timezone' => 'UTC', 'cacheMetadata' => true, 'log' => false, 'quoteIdentifiers' => false, 'name' => 'default' ], 'driver' => object(Cake\Database\Driver\Mysql) { 'connected' => false }, 'transactionLevel' => (int) 0, 'transactionStarted' => false, 'useSavePoints' => false, 'logQueries' => false, 'logger' => null } true
{ |
|
if ($this->_schema === null) { |
|
$this->_schema = $this->_initializeSchema( |
|
$this->getConnection() |
|
->getSchemaCollection() |
|
->describe($this->getTable()) |
|
); |
|
} |
|
|
No arguments
*/ |
|
public function addDefaultTypes(Table $table) |
|
{ |
|
$alias = $table->getAlias(); |
|
$map = $table->getSchema()->typeMap(); |
|
$fields = []; |
|
foreach ($map as $f => $type) { |
|
$fields[$f] = $fields[$alias . '.' . $f] = $fields[$alias . '__' . $f] = $type; |
|
} |
No arguments
parent::__construct($connection); |
|
$this->repository($table); |
|
|
|
if ($this->_repository) { |
|
$this->addDefaultTypes($this->_repository); |
|
} |
|
} |
|
|
|
/** |
object(App\Model\Table\VideosTable) { 'registryAlias' => 'Videos', 'table' => 'videos', 'alias' => 'Videos', 'entityClass' => 'App\Model\Entity\Video', 'associations' => [ (int) 0 => 'chapters' ], 'behaviors' => [ (int) 0 => 'Searchable' ], 'defaultConnection' => 'default', 'connectionName' => 'default' }
* {@inheritDoc} |
|
*/ |
|
public function query() |
|
{ |
|
return new Query($this->getConnection(), $this); |
|
} |
|
|
|
/** |
|
* {@inheritDoc} |
object(Cake\Database\Connection) { 'config' => [ 'password' => '*****', 'username' => '*****', 'host' => '*****', 'database' => '*****', 'driver' => 'Cake\Database\Driver\Mysql', 'persistent' => false, 'encoding' => 'utf8', 'timezone' => 'UTC', 'cacheMetadata' => true, 'log' => false, 'quoteIdentifiers' => false, 'name' => 'default' ], 'driver' => object(Cake\Database\Driver\Mysql) { 'connected' => false }, 'transactionLevel' => (int) 0, 'transactionStarted' => false, 'useSavePoints' => false, 'logQueries' => false, 'logger' => null } object(App\Model\Table\VideosTable) { 'registryAlias' => 'Videos', 'table' => 'videos', 'alias' => 'Videos', 'entityClass' => 'App\Model\Entity\Video', 'associations' => [ (int) 0 => 'chapters' ], 'behaviors' => [ (int) 0 => 'Searchable' ], 'defaultConnection' => 'default', 'connectionName' => 'default' }
* @return \Cake\ORM\Query The query builder |
|
*/ |
|
public function find($type = 'all', $options = []) |
|
{ |
|
$query = $this->query(); |
|
$query->select(); |
|
|
|
return $this->callFinder($type, $query, $options); |
|
} |
No arguments
|
|
$video = $this->Videos->find('all', [ |
|
'conditions' => [ |
|
'text_id' => $text_id, |
|
'lang' => I18n::locale(), |
|
] |
|
])->first(); |
|
|
|
$id = $this->VideoStash->stashAddr("/videos/get/$key/pl.m3u8"); |
'all' [ 'conditions' => [ 'text_id' => '3209', 'lang' => 'en' ] ]
} |
|
/* @var callable $callable */ |
|
$callable = [$this, $request->getParam('action')]; |
|
|
|
return $callable(...array_values($request->getParam('pass'))); |
|
} |
|
|
|
/** |
|
* Merge components, helpers vars from |
'3209'
if ($result instanceof Response) { |
|
return $result; |
|
} |
|
|
|
$response = $controller->invokeAction(); |
|
if ($response !== null && !($response instanceof Response)) { |
|
throw new LogicException('Controller actions can only return Cake\Http\Response or null.'); |
|
} |
|
|
No arguments
} else { |
|
$controller = $this->factory->create($request, $response); |
|
} |
|
|
|
$response = $this->_invoke($controller); |
|
if (isset($request->params['return'])) { |
|
return $response; |
|
} |
|
|
object(App\Controller\VideosController) { components => [ 'VideoStash' => null, 'Search.Prg' => null, 'Cookie' => null ] name => 'Videos' helpers => [] request => object(Cake\Http\ServerRequest) { params => [ [maximum depth reached] ] data => [[maximum depth reached]] query => [[maximum depth reached]] cookies => [[maximum depth reached]] url => 'preview/view/3209' base => '' webroot => '/' here => '/preview/view/3209' trustProxy => false [protected] _environment => [ [maximum depth reached] ] [protected] _input => null [protected] _detectors => [ [maximum depth reached] ] [protected] _detectorCache => [ [maximum depth reached] ] [protected] stream => object(Zend\Diactoros\PhpInputStream) {} [protected] uri => object(Zend\Diactoros\Uri) {} [protected] session => object(Cake\Network\Session) {} [protected] attributes => [[maximum depth reached]] [protected] emulatedAttributes => [ [maximum depth reached] ] [protected] uploadedFiles => [[maximum depth reached]] [protected] protocol => null [protected] requestTarget => null } response => object(Cake\Http\Response) { 'status' => (int) 200, 'contentType' => 'text/html', 'headers' => [ [maximum depth reached] ], 'file' => null, 'fileRange' => [[maximum depth reached]], 'cookies' => object(Cake\Http\Cookie\CookieCollection) {}, 'cacheDirectives' => [[maximum depth reached]], 'body' => '' } paginate => [] autoRender => true View => null plugin => null passedArgs => [ (int) 0 => '3209' ] modelClass => 'Videos' viewClass => null viewVars => [ 'lang' => 'en' ] RequestHandler => object(Cake\Controller\Component\RequestHandlerComponent) { 'components' => [[maximum depth reached]], 'implementedEvents' => [ [maximum depth reached] ], '_config' => [ [maximum depth reached] ] } Flash => object(Cake\Controller\Component\FlashComponent) { 'components' => [[maximum depth reached]], 'implementedEvents' => [[maximum depth reached]], '_config' => [ [maximum depth reached] ] } Auth => object(Cake\Controller\Component\AuthComponent) { 'components' => [ [maximum depth reached] ], 'implementedEvents' => [ [maximum depth reached] ], '_config' => [ [maximum depth reached] ] } Chapters => object(App\Model\Table\ChaptersTable) { 'registryAlias' => 'Chapters', 'table' => 'chapters', 'alias' => 'Chapters', 'entityClass' => 'App\Model\Entity\Chapter', 'associations' => [ [maximum depth reached] ], 'behaviors' => [[maximum depth reached]], 'defaultConnection' => 'default', 'connectionName' => 'default' } VideoStash => object(App\Controller\Component\VideoStashComponent) { 'components' => [ [maximum depth reached] ], 'implementedEvents' => [[maximum depth reached]], '_config' => [[maximum depth reached]] } presetVars => [ (int) 0 => [ 'type' => 'value', 'encode' => 'true', 'field' => 'chapterId' ], (int) 1 => [ 'type' => 'value', 'field' => 'videoId', 'connectorAnd' => ' ', 'connectorOr' => ',' ], (int) 2 => [ 'type' => 'value', 'field' => 'keyword', 'connectorAnd' => ' ', 'connectorOr' => ',' ], (int) 3 => [ 'type' => 'value', 'field' => 'subject', 'connectorAnd' => ' ', 'connectorOr' => ',' ], (int) 4 => [ 'type' => 'value', 'field' => 'schoolType' ] ] Videos => object(App\Model\Table\VideosTable) { 'registryAlias' => 'Videos', 'table' => 'videos', 'alias' => 'Videos', 'entityClass' => 'App\Model\Entity\Video', 'associations' => [ [maximum depth reached] ], 'behaviors' => [ [maximum depth reached] ], 'defaultConnection' => 'default', 'connectionName' => 'default' } Prg => object(Search\Controller\Component\PrgComponent) { 'components' => [[maximum depth reached]], 'implementedEvents' => [[maximum depth reached]], '_config' => [ [maximum depth reached] ] } Cookie => object(Cake\Controller\Component\CookieComponent) { 'components' => [[maximum depth reached]], 'implementedEvents' => [[maximum depth reached]], '_config' => [ [maximum depth reached] ] } [protected] _responseClass => 'Cake\Http\Response' [protected] _components => object(Cake\Controller\ComponentRegistry) { '_Controller' => object(App\Controller\VideosController) {}, '_loaded' => [ [maximum depth reached] ], '_eventManager' => object(Cake\Event\EventManager) {}, '_eventClass' => '\Cake\Event\Event' } [protected] _validViewOptions => [ (int) 0 => 'passedArgs' ] [protected] _eventManager => object(Cake\Event\EventManager) { '_listeners' => [ [maximum depth reached] ], '_isGlobal' => false, '_trackEvents' => false, '_generalManager' => '(object) EventManager', '_dispatchedEvents' => null } [protected] _eventClass => '\Cake\Event\Event' [protected] _tableLocator => object(Cake\ORM\Locator\TableLocator) { [protected] _config => [[maximum depth reached]] [protected] _instances => [ [maximum depth reached] ] [protected] _fallbacked => [[maximum depth reached]] [protected] _options => [ [maximum depth reached] ] } [protected] _modelFactories => [ 'Table' => [ (int) 0 => object(Cake\ORM\Locator\TableLocator) {}, (int) 1 => 'get' ] ] [protected] _modelType => 'Table' [protected] _viewBuilder => object(Cake\View\ViewBuilder) { [protected] _templatePath => null [protected] _template => null [protected] _plugin => null [protected] _theme => null [protected] _layout => 'default' [protected] _autoLayout => null [protected] _layoutPath => null [protected] _name => null [protected] _className => null [protected] _options => [[maximum depth reached]] [protected] _helpers => [[maximum depth reached]] } }
*/ |
|
public function dispatch(ServerRequest $request, Response $response) |
|
{ |
|
$actionDispatcher = new ActionDispatcher(null, $this->getEventManager(), $this->_filters); |
|
$response = $actionDispatcher->dispatch($request, $response); |
|
if (isset($request->params['return'])) { |
|
return $response->body(); |
|
} |
|
|
object(Cake\Http\ServerRequest) { params => [ 'plugin' => null, 'controller' => 'Videos', 'action' => 'view', '_ext' => null, 'pass' => [ (int) 0 => '3209' ], '_matchedRoute' => '/preview/view/*', 'isAjax' => false ] data => [] query => [] cookies => [] url => 'preview/view/3209' base => '' webroot => '/' here => '/preview/view/3209' trustProxy => false [protected] _environment => [ 'PATH' => '/usr/local/bin:/usr/bin:/bin', 'TEMP' => '/tmp', 'TMP' => '/tmp', 'TMPDIR' => '/tmp', 'PWD' => '/', 'HTTP_ACCEPT' => '*/*', 'HTTP_ACCEPT_ENCODING' => 'gzip, br, zstd, deflate', 'HTTP_CONNECTION' => 'keep-alive', 'CONTENT_LENGTH' => '0', 'HTTP_HOST' => 'sales.physicsdemos.com', 'HTTP_USER_AGENT' => 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)', 'HTTP_CACHE_CONTROL' => 'max-age=259200', 'HTTP_X_FORWARDED_FOR' => '10.3.32.66', 'HTTP_VIA' => '1.1 squid-proxy-5b5d847c96-9972t (squid/6.10)', 'REDIRECT_UNIQUE_ID' => 'aGMEWSzkMfIk2EG1TiJ7WgAAAAo', 'REDIRECT_SCRIPT_URL' => '/preview/view/3209', 'REDIRECT_SCRIPT_URI' => 'http://sales.physicsdemos.com/preview/view/3209', 'REDIRECT_STATUS' => '200', 'UNIQUE_ID' => 'aGMEWSzkMfIk2EG1TiJ7WgAAAAo', 'SCRIPT_URL' => '/preview/view/3209', 'SCRIPT_URI' => 'http://sales.physicsdemos.com/preview/view/3209', 'SERVER_SIGNATURE' => '', 'SERVER_SOFTWARE' => 'Apache', 'SERVER_NAME' => 'sales.physicsdemos.com', 'SERVER_ADDR' => '68.66.234.147', 'SERVER_PORT' => '80', 'REMOTE_ADDR' => '216.73.216.204', 'DOCUMENT_ROOT' => '/home/pdemos/sales.physicsdemos/webroot', 'REQUEST_SCHEME' => 'http', 'CONTEXT_PREFIX' => '', 'CONTEXT_DOCUMENT_ROOT' => '/home/pdemos/sales.physicsdemos/webroot', 'SERVER_ADMIN' => 'webmaster@sales.physicsdemos.com', 'SCRIPT_FILENAME' => '/home/pdemos/sales.physicsdemos/webroot/index.php', 'REMOTE_PORT' => '17022', 'REDIRECT_URL' => '/preview/view/3209', 'SERVER_PROTOCOL' => 'HTTP/1.1', 'REQUEST_METHOD' => 'GET', 'QUERY_STRING' => '', 'REQUEST_URI' => '/preview/view/3209', 'SCRIPT_NAME' => '/index.php', 'PHP_SELF' => '/index.php', 'REQUEST_TIME_FLOAT' => (float) 1751319641.8804, 'REQUEST_TIME' => (int) 1751319641, 'argv' => [], 'argc' => (int) 0, 'ORIGINAL_REQUEST_METHOD' => 'GET', 'HTTP_REFERER' => null, 'HTTP_X_REQUESTED_WITH' => null, 'HTTP_IF_NONE_MATCH' => null, 'HTTP_IF_MODIFIED_SINCE' => null ] [protected] _input => null [protected] _detectors => [ 'get' => [ 'env' => 'REQUEST_METHOD', 'value' => 'GET' ], 'post' => [ 'env' => 'REQUEST_METHOD', 'value' => 'POST' ], 'put' => [ 'env' => 'REQUEST_METHOD', 'value' => 'PUT' ], 'patch' => [ 'env' => 'REQUEST_METHOD', 'value' => 'PATCH' ], 'delete' => [ 'env' => 'REQUEST_METHOD', 'value' => 'DELETE' ], 'head' => [ 'env' => 'REQUEST_METHOD', 'value' => 'HEAD' ], 'options' => [ 'env' => 'REQUEST_METHOD', 'value' => 'OPTIONS' ], 'ssl' => [ 'env' => 'HTTPS', 'options' => [ [maximum depth reached] ] ], 'ajax' => [ 'env' => 'HTTP_X_REQUESTED_WITH', 'value' => 'XMLHttpRequest' ], 'flash' => [ 'env' => 'HTTP_USER_AGENT', 'pattern' => '/^(Shockwave|Adobe) Flash/' ], 'requested' => [ 'param' => 'requested', 'value' => (int) 1 ], 'json' => [ 'accept' => [ [maximum depth reached] ], 'param' => '_ext', 'value' => 'json' ], 'xml' => [ 'accept' => [ [maximum depth reached] ], 'param' => '_ext', 'value' => 'xml' ], 'mobile' => object(Closure) {}, 'tablet' => object(Closure) {} ] [protected] _detectorCache => [ 'ajax' => false, 'get' => true, 'head' => false, 'options' => false ] [protected] stream => object(Zend\Diactoros\PhpInputStream) { [protected] resource => resource [protected] stream => 'php://input' [private] cache => '' [private] reachedEof => false } [protected] uri => object(Zend\Diactoros\Uri) { base => '' webroot => '/' [protected] allowedSchemes => [ [maximum depth reached] ] [private] scheme => 'http' [private] userInfo => '' [private] host => 'sales.physicsdemos.com' [private] port => null [private] path => '/preview/view/3209' [private] query => '' [private] fragment => '' [private] uriString => null } [protected] session => object(Cake\Network\Session) { [protected] _engine => null [protected] _started => null [protected] _lifetime => '1440' [protected] _isCLI => false } [protected] attributes => [] [protected] emulatedAttributes => [ (int) 0 => 'session', (int) 1 => 'webroot', (int) 2 => 'base', (int) 3 => 'params' ] [protected] uploadedFiles => [] [protected] protocol => null [protected] requestTarget => null } object(Cake\Http\Response) { 'status' => (int) 200, 'contentType' => 'text/html', 'headers' => [ 'Content-Type' => [ (int) 0 => 'text/html; charset=UTF-8' ] ], 'file' => null, 'fileRange' => [], 'cookies' => object(Cake\Http\Cookie\CookieCollection) { [protected] cookies => [[maximum depth reached]] }, 'cacheDirectives' => [], 'body' => '' }
|
|
$dispatcher = DispatcherFactory::create(); |
|
$dispatcher->dispatch( |
|
Request::createFromGlobals(), |
|
new Response() |
|
); |
|
|
object(Cake\Http\ServerRequest) { params => [ 'plugin' => null, 'controller' => 'Videos', 'action' => 'view', '_ext' => null, 'pass' => [ (int) 0 => '3209' ], '_matchedRoute' => '/preview/view/*', 'isAjax' => false ] data => [] query => [] cookies => [] url => 'preview/view/3209' base => '' webroot => '/' here => '/preview/view/3209' trustProxy => false [protected] _environment => [ 'PATH' => '/usr/local/bin:/usr/bin:/bin', 'TEMP' => '/tmp', 'TMP' => '/tmp', 'TMPDIR' => '/tmp', 'PWD' => '/', 'HTTP_ACCEPT' => '*/*', 'HTTP_ACCEPT_ENCODING' => 'gzip, br, zstd, deflate', 'HTTP_CONNECTION' => 'keep-alive', 'CONTENT_LENGTH' => '0', 'HTTP_HOST' => 'sales.physicsdemos.com', 'HTTP_USER_AGENT' => 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)', 'HTTP_CACHE_CONTROL' => 'max-age=259200', 'HTTP_X_FORWARDED_FOR' => '10.3.32.66', 'HTTP_VIA' => '1.1 squid-proxy-5b5d847c96-9972t (squid/6.10)', 'REDIRECT_UNIQUE_ID' => 'aGMEWSzkMfIk2EG1TiJ7WgAAAAo', 'REDIRECT_SCRIPT_URL' => '/preview/view/3209', 'REDIRECT_SCRIPT_URI' => 'http://sales.physicsdemos.com/preview/view/3209', 'REDIRECT_STATUS' => '200', 'UNIQUE_ID' => 'aGMEWSzkMfIk2EG1TiJ7WgAAAAo', 'SCRIPT_URL' => '/preview/view/3209', 'SCRIPT_URI' => 'http://sales.physicsdemos.com/preview/view/3209', 'SERVER_SIGNATURE' => '', 'SERVER_SOFTWARE' => 'Apache', 'SERVER_NAME' => 'sales.physicsdemos.com', 'SERVER_ADDR' => '68.66.234.147', 'SERVER_PORT' => '80', 'REMOTE_ADDR' => '216.73.216.204', 'DOCUMENT_ROOT' => '/home/pdemos/sales.physicsdemos/webroot', 'REQUEST_SCHEME' => 'http', 'CONTEXT_PREFIX' => '', 'CONTEXT_DOCUMENT_ROOT' => '/home/pdemos/sales.physicsdemos/webroot', 'SERVER_ADMIN' => 'webmaster@sales.physicsdemos.com', 'SCRIPT_FILENAME' => '/home/pdemos/sales.physicsdemos/webroot/index.php', 'REMOTE_PORT' => '17022', 'REDIRECT_URL' => '/preview/view/3209', 'SERVER_PROTOCOL' => 'HTTP/1.1', 'REQUEST_METHOD' => 'GET', 'QUERY_STRING' => '', 'REQUEST_URI' => '/preview/view/3209', 'SCRIPT_NAME' => '/index.php', 'PHP_SELF' => '/index.php', 'REQUEST_TIME_FLOAT' => (float) 1751319641.8804, 'REQUEST_TIME' => (int) 1751319641, 'argv' => [], 'argc' => (int) 0, 'ORIGINAL_REQUEST_METHOD' => 'GET', 'HTTP_REFERER' => null, 'HTTP_X_REQUESTED_WITH' => null, 'HTTP_IF_NONE_MATCH' => null, 'HTTP_IF_MODIFIED_SINCE' => null ] [protected] _input => null [protected] _detectors => [ 'get' => [ 'env' => 'REQUEST_METHOD', 'value' => 'GET' ], 'post' => [ 'env' => 'REQUEST_METHOD', 'value' => 'POST' ], 'put' => [ 'env' => 'REQUEST_METHOD', 'value' => 'PUT' ], 'patch' => [ 'env' => 'REQUEST_METHOD', 'value' => 'PATCH' ], 'delete' => [ 'env' => 'REQUEST_METHOD', 'value' => 'DELETE' ], 'head' => [ 'env' => 'REQUEST_METHOD', 'value' => 'HEAD' ], 'options' => [ 'env' => 'REQUEST_METHOD', 'value' => 'OPTIONS' ], 'ssl' => [ 'env' => 'HTTPS', 'options' => [ [maximum depth reached] ] ], 'ajax' => [ 'env' => 'HTTP_X_REQUESTED_WITH', 'value' => 'XMLHttpRequest' ], 'flash' => [ 'env' => 'HTTP_USER_AGENT', 'pattern' => '/^(Shockwave|Adobe) Flash/' ], 'requested' => [ 'param' => 'requested', 'value' => (int) 1 ], 'json' => [ 'accept' => [ [maximum depth reached] ], 'param' => '_ext', 'value' => 'json' ], 'xml' => [ 'accept' => [ [maximum depth reached] ], 'param' => '_ext', 'value' => 'xml' ], 'mobile' => object(Closure) {}, 'tablet' => object(Closure) {} ] [protected] _detectorCache => [ 'ajax' => false, 'get' => true, 'head' => false, 'options' => false ] [protected] stream => object(Zend\Diactoros\PhpInputStream) { [protected] resource => resource [protected] stream => 'php://input' [private] cache => '' [private] reachedEof => false } [protected] uri => object(Zend\Diactoros\Uri) { base => '' webroot => '/' [protected] allowedSchemes => [ [maximum depth reached] ] [private] scheme => 'http' [private] userInfo => '' [private] host => 'sales.physicsdemos.com' [private] port => null [private] path => '/preview/view/3209' [private] query => '' [private] fragment => '' [private] uriString => null } [protected] session => object(Cake\Network\Session) { [protected] _engine => null [protected] _started => null [protected] _lifetime => '1440' [protected] _isCLI => false } [protected] attributes => [] [protected] emulatedAttributes => [ (int) 0 => 'session', (int) 1 => 'webroot', (int) 2 => 'base', (int) 3 => 'params' ] [protected] uploadedFiles => [] [protected] protocol => null [protected] requestTarget => null } object(Cake\Http\Response) { 'status' => (int) 200, 'contentType' => 'text/html', 'headers' => [ 'Content-Type' => [ (int) 0 => 'text/html; charset=UTF-8' ] ], 'file' => null, 'fileRange' => [], 'cookies' => object(Cake\Http\Cookie\CookieCollection) { [protected] cookies => [[maximum depth reached]] }, 'cacheDirectives' => [], 'body' => '' }
If you are using SQL keywords as table column names, you can enable identifier quoting for your database connection in config/app.php.
If you want to customize this error message, create src/Template/Error/pdo_error.ctp
Warning (2): file_put_contents(/home/pdemos/sales.physicsdemos/logs/error.log) [<a href='https://secure.php.net/function.file-put-contents'>function.file-put-contents</a>]: failed to open stream: Permission denied [CORE/src/Log/Engine/FileLog.php, line 133]Code Contextif (!$mask) {
return file_put_contents($pathname, $output, FILE_APPEND);
}
$level = 'error' $message = '[PDOException] SQLSTATE[HY000] [1045] Access denied for user 'root'@'server.physicsdemos.com' (using password: YES) in /home/pdemos/sales.physicsdemos/vendor/cakephp/cakephp/src/Database/Driver/PDODriverTrait.php on line 48 Request URL: /preview/view/3209 Client IP: 216.73.216.204 Stack Trace: #0 /home/pdemos/sales.physicsdemos/vendor/cakephp/cakephp/src/Database/Driver/PDODriverTrait.php(48): PDO->__construct('mysql:host=mari...', 'root', 'physics123', Array) #1 /home/pdemos/sales.physicsdemos/vendor/cakephp/cakephp/src/Database/Driver/Mysql.php(104): Cake\Database\Driver\Mysql->_connect('mysql:host=mari...', Array) #2 /home/pdemos/sales.physicsdemos/vendor/cakephp/cakephp/src/Database/Schema/BaseSchema.php(45): Cake\Database\Driver\Mysql->connect() #3 /home/pdemos/sales.physicsdemos/vendor/cakephp/cakephp/src/Database/Dialect/MysqlDialectTrait.php(63): Cake\Database\Schema\BaseSchema->__construct(Object(Cake\Database\Driver\Mysql)) #4 /home/pdemos/sales.physicsdemos/vendor/cakephp/cakephp/src/Database/Schema/Collection.php(52): Cake\Database\Driver\Mysql->schemaDialect() #5 /home/pdemos/sales.physicsdemos/vendor/cakephp/cakephp/src/Database/Schema/CachedCollection.php(42): Cake\Database\Schema\Collection->__construct(Object(Cake\Database\Connection)) #6 /home/pdemos/sales.physicsdemos/vendor/cakephp/cakephp/src/Database/Connection.php(369): Cake\Database\Schema\CachedCollection->__construct(Object(Cake\Database\Connection), true) #7 /home/pdemos/sales.physicsdemos/vendor/cakephp/cakephp/src/ORM/Table.php(531): Cake\Database\Connection->getSchemaCollection() #8 /home/pdemos/sales.physicsdemos/vendor/cakephp/cakephp/src/ORM/Query.php(211): Cake\ORM\Table->getSchema() #9 /home/pdemos/sales.physicsdemos/vendor/cakephp/cakephp/src/ORM/Query.php(168): Cake\ORM\Query->addDefaultTypes(Object(App\Model\Table\VideosTable)) #10 /home/pdemos/sales.physicsdemos/vendor/cakephp/cakephp/src/ORM/Table.php(1582): Cake\ORM\Query->__construct(Object(Cake\Database\Connection), Object(App\Model\Table\VideosTable)) #11 /home/pdemos/sales.physicsdemos/vendor/cakephp/cakephp/src/ORM/Table.php(1182): Cake\ORM\Table->query() #12 /home/pdemos/sales.physicsdemos/src/Controller/VideosController.php(183): Cake\ORM\Table->find('all', Array) #13 /home/pdemos/sales.physicsdemos/vendor/cakephp/cakephp/src/Controller/Controller.php(440): App\Controller\VideosController->view('3209') #14 /home/pdemos/sales.physicsdemos/vendor/cakephp/cakephp/src/Http/ActionDispatcher.php(119): Cake\Controller\Controller->invokeAction() #15 /home/pdemos/sales.physicsdemos/vendor/cakephp/cakephp/src/Http/ActionDispatcher.php(93): Cake\Http\ActionDispatcher->_invoke(Object(App\Controller\VideosController)) #16 /home/pdemos/sales.physicsdemos/vendor/cakephp/cakephp/src/Routing/Dispatcher.php(60): Cake\Http\ActionDispatcher->dispatch(Object(Cake\Http\ServerRequest), Object(Cake\Http\Response)) #17 /home/pdemos/sales.physicsdemos/webroot/index.php(36): Cake\Routing\Dispatcher->dispatch(Object(Cake\Http\ServerRequest), Object(Cake\Http\Response)) #18 {main} ' $context = [ 'scope' => [] ] $output = '2025-06-30 21:40:41 Error: [PDOException] SQLSTATE[HY000] [1045] Access denied for user 'root'@'server.physicsdemos.com' (using password: YES) in /home/pdemos/sales.physicsdemos/vendor/cakephp/cakephp/src/Database/Driver/PDODriverTrait.php on line 48 Request URL: /preview/view/3209 Client IP: 216.73.216.204 Stack Trace: #0 /home/pdemos/sales.physicsdemos/vendor/cakephp/cakephp/src/Database/Driver/PDODriverTrait.php(48): PDO->__construct('mysql:host=mari...', 'root', 'physics123', Array) #1 /home/pdemos/sales.physicsdemos/vendor/cakephp/cakephp/src/Database/Driver/Mysql.php(104): Cake\Database\Driver\Mysql->_connect('mysql:host=mari...', Array) #2 /home/pdemos/sales.physicsdemos/vendor/cakephp/cakephp/src/Database/Schema/BaseSchema.php(45): Cake\Database\Driver\Mysql->connect() #3 /home/pdemos/sales.physicsdemos/vendor/cakephp/cakephp/src/Database/Dialect/MysqlDialectTrait.php(63): Cake\Database\Schema\BaseSchema->__construct(Object(Cake\Database\Driver\Mysql)) #4 /home/pdemos/sales.physicsdemos/vendor/cakephp/cakephp/src/Database/Schema/Collection.php(52): Cake\Database\Driver\Mysql->schemaDialect() #5 /home/pdemos/sales.physicsdemos/vendor/cakephp/cakephp/src/Database/Schema/CachedCollection.php(42): Cake\Database\Schema\Collection->__construct(Object(Cake\Database\Connection)) #6 /home/pdemos/sales.physicsdemos/vendor/cakephp/cakephp/src/Database/Connection.php(369): Cake\Database\Schema\CachedCollection->__construct(Object(Cake\Database\Connection), true) #7 /home/pdemos/sales.physicsdemos/vendor/cakephp/cakephp/src/ORM/Table.php(531): Cake\Database\Connection->getSchemaCollection() #8 /home/pdemos/sales.physicsdemos/vendor/cakephp/cakephp/src/ORM/Query.php(211): Cake\ORM\Table->getSchema() #9 /home/pdemos/sales.physicsdemos/vendor/cakephp/cakephp/src/ORM/Query.php(168): Cake\ORM\Query->addDefaultTypes(Object(App\Model\Table\VideosTable)) #10 /home/pdemos/sales.physicsdemos/vendor/cakephp/cakephp/src/ORM/Table.php(1582): Cake\ORM\Query->__construct(Object(Cake\Database\Connection), Object(App\Model\Table\VideosTable)) #11 /home/pdemos/sales.physicsdemos/vendor/cakephp/cakephp/src/ORM/Table.php(1182): Cake\ORM\Table->query() #12 /home/pdemos/sales.physicsdemos/src/Controller/VideosController.php(183): Cake\ORM\Table->find('all', Array) #13 /home/pdemos/sales.physicsdemos/vendor/cakephp/cakephp/src/Controller/Controller.php(440): App\Controller\VideosController->view('3209') #14 /home/pdemos/sales.physicsdemos/vendor/cakephp/cakephp/src/Http/ActionDispatcher.php(119): Cake\Controller\Controller->invokeAction() #15 /home/pdemos/sales.physicsdemos/vendor/cakephp/cakephp/src/Http/ActionDispatcher.php(93): Cake\Http\ActionDispatcher->_invoke(Object(App\Controller\VideosController)) #16 /home/pdemos/sales.physicsdemos/vendor/cakephp/cakephp/src/Routing/Dispatcher.php(60): Cake\Http\ActionDispatcher->dispatch(Object(Cake\Http\ServerRequest), Object(Cake\Http\Response)) #17 /home/pdemos/sales.physicsdemos/webroot/index.php(36): Cake\Routing\Dispatcher->dispatch(Object(Cake\Http\ServerRequest), Object(Cake\Http\Response)) #18 {main} ' $filename = 'error.log' $pathname = '/home/pdemos/sales.physicsdemos/logs/error.log' $mask = nullfile_put_contents - [internal], line ?? Cake\Log\Engine\FileLog::log() - CORE/src/Log/Engine/FileLog.php, line 133 Cake\Log\Log::write() - CORE/src/Log/Log.php, line 384 Cake\Log\Log::error() - CORE/src/Log/Log.php, line 453 Cake\Error\BaseErrorHandler::_logException() - CORE/src/Error/BaseErrorHandler.php, line 319 Cake\Error\BaseErrorHandler::handleException() - CORE/src/Error/BaseErrorHandler.php, line 188 Cake\Error\BaseErrorHandler::wrapAndHandleException() - CORE/src/Error/BaseErrorHandler.php, line 171 [main] - [internal], line ??