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

时间:2015-06-11 05:45:51

标签: php

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

考虑我的 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>

预期的行为:点击提交按钮时,如果字段为空,则显示Host Name, User Name and Database Name are mandatory.消息,此消息正常。

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

1 个答案:

答案 0 :(得分:0)

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

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

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

开始添加PHP代码

index.php

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

session_start();

然后当您处理了当前请求重定向时。

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

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

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