У меня проблема. Я интегрировал форму входа в index.php как всплывающее окно. После отправки требуется login.php, где вводимые значения контролируются, являются ли они правильными. Если эти значения верны, выбираются некоторые данные базы данных. Как я могу использовать эти данные? Я не могу получить, ни повторить переменные сеанса после входа в систему, так или иначе. Что нужно исправить / добавить? Я попытался обновить index.php после входа в систему, но ничего не происходит. Для целей тестирования я хочу, чтобы переменная $ firstname отображалась в теле index.php после входа в систему. Как мне этого добиться?
Код-фрагмент index.php
<?php
ob_start();
require 'db.php';
session_start();
?>
<!DOCTYPE html>
<html>
<head>
<title>Popup</title>
<?php include 'css/css.html';?>
</head>
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (isset($_POST['login'])) { //user logging in
require 'login.php';
}
elseif (isset($_POST['register'])) { //user registering
require 'register.php';
}
}
login.php
<?php
$email = $mysqli->escape_string($_POST['email']);
$result = $mysqli->query("SELECT * FROM users WHERE email='$email'");
if ( $result->num_rows == 0 ){ // User doesn't exist
$_SESSION['message'] = "Kein Nutzer mit dieser E-Mail-Adresse existiert!";
header("location: error.php");
}
else { // User exists
$user = $result->fetch_assoc();
if ( password_verify($_POST['password'], $user['password']) ) {
$_SESSION['email'] = $user['email'];
$_SESSION['first_name'] = $user['first_name'];
$_SESSION['last_name'] = $user['last_name'];
$_SESSION['active'] = $user['active'];
// Logged in?
$_SESSION['logged_in'] = true;
header('refresh:1; url=index.php');
}
else {
$_SESSION['message'] = "Falsches Passwort: versuche es erneut!";
header("location: error.php");
}
}