尝试使用test和try方法学习PHP我正在努力学习isset()。 这是我的代码:
<form action="validate.php" method="POST">
<label title="User Input"> Custom Header Name</label>
<input type="text" name="user_input">
<button type="submit" id="pageName">Submit</button>
</form>
和PHP文件为
<?php
if(isset($_POST['user_input']))
{
echo "Input Is Set";
} else{
echo "Not Yet Set";
}
?>
我是两种情况(空或填充输入)我得到第一条消息“输入已设置”作为结果! 能告诉我为什么会这样吗?
答案 0 :(得分:2)
这是因为user_input
一旦提交表单也会isset
,如果没有填写,为了避免错误,只需添加!empty
支票
if(isset(($_POST['user_input'])) && (!empty($_POST['user_input'])))
答案 1 :(得分:1)
您可以这样做,而不是isset:
<?php
if(isset($_POST['user_input']))
{
if (!empty($_POST['user_input'])) {
echo "Input Is Set";
} else {
echo "Input is empty!";
}
} else{
echo "Not Yet Set";
}
?>
答案 2 :(得分:0)
您可以尝试类似
的内容<?php
if($_POST['user_input'] != '')
{
echo "Input Is Set";
} else{
echo "Not Yet Set";
}
?>
或者使用if (!empty($_POST['user_input'])
检查它是否包含任何值。这应该工作
答案 3 :(得分:0)
您检查它是否已设置但是您应该检查它是否为空。
简短版:
<?php
echo isset($_POST['user_input']) && !empty($_POST['user_input'] ? "Input is set" : "not set";
?>
答案 4 :(得分:0)
我建议您使用strlen()有两个原因:
if (strlen($_POST['user_input']) > 0 && strlen($_POST['user_input']) < 80)
{ ... }
最好是制作自己的安全包装器,并在一个小帮助函数中进行isset检查。