【问题标题】:Confusion regarding file structure of PHP/ HTML project (with a form)关于 PHP/HTML 项目文件结构的困惑(带表单)
【发布时间】:2019-04-14 17:33:40
【问题描述】:

以下是我的网站在域服务器(不是本地主机)上的文件结构:

public_html
--- index.html
real-estate-website
--- resources
--- --- sign_up.php

我的 index.html 文件中有一个表单指向...

../real-estate-website/resources/sign_up.php

我曾尝试在此之前添加一个 ./,但没有任何区别。当我从我的域提交表单时,我收到 404 错误,地址栏中包含以下 url:

[domain-name]/real-estate-website/resources/sign_up.php

表单指向的位置是否存在问题,还是我忽略了其他内容?任何帮助表示赞赏。如果我应该澄清我的问题的任何部分,请告诉我

【问题讨论】:

  • public_html 是网络根吗?如果是这样,您尝试访问的文件夹在它之外。将real-estate-website 文件夹放入public_html
  • 我很确定它是 webroot。那么我该如何解决这个问题呢?

标签: php html path filepath


【解决方案1】:

通常在网络托管服务提供商的服务器中,public_html 是您放置网站用户(通过网络浏览器)可以访问的所有文件的文件夹,此文件夹之外的任何文件都不能直接从Web 浏览器,除非您使用一些 PHP 代码以某种方式传递它。

这里您使用的是 HTML 表单并使用其 action 属性,该属性应始终指向可访问的文件,即 public_html 中的文件。

我的建议是将文件夹 real-estate-website 及其内容移到 public_html 文件夹中。

public_html
--- index.html
--- real-estate-website
--- --- resources
--- --- --- sign_up.php

并更改表单的action 属性值以指向您想要的文件:/real-estate-website/resources/sign_up.php

更新

关于下面的 cmets,我对 PHP include 的意思是例如在 public_html 之外创建一个 PHP 文件:

public_html
--- index.html
--- real-estate-website
--- --- resources
--- --- --- sign_up.php
config
--- settings.php

在 settings.php 中放置敏感数据:

<?php
const EMAIL_PWD = 'secret';

在您的 sign_up.php 中,在代码顶部包含 settings.php,如下所示:

<?php
include __DIR__ . '/../config/settings.php';

因此,在您的 sign_up.php 代码中,您应该可以访问字符串常量 EMAIL_PWD 并相应地使用它。

【讨论】:

  • 即使我将文件移动到 public_html 文件夹中,您确定我的文件是安全的吗?我问这个是因为我的其他一些 php 文件包含密码和对我网站其他部分的验证。
  • 您好,出于安全原因,密码和其他敏感数据等内容应有效地位于 Web 根 (public_html) 文件夹之外,并使用 PHP,例如include 包含定义它们的文件,或者 parse_ini_file 如果您选择将它们放在 .ini 文件中,您可以更进一步,仅将包含最少逻辑和 HTML 的文件主要放在 public_html 中,并从他们include 其他包含控制器、实体、函数等逻辑的文件将在 public_html 之外。
  • 我仍然对如何将其应用于我的场景感到困惑。我在 index.html 中的表单提交给发送电子邮件的 sign_up.php。电子邮件功能包含电子邮件帐户的密码,因此按照您所说的,我不能在 public_html 中拥有它。在这种情况下我将如何使用“包含”?
  • 通常,即使您将密码放在 public_html 内的 PHP 文件中,也应该很难显示它,您不会在代码中 echo 自己。黑客实际上必须找到一种方法来显示在 sign_up.php 中编写的实际代码才能看到密码。我不是安全专家,但在我看来这是一项艰巨的任务,除非访问我不知道的服务器。
  • @ShivangPatel 您还可以看到我的答案编辑可能使用include
猜你喜欢
  • 1970-01-01
  • 2013-12-31
  • 1970-01-01
  • 2015-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多