【问题标题】:Path to parent ignored in HTML form action stringHTML 表单操作字符串中忽略的父路径
【发布时间】:2014-02-22 03:51:29
【问题描述】:

我正在尝试将表单中的操作链接到 php 脚本:

<form action='../includes/RC_APP/process_login.php' method="post" name="login_form">

但是它返回错误: 在此服务器上未找到请求的 URL /includes/RC_APP/process_login.php。

PHP 包含工作正常:

<?php
include_once '../includes/RC_APP/db_connect.php';
include_once '../includes/RC_APP/functions.php';

我唯一的想法是 HTML 不会处理 Web 服务器文档根目录上方的访问,而 PHP 会;但这与将 PHP 包含文件保留在 Web 服务器的文档根目录之外的安全建议相矛盾。

任何建议将不胜感激。

【问题讨论】:

  • 使用基本路径,然后是您的目录和文件名。
  • 谢谢,我认为 basepath 是 PHP 函数而不是 HTML 函数;会查找并尝试澄清。
  • 为什么要直接发布到包含目录中的文件?好像有点奇怪。。
  • 我是第一次设置登录过程,参考了很多不同的建议,主要是利用wikihow.com/Create-a-Secure-Login-Script-in-PHP-and-MySQL提出的方法。
  • @AwladLiton 一直在研究基本路径的使用,我没有听从你的建议;您能否详细说明您如何建议在表单操作中使用基本路径?

标签: php html forms


【解决方案1】:

你需要在 head 部分设置基本路径。

像这样:

<head>
<base href="your_site/sub_directory/">
</head>

基本标签使所有链接都不同,包括指向基本标签网址的同一页面锚链接,例如:

<a href='?update=1'>A link to this page</a>

变成

<a href='your_site/sub_directory/?update=1' title='Some title'>A link to the base tag's page instead</a>

如果您需要转到基本路径中同一目录中的另一个文件夹,例如一个文件夹包含在基本路径目录中的链接中:

 <a href='includes/'>A link to this page</a>

如果您需要转到另一个基本路径的父文件夹,例如一个文件夹包括:

 <a href='..includes/'>A link to this page</a>

查看更多详情:Is it recommended to use the <base> html tag?

【讨论】:

  • 您好,感谢您的回答,但我不确定这将如何缓解问题,因为问题不是文档根目录的子目录,而是文档根目录上方的目录。即使在 HTML 的 Head 中使用 Base 标签,错误也是一样的;它似乎正在删除 ../ 父说明符。
  • 我想我已经找到了我的问题的答案,因为表单操作无法访问文档根目录上方的任何内容:stackoverflow.com/questions/11390420/…
【解决方案2】:

我想我已经找到了问题的答案,因为表单操作无法访问文档根目录上方的任何内容:

HTML form action using a php file outside of root directory?

【讨论】:

  • 按照链接的 Stack Overflow 主题的建议,通过包含一个包含指向实际脚本链接的本地 PHP 文件,该页面现在可以正常工作。感谢大家的帮助和建议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-27
  • 2019-03-28
相关资源
最近更新 更多