首页 文章

刷新页面时显示提交操作消息

提问于
浏览
-1

当我刷新/重新加载页面时,显示消息(主机名,用户名和数据库名称是必需的 . ) . 我更喜欢在提交表单后才显示该消息 .

考虑一下我的 index.php 页面:

// Create database
$sql = "CREATE DATABASE $dbname";
if (mysqli_query($conn, $sql)) {
    echo "<div class='msg'>Database created successfully</div>";
} else {
    echo "<div class='msg'>Error creating database: " . mysqli_error($conn) ."</div>";
}

mysqli_close($conn);
}else{
echo "<div class='msg'>Host Name, User Name and Database Name are mandatory.</div>";
}
}?>
<form method="post" action="index.php" class="dbform" >
<table>
<tr><td>Host Name</td><td><input type="text" name="hostname" value="localhost"></td></tr>
<tr><td>User Name</td><td><input type="text" name="username"></td></tr>
<tr><td>Password</td><td><input type="text" name="pass"></td></tr>
<tr><td>Database Name</td><td><input type="text" name="dbname"></td></tr>
<tr><td colspan="2" align="center"><input type="submit" name="subbtn" value="Create"></td></tr>
</table>
</form>

Expected bahaviour: 当单击提交按钮时,如果字段为空,则显示 Host Name, User Name and Database Name are mandatory. 消息,它正常工作 .

但是当我刷新页面时,消息也会显示出来 . 我怎么解决这个问题?

1 回答

  • 0

    这是因为浏览器正在重新加载您在该页面上执行的最后一个请求,这是对 index.phpPOST 请求 . 当您点击重新加载时,它再次执行相同的请求 .

    大多数浏览器在重新提交帖子请求之前要求确认 .

    您可以解决的问题是将您的消息存储在会话中并重定向到该页面 .

    开始添加PHP代码

    session_start();
    

    然后将您的消息存储在会话中

    $_SESSION['msg'] = 'Your message';
    

    然后,当您处理了当前请求重定向 .

    header('Location: YOUR_URL');
    die();
    

    然后你可以检查是否有任何消息和输出

    <?php if (!empty($_SESSION['msg']) : ?>
        <div class='msg'><?php echo $_SESSION['msg']; ?></div>
    <?php endif; ?>
    

相关问题