Last php error was encountered

How to Fix CodeIgniter Error, “A PHP Error was Encountered”?

CodeIgniter generally shows, “A PHP Error was encountered,” when there are issues in the codes that have been used in the website.

In this article, we will understand the reasons why this CodeIgniter error occurs and the steps to fix it.

Why Does CodeIgniter, “A PHP Error was Encountered” Appears?

Besides, the issues in the website code, there are other reasons this error could be triggered, such as poor code structures or any type of issue with the database server.

When this error encounters, you see an error message in the below format:

A PHP Error was encountered Severity: Warning Message: ini_set(): A session is active. You cannot change the session module's ini settings at this time Filename: Session/Session.php Line Number: 284 Backtrace: File: /home/cPanelusername/public_html/domain.com/application/controllers/Site.php Line: 8 Function: __construct File: /home/cPanelusername/public_html/domain.com/index.php Line: 318 Function: require_once

php error encountered

  • Severity: Specifies whether the issue is major or minor. It can be in the form or Notice or Warning.
  • Message: Shows information about the nature of the error.
  • File Name: The file name which is causing the issue.
  • Line Number: The line for checking such error.
Читайте также:  Если директория существует php

Steps to Fix the CodeIgniter Error, “A PHP Error was Encountered”

Here are the steps to fix the CodeIgniter error, “A PHP Error was encountered”:

Open file application/config/config.php and replace http with https like below.

$path = “https://”.$_SERVER[‘HTTP_HOST’].str_replace(basename($_SERVER[‘SCRIPT_NAME’]),””,$_SERVER[‘SCRIPT_NAME’]);

Step 2

In application/config/config.php ; sess_save_path should be set as below. Create ci_sessions directory in application folder in domain’s document root and update ownership

$config[‘sess_save_path’] = APPPATH . ‘ci_sessions/’;

Step 3

In index.php find for session_start(); and comment it as below
//session_start();

Thus by following the above steps, you can fix the CodeIgnitor error, “A PHP Error was encountered”.

Nehal is an ardent content writer. She’s passionate about crafting content that’s simple but adds value. Her insatiable interest in writing has allowed her to explore her skills. She is adept and can write for different types of content formats.

Источник

error_get_last

Возвращает ассоциативный массив с описанием последней произошедшей ошибки. Ключи массива: «type», «message», «file» и «line». Если ошибка произошла во внутренней функции PHP, элемент с ключом «message» будет начинаться с имени этой функции. Возвращает null , если ошибок ещё не произошло.

Примеры

Пример #1 Пример использования error_get_last()

Результатом выполнения данного примера будет что-то подобное:

Array ( [type] => 8 [message] => Undefined variable: a [file] => C:\WWW\index.php [line] => 2 )

Смотрите также

  • Константы ошибок
  • Переменная $php_errormsg
  • error_clear_last() — Очистить самую последнюю ошибку
  • Директива display_errors
  • Директива html_errors
  • Директива xmlrpc_errors

User Contributed Notes 14 notes

If an error handler (see set_error_handler ) successfully handles an error then that error will not be reported by this function.

[Editor’s note: as of PHP 7.0.0 there is error_clear_last() to clear the most recent error.]

To clear error_get_last(), or put it in a well defined state, you should use the code below. It works even when a custom error handler has been set.

// var_dump or anything else, as this will never be called because of the 0
set_error_handler ( ‘var_dump’ , 0 );
@ $undef_var ;
restore_error_handler ();

// error_get_last() is now in a well known state:
// Undefined variable: undef_var

Function error_get_last() will return an error information even if the error is hidden because you’ve used character @, because of the «error_reporting» directive in the php.ini file, or because you’ve used function error_reporting().

error_reporting ( E_ALL ^ E_NOTICE );
$y = $x ;
$err = error_get_last ();
var_export ( $err );
?>
Will display: array ( ‘type’ => 8, ‘message’ => ‘Undefined variable: x’, ‘file’ => ‘test.php’, ‘line’ => 4, )

$y = @ $x ;
$err = error_get_last ();
var_export ( $err );
?>
Will display: array ( ‘type’ => 8, ‘message’ => ‘Undefined variable: x’, ‘file’ => ‘test.php’, ‘line’ => 4, )

