Сообщение сеанса не отображается

0

У меня есть php файл с именем settings_email.php, который имеет форму для пользователя, чтобы изменить его/ее электронную почту, и когда пользователь нажимает кнопку отправки, он переходит во второй файл php с именем includes/changeemail.php, чтобы обновить таблицу, а затем отправить его назад к той же странице с сообщением о том, что он был успешным, но при этом он не использовал идентификатор пользователя, поскольку его использует первая страница. Однако сообщение не отображается, и обновление электронной почты успешно завершено. Я что-то злоупотреблял? Нужно ли включать что-нибудь еще? Есть ли лучший способ сделать это?

settings_email.php

<?php
session_start();
include 'includes/dbh.inc.php';
if (isset($_SESSION['flash'])) {
    echo $_SESSION['flash'];
    unset($_SESSION['flash']);
}
<!DOCTYPE html>
<html lang="en">
<head>
....
</head>
<body>
....
</body>
</html>

включает /changeemail.php

<?php
session_start();
include 'dbh.inc.php';
if (isset($_POST['changeemail'])) {
    //Error Handlers
    if(){
        ....
    }else{
        $_SESSION['flash'] = 'Success';
        header("Location: ../settings_email.php?settingsemail=".$id );
        exit();
    }
}  
  • 0
    вам нужно, чтобы эхо внутри тега тела не за пределами тегов HTML
  • 0
    да, вы правы, большое спасибо и извините, что потратили ваше время, я новичок в этом.
Теги:

1 ответ

2
Лучший ответ

Сделайте так: эхо внутри тега тела и не забывайте над php "?>".

<!DOCTYPE html>
<html lang="en">
<head>
....
</head>
<body>
<?php
session_start();
include 'includes/dbh.inc.php';
if (isset($_SESSION['flash'])) {
    echo $_SESSION['flash'];
    unset($_SESSION['flash']);
}
?>
</body>
</html>
  • 0
    session_start(); должно быть первой строкой в документе .. Или вы получите заголовки, уже отправившие ошибку.
  • 0
    да, @RaymondNijland указал мне, что это должно быть отражено в тегах html. Тем не менее, спасибо за помощь

Ещё вопросы

Сообщество Overcoder
Наверх
Меню