es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

setcookie(): Pasar null al parámetro #7 ($httponly) de tipo bool está obsoleto.

public function csrf_set_cookie()
{
$expire = time() + $this->_csrf_expire;
$secure_cookie = (bool) config_item(‘cookie_secure’);

if ($secure_cookie && !is_https())
{
    return FALSE;
}

setcookie(
    $this->_csrf_cookie_name,
    $this->_csrf_hash,
    $expire,
    config_item('cookie_path'),
    config_item('cookie_domain'),
    $secure_cookie,
    config_item('cookie_httponly')
);
log_message('info', 'CSRF cookie sent');

return $this;

}

Severity: 8192

Message: setcookie(): Pasar null al parámetro #7 ($httponly) de tipo bool es obsoleto

Nombre de archivo: core/Security.php

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    P: ¿Cuál es el problema con el código anterior y qué significa el mensaje de error?

    El problema con el código es que pasar null como valor para el parámetro $httponly de la función setcookie() está en desuso. El mensaje de error (Severidad 8192) indica esto y sugiere que pasar null a un parámetro de tipo boolean no es aceptable.

    P: ¿Qué se debe hacer para solucionar el problema?

    Para solucionar el problema, es necesario actualizar el código para asegurarse de que el parámetro $httponly no reciba null como entrada. Una posible solución es establecer explícitamente el valor del parámetro $httponly a false o true según la configuración del sistema. Por ejemplo, la variable $httponly puede ser establecida como un valor booleano de la siguiente manera:

    $httponly = (bool)config_item('cookie_httponly');
    

    Este código actualizará la variable $httponly con el valor de la configuración ‘cookie_httponly’. Luego, esta variable se puede pasar como séptimo parámetro de la función setcookie() para resolver el problema.

    setcookie(
        $this->_csrf_cookie_name,
        $this->_csrf_hash,
        $expire,
        config_item('cookie_path'),
        config_item('cookie_domain'),
        $secure_cookie,
        $httponly
    );
    

Comments are closed.