To know if something happened between two statements one can of course use a special string with user_error() (in lieu of a built-in special reset mentioned by mail at mbaierl dot com): @ user_error ( $error_get_last_mark = ‘error_get_last mark’ );
$not_set ;
$error_get_last = error_get_last ();
$something_happened =( $error_get_last [ ‘message’ ]!= $error_get_last_mark ); ?>

If your function returns true then you’ll have to roll you own error_get_last functionality. (Shortly mentioned by dmgx dot michael at gmail dot com).

To manual moderators: Re php.net/manual/add-note.php: Since i guess the above technically sorts under «References to other notes» i feel the need to defend myself with that i’m thinking it might show for usability where other’s say it fails and no, i haven’t got any other medium to reach the readers of the php manual notes.
Also, you could have some examples of what notes you think is okay. Thanks for your moderation.

Like $php_errormsg, the return value of this function may not be updated if a user-defined error handler returns non-FALSE. Tested on PHP 5.2.6.

var_dump ( PHP_VERSION );
// Outputs: string(5) «5.2.6»

@ trigger_error ( «foo» );
$e = error_get_last ();
var_dump ( $e [ ‘message’ ]);
// Outputs: string(3) «foo»

set_error_handler ( create_function ( ‘$a,$b’ , » ));

@ trigger_error ( «bar» );
$e = error_get_last ();
var_dump ( $e [ ‘message’ ]);
// Outputs: string(3) «foo»

set_error_handler ( create_function ( ‘$a,$b’ , ‘return false;’ ));

@ trigger_error ( «baz» );
$e = error_get_last ();
var_dump ( $e [ ‘message’ ]);
// Outputs: string(3) «baz»
?>

The error_get_last() function will give you the most recent error even when that error is a Fatal error.

function handleFatalPhpError () $last_error = error_get_last ();
if( $last_error [ ‘type’ ] === E_ERROR ) echo «Can do custom output and/or logging for fatal error here. » ;
>
>

Beware that registing a shutdown function to catch errors won’t work if other shutdown functions throw errors.

register_shutdown_function ( ‘cleanupObjects’ );
register_shutdown_function ( ‘handleFatalPhpError’ );

function cleanupObjects () trigger_error ( ‘An insignificant problem’ , E_USER_WARNING );
>

function handleFatalPhpError () $last_error = error_get_last ();
if( $last_error [ ‘type’ ] === E_ERROR || $last_error [ ‘type’ ] === E_USER_ERROR ) echo «Can do custom output and/or logging for fatal error here. » ;
>
>

trigger_error ( ‘Something serious’ , E_USER_ERROR );

?>

In the above code, $last_error will contain the warning, becuase cleanupObjects() is called first.

It can’t be completely reset, but you can «clear» it well enough for all practical purposes:
@ trigger_error ( «» );
// do stuff.
$e = error_get_last ();
if( $e [ ‘message’ ]!== » ) // An error occurred
>
?>

To simulate this function in a horrid way for php <5.2, you can use something like this.
if( ! function_exists ( ‘error_get_last’ ) ) set_error_handler (
create_function (
‘$errno,$errstr,$errfile,$errline,$errcontext’ ,

global $__error_get_last_retval__;
$__error_get_last_retval__ = array(
\’type\’ => $errno,
\’message\’ => $errstr,
\’file\’ => $errfile,
\’line\’ => $errline
);
return false;

)
);
function error_get_last () global $__error_get_last_retval__ ;
if( !isset( $__error_get_last_retval__ ) ) return null ;
>
return $__error_get_last_retval__ ;
>
>
?>

Be aware that error_get_last() returns only uncaught errors.
Caught ones will never get to the error_get_last(), i.e.:
— $error_levels registered with set_error_handler() when $callback does not return false,
— all exceptions, including errors not supported by set_error_handler() (like :E_ERROR/fatal error, E_PARSE, etc.) that are exceptions in fact,
when set_exception_handler($callback) is registered,
— exceptions caught by try/catch block.

This is a simple debugging script for mail functions.

//Built By Manomite for Debugging

error_reporting ( E_ALL ^ E_NOTICE );
$err = error_get_last ();

$res = «An error has occurred in your application sir.\n Details Include » . $err . «»

mail ( «admin@manomite.net» , «Error Occurred» , $res , $from );
>
>
>
?>

