I am running CakePHP 1.2.9 on my xampp server 1.8.2 with PHP version 5.4.19.
But I am getting some errors like
Strict Standards: Redefining already defined constructor for class Object in C:\xampp\htdocs\PROJECT_NAME\cake\libs\object.php on line 62
Strict Standards: Non-static method Configure::getInstance() should not be called statically in C:\xampp\htdocs\paris-clone\cake\bootstrap.php on line 46
I tried to figure this out with this, but not succeeded.
please help me with it.
Thanks
Since PHP 5.4 E_STRICT is included in E_ALL. Maybe CakePHP 1.x doesn't know of E_STRICT setting ?
http://php.net/manual/en/function.error-reporting.php
Change logging in your application to display only errors:
'level' => E_ERROR | E_WARNING | E_PARSE,
Or set in in php.ini.
You might also want to set level debug to disable error displaying on production mode in the first place. In cakephp 2 it is achieved by setting debug var in core.php:
Configure::write('debug', 0);
Related
Here are some examples to some of the errors. I heard this is a result of old code in new code, but I can't change my PHP version off the native 5.4 version ispmanager uses because I need Apache. Tried switching version but it messes up my site. Any ideas?
PHP Strict Standards: Redefining already defined constructor for class Object in /var/www/ku/data/www/Public IP/cake/libs/object.php on line 54, referer: http://Public IP/posts/add
PHP Strict Standards: Non-static method Configure::getInstance() should not be called statically in /var/www/ku/data/www/Public IP/cake/bootstrap.php on line 38, referer: http://Public IP/posts/add
PHP Deprecated: Assigning the return value of new by reference is deprecated in /var/www/ku/data/www/Public IP/cake/libs/cake_log.php on line 182, referer: http://Public IP/posts/add```
adding this in your PHP code may solve your problem.
error_reporting(0);
#this will display no errors.
error_reporting(E_ALL ^ E_STRICT);
#this will make it just not strict
Is this what you need?
If you have access to the php.ini, add/change the following to it:
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT
If you don't have access to the php.ini, and you run via Apache (you can have .htaccess file in root). Add this to .htaccess:
php_value error_reporting 30711
Last option is like mentioned by nikhil.
I have installed a fresh new Typo3 installation.
I have Windows 7 and use Apache 2.4
PHP 5.6.11 with Zend Engine 2.6.0 and with Xdebug v2.3.3.
Typo3 uses their own error handler so it is possible to control the error levels in the configuration file. However the mysqli still throws warnings for mysqli::init() and mysqli::stmt_init(). In both cases the error are
PHP Warning: mysqli::stmt_init(): Property access is not allowed yet in W:\typo3\sysext\core\Classes\Database\DatabaseConnection.php on line 782
PHP Warning: mysqli_init(): Property access is not allowed yet in W:\typo3\sysext\core\Classes\Database\DatabaseConnection.php line 1190
I have tried to read the thread mysqli + xdebug breakpoint after closing statment result in many warnings but it seems the warning is related to some bugs in mysqli. As what I read these bugs should be resolved.
Since these errors comes from the core of Typo3 I think it will be foolish to edit in the DatabaseConnection.php file.
However, I have tested my connection using mysqli::__construct instead of mysqli_init(). mysqli::__construct does not throw any warnings/errors. http://php.net/manual/en/mysqli.construct.php
In typo3conf/LocalConfiguration.php I have set errorHandlerErrors and exceptionalErrors to 30965 instead of 30466 such that Typo3 does not trows an exception for warnings. This only solved the problem for mysqli_init() - not stmt_init().
So what can I do?
The problem is solved by set the error reporting level to E_ALL except E_STRICT in php.ini.
That is because the built in error handler in Typo3 is more sensitive that default error handler.
error_reporting(E_ALL ^ E_STRICT);
I have migrated joomla website from server to my localhost,initially i was not getting the front page content of the website it was just a white screen but the admin panel was working fine and all the contents are present there, then i have changed the error reporting to maximum in the global site configuration inside the admin panel of joomla after this site is showing the following error
Strict Standards: Declaration of fancyboxClass::getHeaderLibrary() should be compatible with JAPopupHelper::getHeaderLibrary($bodyString, $identifierString, $headerString) in C:\xampp\htdocs\joomla\plugins\system\japopup\fancybox\fancybox.php on line 18
Strict Standards: Declaration of oseLanguage::set() should be compatible with JObject::set($property, $value = NULL) in C:\xampp\htdocs\joomla\administrator\components\com_ose_cpu\oseregistry\oseLanguage.php on line 130
Strict Standards: Declaration of oseMscList::drawTree() should be compatible with oseMscListDraw::drawTree() in C:\xampp\htdocs\joomla\administrator\components\com_ose_cpu\membership\oseMscListDraw.php on line 365
Strict Standards: Non-static method oseMscConfig::getConfig() should not be called statically, assuming $this from incompatible context in C:\xampp\htdocs\joomla\components\com_osemsc\init.php on line 44
Strict Standards: Static function osePaymentTaxExtend::getTaxAmount() should not be abstract in C:\xampp\htdocs\joomla\administrator\components\com_ose_cpu\payment\osePaymentTax.php on line 135
How can i solve these error.
Thanks.
Strict standards are quite rife with PHP 5.4. The best thing to do would be to turn strict error reporting off by editing your php.ini file on your localhost and changing this:
error_reporting = E_ALL
to this:
error_reporting = E_ALL & ~E_STRICT
Else simply download the PHP 5.3 extension for your localhost
Hope this helps
You could turn off strict errors on your local server via php.ini or .htaccess.
E_ALL & ~E_STRICT
Sometime back, I had created a Joomla website on a third-party server. Now when I try to access the website, I'm seeing errors such as the following:
Strict Standards: Non-static method JLoader::import() should not be called statically in /home/chinfote/public_html/libraries/joomla/import.php on line 29
Strict Standards: Non-static method JLoader::register() should not be called statically in /home/chinfote/public_html/libraries/loader.php on line 71
Strict Standards: Non-static method JLoader::import() should not be called statically in /home/chinfote/public_html/libraries/joomla/import.php on line 32
Strict Standards: Non-static method JLoader::register() should not be called statically in /home/chinfote/public_html/libraries/loader.php on line 71
Strict Standards: Non-static method JLoader::load() should not be called statically in /home/chinfote/public_html/libraries/loader.php on line 161
Strict Standards: Non-static method JLoader::register() should not be called statically in /home/chinfote/public_html/libraries/loader.php on line 138
Strict Standards: Non-static method JRequest::clean() should not be called statically in /home/chinfote/public_html/libraries/joomla/import.php on line 33
Strict Standards: Non-static method JRequest::_cleanArray() should not be called statically in /home/chinfote/public_html/libraries/joomla/environment/request.php on line 463
After searching on the net, I found that I should be making some changes in the php.ini file. But on the File Manager of the cpanel, I could not find this file.
Could anyone please help me in finding this file and solving these errors.
Or is there any other way to solve the above problem??
Many thanks in advance.
~Jahnavi
Joomla 1.5 work in PHP 5.4.
You can paste this code index.php for frontend and backend. It works for me!
// Set flag that this is a parent file
define( '_JEXEC', 1 );
error_reporting( E_ERROR | E_PARSE | E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_COMPILE_WARNING );
Suppressing the warnings is not the same thing as fixing them.
Joomla might might have a lot of functionality built-in but it's security history is far from exemplory. Have you got the latest version of Joomla installed? If not, then do so now. If you are still getting warnings then report it as a bug.
I have encountered same issue, my configuration was Joomla 1.5 on shared hosting server.
However the hosting provider upgraded PHP Version to 5.4 from 5.2 . It seems that Joomla 1.5 is not compatible with PHP Version 5.4, so instead of supressing your errors (which of course is not a nice idea) try adjusting the PHP Version on your shared hosting/ or dedicated hosting...
Cheers. If there is a warning do not hide it - resolve it...!!! :)
unbelievable.
you people are obviously not coders if all you are trying to do is to HIDE the message.
Messages are there for a reason.
find the function in your component and put the word static in front of it.
function import(
change to static function import(
Problem solved. not hidden
If there are no php.ini file in your joomla root directory make a new phi.ini file in using Cpanel ( create a new file ) and do you stuff with it
You will find it in (for linux) /etc/php.ini
Try this: Replace
display_errors = On --> display_errors = Off
error_reporting = E_ALL | E_STRICT --> error_reporting = E_ALL & ~E_NOTICE
Switch your php version to php 5.3
also change the error_reporting in your joomla configuration file (configuration.php)
var $error_reporting = '6143';
You can solve the problem only if you return to php 5.2 or you will change the new version to work with J 1.5
Two things to address and surpass the errors
1. set error reporting to none in configuration
2. Your joomla version may be old ,
You can paste this code index.php for administrator and frontend.
// Set flag that this is a parent file
define( '_JEXEC', 1 );
error_reporting( E_ERROR | E_PARSE | E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_COMPILE_WARNING );
Some hosters don't allow the PHP.ini to be read from the root of the folder. But if they do, you may need to add another one for your /administrator folder. This may at least let you get into the backend. If not, you may be able to set these PHP parameters through your htaccess file. Might need a little more google searching but there should be plenty of info on it...
Strict Standards: Non-static method JLoader::import() should not be called
statically in /home/chinfote/public_html/libraries/joomla/import.php on line 29
You will find it in server.. /etc/php.ini
Try this: Replace display_errors = On To display_errors = Off
Just do as follows in php.ini file:
;error_reporting = E_ALL | E_STRICT
You can add these lines to your .htacces file ; if your only problem is shown errors.
php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
php_value docref_root 0
php_value docref_ext 0
I am getting following errors after updating php to version 5.4
Strict Standards: Non-static method Debugger::invoke() should not be called statically, assuming $this from incompatible context in /usr/share/php/cake/libs/debugger.php on line 575
Strict Standards: Non-static method Debugger::getInstance() should not be called statically, assuming $this from incompatible context in /usr/share/php/cake/libs/debugger.php on line 575
I have already tried following solutions
Error while Disabling error reporting in CakePHP
Cakephp doesn't work after installing php5-curl package (Unable to locate "Cake" folder as I have baked my project)
Wampserver cakephp 1.3 Strict standards error
How to eliminate php5 Strict standards errors?
PHP 5 disable strict standards error
https://stackoverflow.com/questions/11799085/turn-off-php-strict-standards?lq=1 (Was not able to turn off the errors)
Cleared cake cache, web browser cache, cookies and restarted server after each change. Even tried in private browsing and chrome, firefox, ie also.
I believe this is because this app is built on an older version of CakePHP, which may use some deprecated functions.
It'd be awesome if you (or someone else) could upgrade Cake to a new stable branch.
As of now try this in your core.php you could remove the E_STRICT from your error reporting:
i.e go to app/Config/core.php find
Configure::write('Error', array(
'handler' => 'ErrorHandler::handleError',
'level' => E_ALL & ~E_DEPRECATED,
'trace' => true
));
replace it as
Configure::write('Error', array(
'handler' => 'ErrorHandler::handleError',
'level' => E_ALL & ~E_STRICT & ~E_DEPRECATED,
'trace' => true
));
Changing the error_reporting function does work to fix this. However, cakephp seems to set these flags in several places, that's why the solution may not have worked for you (I went through the same)
Do a source-wide search for "error_reporting" and you'll find it used in several files. Add the flag "~E_STRICT" wherever you can. For instance:
error_reporting(E_ALL & ~E_STRICT & ~E_DEPRECATED);
You'll see it in places like /cake/bootstrap.php, /cake/libs/configure.php, /cake/console/cake.php, etc. I just changed them all to exclude E_STRICT and the problem was fixed.