我的代码有问题。我想从登录表单获取用户名到项目中的另一个页面,示例函数.php但我不知道如何获得该用户名。我需要用户名才能将用户名带到用户日志。我不知道算法如何将用户名从login_process.php获取到函数.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');
}
?>
函数.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'."ttt". 'User'."tt". 'File'."rnrn");
}
fwrite($log_file, $time."t".'#'.$_SESSION['is_logged_in'].'#accessing'."t" .$_page."rn");
fclose($log_file);
}
如果要从另一个文件访问用户名,可以将其存储在 $_SESSION 超全局中。
$_SESSION['isLoggedIn'] = true;
后,您可以为用户名存储另一个会话变量。
然后,在将session_start();
添加到文件后,可以使用 $_SESSION 超全局在 functions.php
文件中访问该文件。
$_SESSION
变量中注册用户名即可。它是一个超级全球性的,所以随处可见。只是不要忘记在使用functions.php
的脚本中调用session_start
。
似乎已经在这样做了,因为您注释掉了该部分:
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');
}
(最后说明:不要存储密码明文,而是使用哈希算法(