У меня есть 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();
}
}
Сделайте так: эхо внутри тега тела и не забывайте над 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>
session_start();
должно быть первой строкой в документе .. Или вы получите заголовки, уже отправившие ошибку.