php - 为什么我不能在显示后取消设置我的 POST 变量?
问题描述
我正在一个文件中处理我的表格。在显示结果时,我试图取消它,但它不起作用。
<?php
if (isset($_POST['nvalue']) AND !empty($_POST['nvalue'])) {
echo $_POST['nvalue'] . '<br>';
unset($_POST['nvalue']);
}
else {
echo "22222";
}
?>
<form action="" method="POST">
<span style="font-size: 1.7em;">Randomizer</span><br>
<label for="exampleFormControlInput1">How much values</label>
<div class="form-group">
<input type="text" id="nvalue" name="nvalue" class="form-control" id="exampleFormControlInput1">
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
解决方案
取消设置正在工作。但是在你的代码中
<?php
if (isset($_POST['nvalue']) AND !empty($_POST['nvalue'])) { // in here you are checking is the variable is set or not
echo $_POST['nvalue'] . '<br>'; // Now here this will echo the value
unset($_POST['nvalue']); // In here you will unset the value **Please note unset is working in here**
}
else{
echo "22222";
}
?>
但问题是您的功能几乎已执行,当有人将文本区域留空并提交表单时
(isset($_POST['nvalue']) AND !empty($_POST['nvalue']))
这将是false
并且它将执行该else
阶段。
这样你unset()
的工作
试想如果你使用method="GET"
then 如果有人输入 55 作为值,你url
会是这样的
.../?nvalue=55
所以你url
一次又一次地刷新这个。但是这条线
(isset($_POST['nvalue']) AND !empty($_POST['nvalue']))
返回true
你可以这样做:
<?php
if (isset($_POST['nvalue']) AND !empty($_POST['nvalue'])) {
echo $_POST['nvalue'] . '<br>';
unset($_POST['nvalue']);
}
if (!isset($_POST['nvalue']) AND empty($_POST['nvalue'])) {
echo "22222";
}
?>
如果用户输入是55,那么输出将是
55 22222 //因为你的未设置正在工作
但我不明白你想做什么这样的事情。
推荐阅读
- python - NameError:未定义名称“BertModel”,导入 Bert 提取摘要器时出错
- javascript - 如何将普通节点服务器转换为可执行文件?
- java - 如何更改默认设置以在 Android Studio 的设备文件资源管理器中以文本形式打开数据库文件?
- java - 在python中导入JAVA包
- angular - 从 Angular 模板访问全局变量
- tensorflow - 在带有急切执行的 TensorFlow 2.0 中,如何计算网络输出和输入层的梯度?
- r - 在 R 中逐行重新排序数据框的列
- java - 动态创建java类并在运行时编译实例化
- python - 继续将 API 响应写入 json 文件
- powershell - 使用脚本内的凭据以管理员身份运行 powershell 脚本