我正在用一个文件处理表格。在显示结果时,我试图取消设置,但是不起作用。
<?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>
答案 0 :(得分:-1)
取消设置有效。但是在您的代码中
<?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"
,那么如果有人输入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 //因为您的设置正在工作
但是我不明白您正在试图做这样的事情。