我将 PHP 文件移至子文件夹,但它不再工作

发布于 2024-10-21 23:55:27 字数 701 浏览 3 评论 0原文

下面是我网站上文件夹的文档树。在我的 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 无法删除帖子。

Below is a document tree of the folders on my website. In my html form the action attribute holds this value: delete_post.php. When I changed the action to /do/delete_post/index.php it wouldn't work. How could I change this: do/delete_post/index.php or something else to make it work?

The index.php file is shown below:

<?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: /" );

?>

When I make an ajax request using jquery in php with the following page the index.php fails to delete the post.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

血之狂魔 2024-10-28 23:55:27

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

我怀疑:

include_path 问题

- 或者 -

使用 .htaccess 进行一些 url 重写。根目录中有 .htaccess 文件吗?

can you navigate to /do/delete_post/index.php without any errors (visible or in php error_log)?

i suspect either:

include_path issues

-or-

some url rewriting with .htaccess. is there a .htaccess file in the root dir?

清醇 2024-10-28 23:55:27

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

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

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

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

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

Do you include any files within your workflow?

If you use relative paths, they are always relative to the current working directory (CWD) which is usually the directory where your executing script is.

If you change delete_post.php's folder and you are including a script which includes other scripts with relative paths, these scripts will fail to load as the CWD will be different.

So, instead of using relative paths, use the following:

include dirname(__FILE__) . '/data.inc.php';
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文