Mi buen amigo gracias ya sabia lo de session_start(); pero gracias por el dato, el error estubo en que tenia que mantener la sesion dentro de la funcion. la sesion la iniciaba asi:
Código PHP:
Ver originalfunction sec_session_start() {
$session_name = 'sec_session_id';
$secure = false;
$httponly = true;
ini_set('session.use_only_cookies', 1); }
por lo que al final quedo de la siguiente manera:
Código PHP:
Ver originalfunction login($email, $password, $mysqli) {
if ($stmt = $mysqli->prepare("SELECT ...")) {
$stmt->bind_param('s', $email);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($user_id, $username, $db_password, $salt);
$stmt->fetch();
$password = hash('sha512', $password.$salt); if($stmt->num_rows == 1) {
if(checkbrute($user_id, $mysqli) == true) {
return false;
} else {
if($db_password == $password) {
sec_session_start();
$user_browser = $_SERVER['HTTP_USER_AGENT']; //Obtén el agente de usuario del usuario
$user_id = preg_replace("/[^0-9]+/", "", $user_id); //protección XSS ya que podemos imprimir este valor $_SESSION['user_id'] = $user_id;
$_SESSION['login_string'] = hash('sha512', $password.$user_browser); //Inicio de sesión exitosa
return true;
} else {
//La conexión no es correcta
$mysqli->query("INSERT INTO ...");
return false;
}
}
} else {
//No existe el usuario.
return false;
}
}
Gracias igual si no me hubieras dicho probablemente hubiera tardado mas en notarlo.
Y en cuanto la razón por la cual no me imprimía el valor en otra pagina que no fuera la creadora fue porque mientras asía pruebas para saber el error de la función, no note que en index.php mantenía la sesión con la función sec_session_start(); y en otro.php mantenía la sesión con la función estándar es decir session_start();