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获取信息,以便在数据库中添加/编辑/删除数据。