【问题标题】:A PHP script (form 'action' attribute) always returns 404PHP 脚本(表单 'action' 属性)总是返回 404
【发布时间】:2015-07-31 03:05:22
【问题描述】:

我遇到了这个奇怪的问题,向我的自定义 PHP 脚本发送 POST 请求总是返回 404 - 找不到脚本文件。

我觉得这很奇怪,因为相同的代码存在于三个不同的服务器上。其中两个按预期处理请求,第三个总是返回 404。

这是表单标签:

<form action="<?php echo SITE_URL ?>/web/advertisers-cats-action.php" ..

所有三台服务器的文件权限相同。 questiosn 中的脚本是-rw-rw-r--, "."和 ".." 是 drwxr-xr-x 以便浏览器可以在 fodlers 之间导航

当我收到 404 错误时,脚本的路径是正确的。它准确地指向它在服务器上的脚本。

我可以在浏览器中导航到脚本的父目录。然后我看到脚本与其他文件一起列出。当我单击文件时(不提交 POST 请求,但这次 GET - 只需单击它),我得到 404。

仅在三台服务器之一上是这种情况。

这里可能有什么问题?

【问题讨论】:

  • 检查你的页面的来源,看看你在行动 attr 中找到了什么
  • @vps 刚刚查了源,action属性的url是正确的。
  • 有问题的服务器是否使用不同的安全策略托管?见Same Origin Policy
  • 你能直接用浏览器访问那个网址吗?
  • 该文件夹中是否有任何重写或其他与 .htaccess 相关的内容?

标签: php post http-status-code-404


【解决方案1】:

你缺少分号和语法错误,你必须使用

"回显站点_url();"

【讨论】:

  • SITE_URL 是一个常数,而不是一个函数。您实际上是正确的,应该有一个分号。但是,检查页面的来源,我可以在表单的 action 属性中看到正确的 URL。这让我觉得这不是问题的原因。
  • 像这样的内联 PHP 不需要分号。
猜你喜欢
  • 2019-01-05
  • 2013-07-31
  • 2021-08-05
  • 2015-07-31
  • 1970-01-01
  • 2015-01-04
  • 2017-12-29
  • 2013-07-13
  • 2011-08-11
相关资源
最近更新 更多