【问题标题】:I moved my PHP file to a subfolder and it's not working anymore我将我的 PHP 文件移动到一个子文件夹,但它不再工作了
【发布时间】:2011-07-13 21:17:22
【问题描述】:

下面是我网站上文件夹的文档树。在我的 html 表单中,action 属性包含这个值:delete_post.php。当我将操作更改为 /do/delete_post/index.php 时,它不起作用。我怎么能改变这个:do/delete_post/index.php 或其他东西让它工作?

index.php文件如下图:

<?php
session_start();
if (!isset($_SESSION['user']) || empty($_POST['id'])) 
  {
  header( "Location: /" );
  die();
  }
require_once( dirname(__FILE__) . '/includes/db.php')
$stmt2 = $db->prepare('DELETE FROM posts WHERE id = ?');
if (!$stmt2->execute(array($_POST['id'])))
  {
  print_r($stmt2->errorInfo());
  die();
  }
header( "Location: /" );

?>

当我在 php 中使用 jquery 和以下页面发出 ajax 请求时,index.php 无法删除帖子。

【问题讨论】:

  • 怎么不行?发送表单时遇到什么错误?你最终的网址是什么?
  • 我正在使用 ajax(除非我使用数据包嗅探器,否则我无法真正看到错误。)
  • @inquisitive 为什么你不能使用 Firebug 的“网络”标签?比猜测要好得多,这是我们现阶段所能做的。
  • 我有 firebug lite 但没有 firebug。而且我没有看到网络标签。

标签: php jquery ajax action subdirectory


【解决方案1】:

你能导航到 /do/delete_post/index.php 没有任何错误(可见或在 php error_log 中)吗?

我怀疑:

include_path 问题

-或-

使用 .htaccess 重写一些 url。根目录中是否有 .htaccess 文件?

【讨论】:

    【解决方案2】:

    您的工作流程中是否包含任何文件?

    如果您使用相对路径,它们总是相对于当前工作目录 (CWD),通常是您执行脚本所在的目录。

    如果您更改 delete_post.php 的文件夹,并且您包含的脚本包含具有相对路径的其他脚本,则这些脚本将无法加载,因为 CWD 会有所不同。

    因此,不要使用相对路径,而是使用以下内容:

    include dirname(__FILE__) . '/data.inc.php';
    

    【讨论】:

    • 我认为你是对的。在我的 index.php 中,我有这行代码(如下所示),它应该包含一个位于 root/includes/db.php 中的文件,如何更改下面的 php 行来解决我的问题? require_once('/includes/db.php');
    • @inquisitive_web_developer:不,因为/includes/db.php 是从您的Linux 安装根目录开始的绝对路径...我怀疑您的文件在那里解析...但是,您可以将其更改为@987654324 @.
    • 我试过你说的。它仍然不起作用。如果有帮助,我在问题中添加了 index.php 的来源。
    • @inquisitive_web_developer:好吧,如果您确实移动了文件,则需要将该文件中的require_once 更新为require_once( dirname(__FILE__) . '/../../includes/db.php')
    猜你喜欢
    • 1970-01-01
    • 2022-10-25
    • 2011-12-29
    • 1970-01-01
    • 1970-01-01
    • 2017-05-04
    • 2013-12-21
    • 2016-01-25
    • 2011-04-24
    相关资源
    最近更新 更多