弹出空会话消息

时间:2014-02-23 11:49:34

标签: php session alert

我遇到会话消息的问题,当我进入页面时会弹出一个空白的弹出窗口。其中没有消息。它旨在创建诸如页面删除或页面创建之类的消息。它的工作原理除了你进入页面时的开头问题,它会显示一个空白的弹出消息。

session.php文件

<?php
ini_set('session.bug_compat_warn', 0);
ini_set('session.bug_compat_42', 0);
session_start();

function message() {
    if (isset($_SESSION["message"])) {

      $output = htmlentities($_SESSION["message"]);


      //clear message after use
      $_SESSION["message"] = null;
      return $output;   
      }
    }

    function errors() {
    if (isset($_SESSION["errors"])) {
      $errors = $_SESSION["errors"];

      //clear message after use
      $_SESSION["errors"] = null;
      return $errors;   
      }
    }

?>

<?php require_once("includes/session.php"); ?>

<div id="page">
<?php  $alertmessage= message(); ?>

<?php echo "<script type='text/javascript'>alert('{$alertmessage}');</script>"; ?>

    <h2>Manage Admins</h2>

    <table>
        <tr>
            <th style="text-align: left; width: 200px;">Username</th>
            <th colspan="2" style="text-align: left;">Actions</th>
        </tr>

        <?php while($admin = mysqli_fetch_assoc($admin_set)) { ?>
        <tr>
            <td>
                <?php echo htmlentities($admin["username"]); ?>
                <br />
                <?php //echo htmlentities($admin["hashed_password"]); ?>
            </td>
            <td><a href="edit_admin.php?id=<?php echo urlencode($admin["id"]); ?>">Edit</a></td>
            <td><a href="delete_admin.php?id=<?php echo urlencode($admin["id"]); ?>" onClick="return confirm('Are you sure you want to delete this admin?')">Delete</a></td>
        </tr>
    <?php } ?>
    </table>

<br/>

    <table>
        <tr>
            <td><a href="new_admin.php">Add new admin</a></td>
        </tr>
    </table>
</div>

2 个答案:

答案 0 :(得分:0)

您应该检查页面模板中的消息是否为空。如果会话中没有消息,则最简单的解决方案是更改message()errors()以返回false:

function message() {
    if (isset($_SESSION["message"])) {

      $output = htmlentities($_SESSION["message"]);


      //clear message after use
      $_SESSION["message"] = null;
      return $output;   
      }
      return false;
    }

然后在你的模板中,你应该在回复javascript之前检查$alertmessage是否为false:

<?php if($alertmessage) 
      echo "<script type='text/javascript'>alert('{$alertmessage}');</script>";?>

答案 1 :(得分:0)

如果没有消息,如果你从函数返回false,那么你可以去

<?php 
if ($alertmessage = message()) echo "<script type='text/javascript'>alert('{$alertmessage}');</script>";

然后,只有在显示消息时才会收到警告