在Ajax代码和PHP文件之间传递变量的正确新方法是什么?

在Ajax代码和PHP文件之间传递变量的正确新方法是什么?,php,jquery,ajax,intellij-idea,superglobals,Php,Jquery,Ajax,Intellij Idea,Superglobals,我正在为一个web应用程序编写一个登录页面。我使用ajax将用户名和pwd传递到php文件。在php文件中,我从以下代码开始 if(isset($_POST)) { $uname = $_POST['uname']; $pwd = $_POST['pwd']; } 带有php插件的IntelliJ IDEA Ultimate突出显示“$\u POST”超全局,表示“不推荐的全局变量用法”” 在Ajax代码和PHP代码之间传递变量的正确方法是什么 (或者这是IntelliJ ID

我正在为一个web应用程序编写一个登录页面。我使用ajax将用户名和pwd传递到php文件。在php文件中,我从以下代码开始

if(isset($_POST))
{
    $uname = $_POST['uname'];
    $pwd = $_POST['pwd'];
}
带有php插件的IntelliJ IDEA Ultimate突出显示“$\u POST”超全局,表示“不推荐的全局变量用法”

在Ajax代码和PHP代码之间传递变量的正确方法是什么

(或者这是IntelliJ IDEA中PHP插件的误报?)

Jquery/Ajax代码:

    <script>
    $(Document).ready(function (){
        $('#but_submit').click(function(){
            let uname = $('#txt_uname').val().trim();
            let pwd = $('#txt_pwd').val().trim();
            // alert("Your values are: "+ org + ", " + uname + ", " + pwd);

            // Now validate the input values.
            $.ajax({
                type: 'post',
                url: './Conf/Login.php',
                data: {uname: uname, pwd: pwd},
                success: function (res){
                    // Do somethings here;
                }
            });
        });
    });
    </script>

$(文档).ready(函数(){
$(“#但_提交”)。单击(函数(){
设uname=$('#txt_uname').val().trim();
设pwd=$('#txt_pwd').val().trim();
//警报(“您的值为:“+org+”、“+uname+”、“+pwd”);
//现在验证输入值。
$.ajax({
键入:“post”,
url:“./Conf/Login.php”,
数据:{uname:uname,pwd:pwd},
成功:功能(res){
//在这里做一些事情;
}
});
});
});

Well$\u POST将始终设置,但可能为空。更好的支票是

if ([] !== $_POST) { ... 
你可以考虑使用另一个技巧。以下步骤将导致更好的错误检查。请参阅手册

$uname = $_POST['uname'] ?? false;
$pwd = $_POST['pwd'] ??= false;
<>你每天都要用$POST,如果你从使用它得到错误,认为它是假阳性。将光标移动到IntelliJ中带下划线的文本,然后按
option+enter
将弹出一个包含可能修复的菜单。有时甚至可以为您自动修复问题。。请注意,即使是自动修复也可能是错误的。小心使用

至于将变量传递给JS,我会尽量避开注入领域。当您从php运行时添加js代码并直接将
$variables
传递到该代码中时,就会出现这种情况。这是肮脏的,但会让你在学习的同时度过难关。按照react编程的原则,使用Ajax和JSON编码/解码的异步调用通常是一种方法。您希望初始请求所需的所有信息都出现在初始有效负载中。因此,始终使用Ajax的方法是不好的。对于初始数据负载,只需将js常量设置为php json_编码的字符串

虽然这并不相关,但值得注意的是,在PHP中,使用数组将比使用对象处理数据快得多。这似乎是不寻常的知识