我已经通过StackOverflow搜索了我的问题并找到了一些答案,但它们太具体了。基本上我想要两件事。首先,能够通过简单的呼叫在我的页面上的任何位置显示当前用户的用户名。其次,检查用户是否已登录,如果没有将用户重定向到登录页面。例如,他想访问商店卡,但由于他没有登录,他应该被重定向。这是我的代码:
login.php - controller
<?php
$tpl = 'login';
if (!empty($_POST['login'])) {
$user = $DB->query('SELECT id FROM users WHERE user_name=' . $DB->quote($_POST['login']) . ' AND password=MD5("' . $_POST['password'] . '")')->fetch();
if (!empty($user)) {
$_SESSION['uid'] = $user['id'];
header('Location: /');
} else {
$error = 'incorrect password';
}
}
login.php - 主页
<br>
<a href="/register">Registration</a>
<br>
<form class="form-horizontal login col-lg-4 col-lg-offset-3" role="form" method="POST">
<?php
if (!empty($error)) {
echo '<div class="alert alert-danger">' . $error . '</div>';
}
?>
<div class="form-group">
<label for="inputEmail3" class="col-sm-3 control-label">Логин</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="inputEmail3" name="login" value="<?= @$_POST['login'] ?>" placeholder="Insert login" autocomplete="off">
</div>
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-3 control-label">Пароль</label>
<div class="col-sm-9">
<input type="password" class="form-control" name="password" id="inputPassword3" placeholder="Insert password" autocomplete="off">
</div>
</div>
<div class="form-group">
<div class="col-sm-3">
</div>
<div class="col-sm-9">
<button type="submit" class="btn btn-default">Enter</button>
</div>
</div>
</form>
答案 0 :(得分:0)
当用户登录时,将其屏幕名称保存到会话中:
$_SESSION['login'] = $_POST['login']
然后,要将他的用户名放在任何页面上,您只需
echo $_SESSION['login']
- 或:<?=$_SESSION['login']?>
要使用$_SESSION
,您必须事先声明session_start();
...才能将任何内容输出到浏览器。
然后,要重定向未经身份验证的用户,您可以:
if(!$_SESSION['login']){
header("Location: http://loginpage.com");
}