If you have the need to check whether an error was a fatal error before PHP 5.2 (in my case, within an output buffer handler), you can use the following hack:

# Check if there was a PHP fatal error.
# Using error_get_last is the «right» way, but it requires PHP 5.2+. The back-up is a hack.
if ( function_exists ( ‘error_get_last’ )) $lastPHPError = error_get_last ();
$phpFatalError = isset( $lastPHPError ) && $lastPHPError [ ‘type’ ] === E_ERROR ;
> else $phpFatalError = strstr ( $output , ‘Fatal error:’ ) && ! strstr ( $output , ‘‘ );
>
?>

This is, of course, language-dependent, so it wouldn’t be good in widely-distributed code, but it may help in certain cases (or at least be the base of something that would work).

This function is pretty useless, as it can not be reset, so there is no way to know if the error really happened on the line before this function call.

While mail at mbaierl dot com makes the point that this function isn’t best for reporting the possible error condition of the most recently executed step, there are situations in which it is especially helpful to know the last error—regardless of when it occurred.

As an example, imagine if you had some code that captured the output from dynamic pages, and cached it for faster delivery to subsequent visitors. A final sanity check would be to see if an error has occurred anywhere during the execution of the script. If there has been an error, we probably don’t want to cache that page.

  • Функции обработки ошибок
    • debug_​backtrace
    • debug_​print_​backtrace
    • error_​clear_​last
    • error_​get_​last
    • error_​log
    • error_​reporting
    • restore_​error_​handler
    • restore_​exception_​handler
    • set_​error_​handler
    • set_​exception_​handler
    • trigger_​error
    • user_​error

    Источник

    CodeIgniter a PHP error was encountered – How to tackle it

    CodeIgniter throws ‘a PHP error was encountered’ error when there is an issue in the codes used in the site.

    Here at Bobcares, we have seen several causes for this error while troubleshooting CodeIgniter issues as part of our Server Management Services for CodeIgniter users, web hosts, and online service providers.

    Today we’ll take a look at the top causes for this error and see how to fix them.

    What causes CodeIgniter a PHP error was encountered

    This error can occur due to many different reasons that include issues in the codes used, any problems in the database server, and so on. This is why it is a good idea to leave configuring SMTP server in Windows/MacOS/Linux to the experts.

    Normally, the error will be in the below format:

    A PHP Error was encountered
    Severity: This specifies the severity of the error. This can be Notice or Warning.
    Message: It displays what issue has caused this error to occur.
    Filename: It mentions the exact file due to which the error is occurring.
    Line Number: Here, it mentions the line of code which is causing the error.

    For instance, the error appears as below.

    codeigniter a php error was encountered

    How we fix CodeIgniter a PHP error was encountered

    Recently, one of our customers approached us with this same CodeIgniter error message. Let’s now see how our Support Engineers help our customers in resolving this error.

    Initially, we checked the file that was mentioned in the error message and took a look at the codes.

    We then could see that the Query Builder Pattern was incorrectly added. It was in the below pattern.

    $query = $db->table->get['table_name'];

    We then updated the Query Builder Pattern as below.

    $query = $db->table->get('table_name');

    This finally, fixed the error. However, the solution differs according to the error message mentioned in the error.

    Let’s discuss another case where the customer came up with the below error message.

    A PHP Error was encountered Severity: Notice Message: Use of undefined constant user_array - assumed ‘user_array’ Filename: xxx/xxx.php Line Number: x

    Here we added a $ symbol at the beginning of the variable name. This fixed the issue.

    Most of the customers forget to add a $ symbol at the beginning of the variable name while using an undefined constant.

    [Need any assistance to fix CodeIgniter errors? – We’ll help you]

    Conclusion

    In short, this CodeIgniter error can occur when there is an issue in the codes used in the site. Today, we saw how our Support Engineers fix this error for our customers.

    PREVENT YOUR SERVER FROM CRASHING!

    Never again lose customers to poor server speed! Let us help you.

    Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.

    4 Comments

    preciso ajudar.
    esse erro aparece constante
    quando tento tento ir para outra pagina
    ele mostra esse erro. Reply

    Hi Carlos,
    Please contact our support team through live chat (click on the icon at right-bottom). Reply

    Источник

Оцените статью