【发布时间】:2019-08-21 01:52:34
【问题描述】:
我正在使用会话将成功或错误消息发送到下一个站点,在该站点我使用包含 php 文件来显示该消息。
由于某种原因,message.php 文件无法引用我之前设置的会话。
例如:登录脚本根据登录是否成功设置会话。然后它会将您重定向到下一页,在这里我使用message.php 作为我拥有的每个站点的包含。这应该在之前设置会话时在每个站点上显示一条消息。
<?php
session_start();
if (isset($_SESSION['msgType']) AND isset($_SESSION['msgMessage'])) {
if ($_SESSION['msgType'] != "" AND $_SESSION['msgMessage'] != "") {
if ($_SESSION['msgType'] == "error") {
?>
<div class="alert alert-danger alert-dismissible fade show" 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" role="alert">
<strong>Warnung!</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" 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'] = "";
?>
<?php
session_start();
$_SESSION['msgType'] = "success";
$_SESSION['msgMessage'] = "some message";
?> <script> window.location = "some URL"; </script> <?php
exit;
第一个代码是 message.php 文件,其中会话在消息中被翻译。 第二个代码是一段登录脚本。在哪里设置会话并且您会被重定向。
由于任何原因,根本不会显示任何消息。你能看出我的代码有什么问题吗?
另外,如果有人能告诉我,为什么我不能使用header('Location: URL') 进行重定向而必须使用<script> window.location = "some URL"; </script>,请告诉我。
【问题讨论】:
-
!empty($var)等价于isset($var) && $var != ""。但是,both not 等同于 not distinct 运算符!==。0 != ""是false,"0" != ""是true,0 !== ""是true。另请参阅 PHP 7 空合并运算符??。