MySQL连接和PHP会话的Ajax问题


Ajax problems with MySQL connection and PHP session

我遇到了一个问题。在我的index.php中,我建立了一个到MySQL数据库的连接,并启动了一个包含$_SESSION['name']$_SESSION['password']的会话。

我使用PHPinclude()将页面content.php包含到DIV中。现在我想在不重新加载页面的情况下刷新内容,所以我通过jQuerys load()通过Ajax再次加载content.php。content.php现在显示大量错误,因为它无法连接到数据库,也没有会话信息。jQuery中的load()函数是否有可能像PHP中的include()一样工作?

我希望有人能帮助我。

致问候,

Matteo

使用session_start()和mysql连接创建一个包含初始化代码的文件。然后,将其包含在您的index.php和content.php中。使用include_eoncerequire_eonce执行此操作,它将在这两种情况下都有效(在首次加载和ajax加载时)。

init.php

<?php
// Start or retrieve the session
session_start();
// Your connection to mysql
...
?>

index.php

<?php
// Init actions
include_once "init.php";
// Your code
....
?>

content.php

<?php
// Init actions
include_once "init.php";
// Your code
....
?>

有了这段代码,第一次包含content.php时,对init.php的调用将被忽略(因为它已经被index.php包含),当您从ajax调用contentphp时,它将包含您的会话和数据库连接。

让我猜猜看。index.php是什么持有mysql连接权?

如果。。然后,当您对content.php进行ajax调用时,它会期望在index.php中设置一个连接,但不会检索它,因为它是一个新请求。

您可以将mysql连接从index.php移动到content.php,或者在ajax调用中添加一个参数,然后在设置了该参数的情况下签入content.php。如果是,请建立新的连接。

content.php文件中是否包含所需的文件?除了调用session_start()之外,您仍然需要在此文件中声明的所有数据库连接。