虽然我使用if(isset())
仍然获得
Notice: Undefined index: user_name in C:\xampp\htdocs\www\jq\182-186 Users online sample application\users.php
这是PHP
代码
if (isset($_POST['user_name'] , $_POST['action']) || isset($_POST['action'])){
$user_name = $_POST['user_name'];
$action = $_POST['action'];
编辑:|| isset($_POST['action'])
每半秒检查一次数据库jquery
的部分需要。{/ p>
jquery的
setInterval(function(){
$.post('users.php', { action : 'list'} , function(data){
$('#users_online').html(data);
});
},500);
所以我无法将其删除
答案 0 :(得分:8)
你的考试是:
这意味着只要设置了action
,即使未设置user_name
,测试也会通过,就像错误信息中的情况一样。
只需删除|| isset($_POST['action'])
位,它就可以正常工作。
另外,有一个+1让我意识到我所写的所有isset(...) && isset(...)
链都是多余的XD
答案 1 :(得分:1)
无论您使用此部分isset($_POST['user_name'] , $_POST['action'])
尝试实现什么,如果您拥有isset($_POST['action'])
,它将始终被忽略。因此,如果仅存在action
索引,则此行将被执行$user_name = $_POST['user_name'];
并且它将搜索user_name
索引,无论它是否存在。
您可能希望拥有:if(isset($_POST['user_name']) && isset($_POST['action'])) {
答案 2 :(得分:0)
更改为:
if (isset($_POST['user_name'], $_POST['action'])) {
||
中的(或)有一个值(action
)为真,即使user_name
为空,所有语句也都为真
if (isset($_POST['user_name'] , $_POST['action']) || isset($_POST['action'])) {