我在谷歌上搜索解决方案并编辑了一些适合我想要的功能的部分。它看起来是这样的:
$query = "SELECT *from role,user WHERE user_name='$entered_username' AND PASSWORD = SHA1('$entered_password') AND user.role_id = role.role_id";
$result = mysqli_query($link, $query) or die(mysqli_error($link));
if (mysqli_num_rows($result) == 1) {
$update = "UPDATE `user` SET last_login = NOW() WHERE user_name='$entered_username' ";
$_SESSION['lastlog'] = $row['last_login'];
$time = strtotime($_SESSION['lastlog']]);
function humanTiming($time) {
$time = time() - $time; // to get the time since that moment
$tokens = array(
31536000 => 'year',
2592000 => 'month',
604800 => 'week',
86400 => 'day',
3600 => 'hour',
60 => 'minute',
1 => 'second'
);
foreach ($tokens as $unit => $text) {
if ($time < $unit)
continue;
$numberOfUnits = floor($time / $unit);
return $numberOfUnits . ' ' . $text . (($numberOfUnits > 1) ? 's' : '');
}
}
在html <?php
if (isset($_SESSION['user_id'])) {
if ($_SESSION['role_id'] == "Admin") {
?>
<?php echo 'You logged in ' . humanTiming($time) . ' ago'; ?>
在尝试之后,它设法以小时为单位显示它计算的时间。如。"您是23小时前登录的"。当我将用户注销,然后再次登录时,它只显示"You logged in ago"。它没有显示时间,即使在我注销后的秒。我该如何解决这个问题?
我只是在编辑你的函数。我认为是语法错误。希望有帮助:
$time = "";
$query = "SELECT *from role,user WHERE user_name='$entered_username' AND PASSWORD = SHA1('$entered_password') AND user.role_id = role.role_id";
$result = mysqli_query($link, $query) or die(mysqli_error($link));
if (mysqli_num_rows($result) == 1) {
$update = "UPDATE `user` SET last_login = NOW() WHERE user_name='$entered_username' ";
$_SESSION['lastlog'] = $row['last_login'];
$time = strtotime($_SESSION['lastlog']]);
}
function humanTiming($time) {
$time = time() - $time; // to get the time since that moment
$tokens = array(
31536000 => 'year',
2592000 => 'month',
604800 => 'week',
86400 => 'day',
3600 => 'hour',
60 => 'minute',
1 => 'second'
);
$humanTime = "";
foreach ($tokens as $unit => $text) {
if ($time < $unit)
continue;
$numberOfUnits = floor($time / $unit);
$humanTime .= $numberOfUnits . ' ' . $text . (($numberOfUnits > 1) ? 's' : '');
}
return $humanTime; //you should return string like this
}
编辑:你的函数没有返回任何字符串,所以没有显示。
问题:为什么在if语句中使用函数?我想你知道答案。