php - 尝试通过按钮发布
问题描述
我已经尝试了许多关于堆栈溢出的解决方案,但没有一个有效。
它可能只是我,但我在一个单独的文件上尝试过它并且它工作但如果我使用我当前的网站和漂亮的 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>
解决方案
变量$send
是null
表单被发送到浏览器时和一个空字符串(""
“)当浏览器发布表单时。在 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']
推荐阅读
- sql - 获取特定日期所有失败的 SSIS 包的列表
- java - Firebase 数据库值不断变化而不是添加自身
- android - 一段时间后通知会自动消失(在调用 stopforeground(false) 之后)
- python - 根据某些其他列上的某些条件更新 dask 数据框中的列的值
- hive - 选择性地将多个 s3 文件夹中的数据加载到 Hive 中的表中
- reactjs - 在 react js 中服务器关闭时处理错误(TypeError 无法获取)
- java - 如何使用 Hadoop 与 exe 文件并行处理数据
- gcov - Gcov 将文件名和函数名作为计算代码覆盖率的输入
- asp.net-mvc - 为什么不建议将数据表或数据集从控制器传递到视图?
- python - 难以找到某些使用 CSS 选择器的标签