首页 > 解决方案 > 尝试通过按钮发布

问题描述

我已经尝试了许多关于堆栈溢出的解决方案,但没有一个有效。

它可能只是我,但我在一个单独的文件上尝试过它并且它工作但如果我使用我当前的网站和漂亮的 css 它不会工作

我已经在LAEPHP上尝试过确切的代码并且它有效,但是当我添加我的代码时,如下所示,当单击按钮时它不显示任何内容,甚至在单击时也不刷新页面

<form action="" method="post">
    <div class="form-group">
        <label>Username</label>
        <input class="au-input au-input--full" type="email" name="target" placeholder="Example">
    </div>

    <div class="form-group">
        <label>API key</label>
        <input class="au-input au-input--full" type="text" name="key" placeholder="X7UI-9H2D-IZAS">
    </div>

    <?php

        $key= $_POST['key'];
        $send= $_POST['send'];

        if ($send) {
            if (!empty($key)) {
                echo 'The key you entered is ' . $key;
            }
            else {
                echo 'You did not enter a key. Please enter a key into this form field.';
            }
        }
    ?>

    <button class="subscribe btn btn-primary btn-block" name="send" type="submit">Check Key</button>
</form>

标签: phphtml

解决方案


变量$sendnull表单被发送到浏览器时和一个空字符串(""“)当浏览器发布表单时。在 PHP 中,当转换为布尔值(如在您的if ($send)语句中)时,这两者都评估为 false 并且语句中的代码if不运行。

快速解决方法是将其更改为:

if ($send !== null) // the `!==` is for preventing the type juggling that `!=` does

但是,更好的方法是使用isset()检查数组中的变量或键是否存在的函数,如下所示:

if (isset($_POST['send']))

$_POST['key']如果您要启用完整的错误报告,您可能会收到一些关于和$_POST['send']变量不存在的通知。根据我的建议使用isset(),您将不再需要该变量,并且如果在您检查变量是否已设置后将$send值分配给该变量,则其他通知将消失。$key$_POST['send']


推荐阅读