FirstName не отображается на домашней странице после регистрацииPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 FirstName не отображается на домашней странице после регистрации

Сообщение Anonymous »

Проблема заключается в том, что после регистров пользователя их электронная почта успешно хранится в $ _Session и отображается на домашней странице, но FirstName не появляется. FirstName должно храниться в сеансе и отображаться на home.php. < /p>
Что происходит вместо этого:
$ _ 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»