Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在AJAX调用中处理PHP会话变量?_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript 如何在AJAX调用中处理PHP会话变量?

Javascript 如何在AJAX调用中处理PHP会话变量?,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,当我试图将一个会话变量放入一个用AJAX调用的php脚本中以进行MySQL查询时,它会给我“” 我已经尝试过在加载我的网页时使用一个用php填充的隐藏输入来传递id,该函数成功了!但是,当我试图直接从AJAX调用的脚本捕获会话变量时,它会再次停止工作:( 这是我设置php变量的代码,我直接从html表单调用这个脚本 <?php if(isset($_POST['empresa'])) { if(isset($_POST['usuario']))

当我试图将一个会话变量放入一个用AJAX调用的php脚本中以进行MySQL查询时,它会给我“”

我已经尝试过在加载我的网页时使用一个用php填充的隐藏输入来传递id,该函数成功了!但是,当我试图直接从AJAX调用的脚本捕获会话变量时,它会再次停止工作:(

这是我设置php变量的代码,我直接从html表单调用这个脚本

<?php

    if(isset($_POST['empresa']))
    {
        if(isset($_POST['usuario']))
        {
            if(isset($_POST['password']))
            {

                $empresa = $_POST["empresa"];
                $usuario = $_POST["usuario"];
                $password = $_POST["password"];

                $host = "localhost";
                $bd = "nominet_Directorio_Web_Beta";
                $us = "nominet_Marvin2";
                $pas = "NominetBD2019!";

                error_reporting(0);

                $con = new mysqli($host, $us, $pas, $bd);

                if($con->connect_errno)
                {
                    echo "Error de conexión al servidor de base de datos...";
                    exit(); 
                }

                mysqli_set_charset('utf8');

                $query = "SELECT `Tbl_Usuarios`.`Id`, `Tbl_Usuarios`.`Fk_Empresa`, `Tbl_Usuarios`.`Tipo_Usuario` FROM `Tbl_Usuarios` INNER JOIN `Tbl_Empresas` ON `Tbl_Usuarios`.`Fk_Empresa` = `Tbl_Empresas`.`Id` WHERE `Tbl_Usuarios`.`Usuario` = '" . $usuario . "' AND `Tbl_Usuarios`.`Password` = '" . $password . "' AND `Tbl_Empresas`.`Razon_Social` = '" . $empresa . "'";
                //$query = "SELECT `Tbl_Administradores`.`Id` FROM `Tbl_Administradores` WHERE `Tbl_Administradores`.`Usuario` = '" . $usuario . "' AND `Tbl_Administradores`.`Password` = '" . $password . "'";

                $resultado = mysqli_query($con, $query);
                $res= mysqli_fetch_array($resultado);

                if($res["Id"] > 0)
                {

                    session_start();

                    $_SESSION["Id"] = $res["Id"];
                    $_SESSION["Empresa"] = $res["Fk_Empresa"];
                    $_SESSION["Usuario"] = $usuario;
                    $_SESSION["Tipo_Usuario"] = $res["Tipo_Usuario"];

                    header("Location: ../SISTEMA/");
                }
                else
                {
                    header("Location: ../?error=0");
                }

            }
            else
            {
                header("Location: ../?resp=error1");
            }

        }
        else
        {
            header("Location: ../?error=2");
        }
    }
    else
    {
        header("Location: ../?error=3");
    }
?>
这是我的php脚本,我在这里调用数据库

<?php

    $funcion = $_POST['funcion'];

    switch($funcion){
        case 'contactosGeneral':
            break;
    }

    function contactosGeneral(){
        require("../../ABRIR_CON.php");

        //$empresa = $_POST['empresa'];

        session_start();

        $empresa = $_SESSION["Empresa"];

        $sql = 'SELECT COUNT(`Tbl_Contactos`.`Id`) AS "resp" FROM `Tbl_Contactos` WHERE `Tbl_Contactos`.`Fk_Empresa` = ' . $empresa;

        $query = mysqli_query($con, $sql);

        $json = array();

        while($row = mysqli_fetch_array($query))     
        {

            $json[]=array('resp'=>$row['resp']);
        }


        $resources_JSON_array = json_encode($json);
        echo $resources_JSON_array;

        require("../../CERRAR_CON.php");
    }

?>

正如@Barman所说,我从未将我的php函数
contactosGeneral()
调用到我的
switch(){}
code:B

你从未在php脚本中调用过
contactosGeneral()
。你需要把它放在
案例“contactosGeneral”中:
仅供参考,你可以使用
$json[]=$row;
,您不需要创建新数组。也不需要
while
循环,因为查询只返回1行。
会话_start();
应该是脚本(您调用数据库的脚本)中添加会话开始后的第一行也要像本例一样验证会话,否则返回禁止的内容
<?php

    $funcion = $_POST['funcion'];

    switch($funcion){
        case 'contactosGeneral':
            break;
    }

    function contactosGeneral(){
        require("../../ABRIR_CON.php");

        //$empresa = $_POST['empresa'];

        session_start();

        $empresa = $_SESSION["Empresa"];

        $sql = 'SELECT COUNT(`Tbl_Contactos`.`Id`) AS "resp" FROM `Tbl_Contactos` WHERE `Tbl_Contactos`.`Fk_Empresa` = ' . $empresa;

        $query = mysqli_query($con, $sql);

        $json = array();

        while($row = mysqli_fetch_array($query))     
        {

            $json[]=array('resp'=>$row['resp']);
        }


        $resources_JSON_array = json_encode($json);
        echo $resources_JSON_array;

        require("../../CERRAR_CON.php");
    }

?>