使用AJAX

时间:2017-05-04 07:23:53

标签: php ajax session

我最近在日志中遇到以下错误:

session_start(): Cannot send session cache limiter - headers already sent

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

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

我主要使用AJAX与处理数据库相关功能的一些文件进行交互。我是否需要在后端php文件中添加session_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;
    ?>

这是导致我错误的原因吗?我将不胜感激任何帮助。感谢

0 个答案:

没有答案