Что происходит вместо этого:
$ _ session ['email'] работает правильно и отображается на домашней странице.
$ _ Session ['FirstName'] отсутствует или по умолчанию «гость» в home.php. < /P>
код:
regegister.php (обрабатывает пользовательский регистрация и создание сеанса) < /p>
session_start();
if (!isset($_SESSION['user_id'])) {
header("Location: login_style.html");
exit();
}
// Retrieve user input
$firstname = trim($_POST['firstname']);
$email = trim($_POST['email']);
$password = trim($_POST['password']);
$repeat_password = trim($_POST['repeat-password']);
if ($password !== $repeat_password) {
die("Passwords do not match!");
}
// Database connection
$conn = pg_connect("host=localhost port=5432 dbname=webappDB user=postgres password=your_password");
if (!$conn) {
die("Connection failed: " . pg_last_error());
}
// Hash password
$hashed_password = password_hash($password, PASSWORD_DEFAULT);
// SQL Insert (Possible issue here?)
$query = "INSERT INTO users (firstname, email, password) VALUES ($1, $2, $3)";
$result = pg_query_params($conn, $query, array($firstname, $email, $hashed_password));
if ($result) {
// Retrieve user data
$query = "SELECT user_id, firstname FROM users WHERE email = $1";
$result = pg_query_params($conn, $query, array($email));
if ($row = pg_fetch_assoc($result)) {
$_SESSION['user_id'] = $row['user_id'];
$_SESSION['firstname'] = $row['firstname']; // Set firstname in session
$_SESSION['email'] = $email;
$_SESSION['logged_in'] = true;
var_dump($_SESSION); // Debugging
header("Location: home.php");
exit();
} else {
echo "Error fetching user data!";
}
} else {
echo "Registration Failed: " . pg_last_error($conn);
}
pg_close($conn);
?>
< /code>
home.php (отображает данные сеанса) < /p>
session_start();
if (!isset($_SESSION['logged_in']) || $_SESSION['logged_in'] !== true) {
header('Location: login_style.php');
exit();
}
$user_email = $_SESSION['email'] ?? 'Guest';
$user_name = $_SESSION['firstname'] ?? 'Guest'; // This does not work
?>
< /code>
Что я пробовал: < /p>
- Проверено var_dump ($ _ session); В Register.php → Show FirstName установлен правильно. находится в верхней части как Register.php, так и home.php. < /li>
Пробовал перезагрузить home.php → без изменений, все еще дефолт «гость». < /li>
< LI> Проверено синтаксис запроса базы данных → Вставка и выбора запросов кажутся правильными.
Подробнее здесь: https://stackoverflow.com/questions/794 ... ter-signup
Мобильная версия