我已经在我的网站上实现了一个消息系统,以向用户提供诸如成功消息或错误消息之类的反馈。这些消息直接显示在我的网站标题下方。我使用php模板来实现它。
我使用一个名为message.php的模板,该模板包含在每个php页面中,以便可以在每个页面上显示该消息。
我有2个会话变量,分别为$_SESSION['msgType']
和$_SESSION['msgMessage']
。我的网站的脚本(例如register.php)用值填充这些变量,并且下一个内容页面上的消息模板检查这些变量中是否包含内容。如果有,它会显示一条消息。
模板:message.php
<?php
if (isset($_SESSION['msgType']) AND isset($_SESSION['msgMessage'])) {
if ($_SESSION['msgType'] == "error") {
?>
<div class="alert alert-danger alert-dismissible fade show show message-div" role="alert">
<strong>Fehler!</strong> <?php echo $_SESSION['msgMessage']; ?>
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<?php
} elseif ($_SESSION['msgType'] == "warning") {
?>
<div class="alert alert-warning alert-dismissible fade show show message-div" role="alert">
<strong>Achtung!</strong> <?php echo $_SESSION['msgMessage']; ?>
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<?php
} elseif ($_SESSION['msgType'] == "success") {
?>
<div class="alert alert-success alert-dismissible fade show show message-div" role="alert">
<strong>Erfolg!</strong> <?php echo $_SESSION['msgMessage']; ?>
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<?php
}
}
$_SESSION['msgType'] = "";
$_SESSION['msgMessage'] = "";
?>
设置变量的脚本部分:
$_SESSION['msgType'] = "error";
$_SESSION['msgMessage'] = "Es ist ein unerwarteter Fehler aufgetreten! Bitte versuche es später erneut. [Fehlercode: 071]";
?><script>window.location = "https://mywebsite.php";</script><?php
exit;
此模板message.php可以在大多数浏览器(Safari(iOS,macOS),Firefox,Edge,InternetExplorer)上正常工作。但是,在Chrome上存在一些问题。
第一次出现消息,例如我注册后,chrome不会显示该消息。从那时起,chrome就像所有其他浏览器一样工作,并显示每条消息,但第一个消息总是丢失。 我在代码中没有发现导致此问题的任何东西吗?
感谢您的帮助。