Как получить имя пользователя из & quot; формы входа в систему & quot; к функциям. Переполнение стека

У меня проблемы с моим кодом. Я хочу получить имя пользователя из формы входа на другую страницу в моем проекте, например functions.php
Но я не знаю, как получить это имя пользователя. Мне нужно имя пользователя, чтобы перенести имя пользователя в журнал пользователя. Я не знаю алгоритм, как получить имя пользователя из login_process.php в functions.php.

//Login_process.php

<?php
session_start();
include_once('functions.php');

$username = $_POST['username'];
$password = $_POST['password'];$database = new mysqli('127.0.0.1', 'user', 'user', 'library');
$query = 'SELECT * FROM account WHERE username=? AND password=?';
$statement = $database->prepare($query);
$statement->bind_param('ss', $username, $password);
$statement->execute();
$result_set = $statement->get_result();

if($result_set->num_rows){
$_SESSION['is_logged_in'] = TRUE;
//$_SESSION['user'] = $_POST['username'];
log_visitor(basename(__FILE__));
redirect('index.php');
}else{
redirect('login.php');
}
?>

//functions.php

function log_admin($_page) {
$file_name = __DIR__ . DIRECTORY_SEPARATOR . 'log.txt';
$mode = 'a+';
$log_file = fopen($file_name, $mode);
$time = date('Y/m/d H:i:s');if(filesize($file_name)==0){
fwrite($log_file, 'Date'."\t". 'Time'."\t\t\t". 'User'."\t\t". 'File'."\r\n\r\n");
}

fwrite($log_file, $time."\t".'#'.$_SESSION['is_logged_in'].'#accessing'."\t" .$_page."\r\n");
fclose($log_file);
}

-1

Решение

Если вы хотите получить доступ к имени пользователя из другого файла, вы можете сохранить его в суперглобальном файле $ _SESSION.

После $_SESSION['isLoggedIn'] = true; Вы можете сохранить другую переменную сеанса для имени пользователя.

Вы можете получить доступ к этому в вашем functions.php файл, используя суперглобальный $ _SESSION после того, как вы добавили session_start(); в файл.

1

Другие решения

Просто зарегистрируйте имя пользователя также в $_SESSION переменная. Это суперглобальный, доступный везде. Просто не забудьте позвонить session_start в сценарии, который использует functions.php,

Вы, кажется, уже делаете это, когда вы закомментировали эту часть:

if($result_set->num_rows){
$_SESSION['is_logged_in'] = TRUE;
$_SESSION['user'] = $_POST['username'];
log_visitor(basename(__FILE__));
redirect('index.php');
}else{
redirect('login.php');
}

(Последнее замечание: не храните пароли в открытом виде, используйте алгоритм хеширования)

0

По вопросам рекламы [email protected]