Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.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
Php 关于使用AJAX时会话_start()的说明_Php_Ajax_Session - Fatal编程技术网

Php 关于使用AJAX时会话_start()的说明

Php 关于使用AJAX时会话_start()的说明,php,ajax,session,Php,Ajax,Session,我最近在日志中发现以下错误: session\u start():无法发送会话缓存限制器-头已发送 我对使用会话是新手,所以我并不感到惊讶。我在header.php文件中使用以下代码: <?php session_start(); include_once 'dbconnect.php'; if(!isset($_SESSION['usr_id'])) { header("Location: login.php");

我最近在日志中发现以下错误:

session\u start():无法发送会话缓存限制器-头已发送

我对使用会话是新手,所以我并不感到惊讶。我在header.php文件中使用以下代码:

<?php
    session_start();
    include_once 'dbconnect.php';
      if(!isset($_SESSION['usr_id'])) {
         header("Location: login.php");
      }
?>

我主要使用AJAX与一些处理数据库相关功能的文件进行交互。我是否也需要在后端php文件中添加会话_start()?我目前正在这样做:

<?php
    $inputvalues = $_POST;
    $errors = false;
    $result = false;
    include_once 'database.php';

    session_start();
    
    if(!isset($_SESSION['usr_id'])) {
        header("Location: login.php");
    }

    $uid = $_SESSION['usr_id'];
     
        if (mysqli_connect_errno()) {
            printf("Connect failed: %s\n", mysqli_connect_error());
            exit();
        }

    if( !$errors ) {
            // insert your query
            $mysqli->query("
                INSERT INTO `contributions`(`uid`, `contributionname`, `contributiontype`, `contributionamount`, `employee`) 
                values ('".$uid."', '".$inputvalues['contributionname']."', '".$inputvalues['contributiontype']."', '".$inputvalues['contributionamount']."', '".$inputvalues['employee']."');
            ");
                        // select your query
        $addresult = "Success";
        $returnResult = $addresult;
        }

        // close connection
        mysqli_close($mysqli);

        // print result for ajax request
        echo json_encode(['result' => $returnResult, 'errors' => $errors]);

        exit;
    ?>


这就是导致我出错的原因吗?

你是在说后面的管理面板吗?在你的文件
database.php
中有一个
echo
字符串或空格。你能显示你的
database.php
代码吗?在使用session_start()之前,不应该打印输出(test/html/space);。请检查这一点。您还可以做一件事保持
会话_start()在页面顶部,检查您遇到的错误。我想你会从不同的文件中得到相同的错误。@PavanBaddi不,我的意思是在我的PHP文件中,这些文件不可见,只是通过AJAX获取信息,以便在数据库中添加/编辑/删除数据。