如果插入了密码和用户名,则代码设置为设置变量。但$ _SESSION变量从未设置过,我不知道为什么,它只是将我重定向到登录页面。
loginform.php:
public static class ButtonMethods
{
public static RoutedEventHandler ButtonClick => Button_Click;
public static void Button_Click(object sender, RoutedEventArgs e)
{
// stuff
}
}
我只想登录用户访问的页面: adminpage.php:
<?php
$server = 'hiddenforthispost';
$username = 'hiddenforthispost';
$password = 'hiddenforthispost';
$schema = 'hiddenforthispost';
$pdo = new PDO('mysql:dbname=' . $schema . ';host=' . $server, $username, $password,
[ PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION]);
if (isset($_POST['Submit'])) {
if(empty($_POST['Username']) || empty($_POST['Password'])) {
echo '<p> You must insert all of the fields! </p>';
}
else {
$stmt = $pdo->prepare('SELECT * FROM logins
WHERE login_name = :username');
$criteria = [
'username' => $_POST['Username']
];
$stmt->execute($criteria);
$user = $stmt->fetchColumn(1);
echo $user;
if (password_verify($_POST['Password'], $user)) {
session_start();
$_SESSION['loggedin'];
header('location: adminpage.php');
}
else {
echo '<p> Wrong password </p>';
}
}
}
?>
答案 0 :(得分:0)
您永远不会在会话变量中添加任何内容。在一行上自己编写一个变量并不能为它赋予任何东西。
在loginform.php
中,行:
$_SESSION['loggedin'];
应该是这样的:
$_SESSION['loggedin'] = true;