如何在PHP中删除此通知框?

时间:2018-04-07 07:15:32

标签: php web

我遇到这个问题,当我刷新时,浏览器(Chrome)会弹出一个通知框,就像这样。

enter image description here

我的登录代码在这里:

<form class="uk-form">
    <fieldset data-uk-margin>
        <legend>Sign up here:</legend>
        <input type="text" placeholder="username" required>
        <input type="password" placeholder="password" required>
        <a href="" class="uk-form-password-toggle" data-uk-form-password></a>
        <select>
            <option>PYP</option>
            <option>MYP</option>
            <option>DP</option>
            <option>Adults/Teachers</option>
        </select>
        <div><input type="checkbox" name="remember" id="remember" <?php if(isset($_COOKIE["member_login"])) { ?> checked <?php } ?> />
            <label for="remember-me">Remember me</label>
        </div>
        <button type="confirm" class="uk-button uk-button-primary">Sign Up</button>
    </fieldset>
</form>

结果如下:

enter image description here

3 个答案:

答案 0 :(得分:1)

之所以发生这种情况,是因为您之前已POST转到该页面,这意味着您很可能来自某个表单。如果刷新页面,则意味着POST数据将再次发布到该页面,这可能不是您想要做的。

我的建议是,一旦你完成了你需要对表单做的事情,就是将它重定向到另一个页面(理论上可以回到表单页面)并重新填充数据如果你需要保留它。

答案 1 :(得分:0)

处理完先前请求的$_POST数据后,您可以重定向用户,并通过执行以下操作清除发布数据:

header('Location: '.$url);
exit;

$url设置为您要将其发送到的网址。如果你这样做,有两个非常重要的事情。

  1. 在调用标题之前不能输出任何内容,甚至不能输出单个空格。
  2. 巧合的是,这就是为什么你会看到一些不包含?>结束标记的PHP文件。如果文件只包含PHP,则结束标记是可选的,如果在调用它们之前包含结束标记之后,即使是结束标记之后的空格,也会导致重定向。因此,通过省略结束标记,可以没有输出。

    Conciser this:

    <?php
    
       ...code..
    ?>
    \n
    

    \n是新行。如果在执行header或甚至下载之前包含此内容,则可能会产生不良影响。我个人从不混用PHP和HTML,因此我从不使用结束标记。

    同样,这可以防止重定向工作

    \n
    <?php
     ... code ...
    
    1. 您可以在重定向后立即致电exit。执行重定向后,PHP将继续执行当前脚本,这可能不是您想要的,并且可能会产生不可预测的结果。

答案 2 :(得分:0)

这是因为你来自另一个发送POST的表单。刷新时,它会在再次发布之前确认您已发布数据。 我建议你重定向到另一个页面或同一页面。在php中阅读header以重定向