【问题标题】:URL to PHP file not workingPHP 文件的 URL 不起作用
【发布时间】:2018-03-21 13:10:14
【问题描述】:

我正在尝试学习 HTML 和 PHP,因此尝试构建带有一些链接的登录表单。

bebsite 可以正常打开,但是注册链接似乎无处可去。

我的索引文件如下:

<?php
 include ('../app/header.php');
 ?>
    <section class="main-container">
      <div class="main-wrapper">
        <h2>Home</h2>
      </div>
     </section>
 <?php
   include ('../app/footer.php');
 ?>

而我的头文件php如下:

<!DOCTYPE html>
<html lang="en" dir="ltr">
 <head>
  <meta charset="utf-8">
  <title>Welcome</title>
   <link rel="stylesheet" type="text/css" href="/css/styles.css">
 </head>
 <body>
<header>
  <nav>
    <div class="main-wrapper">
      <ul>
        <li><a href="/index.php">Home</a></li>
      </ul>
      <div class="nav-login">
        <form>
          <input type="text" name="uid" placeholder="Username\e-mail">
          <input type="password" name="pwd" placeholder="password">
          <button type="submit" name="submit">Login</button>
        </form>
        <a href="../app/signup.php">Sign up</a>
      </div>
    </div>
  </nav>
</header>

问题是href 链接到注册 php 让我无处可去。但是,如果我将文件复制到公共目录并更改链接中的路径,它就可以正常工作。

另外,点击注册链接后,我的 URL 显示 localhost\app\signup.php。

我正在使用 xammp

有人可以就链接为什么不能按预期工作提供建议吗?

谢谢

更新:

我的目录如下:

C:\xampp\htdocs\basicwebsite\public\index.php

所有 PHP 文件都在这里:

C:\xampp\htdocs\basicwebsite\app

【问题讨论】:

  • 请显示您的目录结构,特别是索引文件的位置以及signup.php 文件相对于它的位置
  • 我会冒险猜测 URL 应该是 '/signup.php',但我不能确定
  • 按要求添加路径@FedericoklezCulloca
  • 如果您希望浏览器请求文件,则该文件必须通过网络服务器(公共)对用户可见。每个 php 页面都是一个入口点...
  • 戴尔如果我声明它会表明注册 php 位于公共文件夹中,而不是

标签: php html xampp href


【解决方案1】:

据我所知,这些是您的文件夹:

// site
   // app
      signup.php
   // public
      index.php

您的 http 服务器使用 public 文件夹作为 doc root,因此访问 http://localhost/index.php 与访问 public/index.php 相同。

如果您链接到 ../app/signup.php您的浏览器 将尝试访问 http://localhost/../app/signup.php,因为您无法在 doc 根目录之外请求文件 它不会找到您的文件。

这不是 php、apache 甚至 xampp 独有的,而是适用于所有 http 服务器。

要使其正常工作,您系统的所有入口点(如索引和注册)都必须对浏览器公开。

将您的文件移动到public/signup.php 并更新链接即可。

【讨论】:

  • 这就是我所拥有的。有办法解决吗?
  • 这是答案吗?
  • 已更新解决方案:将您的 signup.php 移至 public/ 并正常链接。
【解决方案2】:

您可能希望正确理解如何使用绝对路径和相对路径(this 是 W3S 的快速参考)并且 - 正如 Federico klez Culloca 在第一条评论中所写 - 检查您的目录结构以验证路径是否正确指向到您要链接的资源。

此外,请注意您的&lt;form&gt; 不会向您的signup.php 脚本发送任何数据。您必须指定一个操作并最终指定一个方法来执行此操作,如下所示:

<form action='/app/signup.php' method='post'>
... your input fields here ...
... your submit button ...
</form>

【讨论】:

  • 目前没有,但我的下一步是连接到数据库并编写一个注册脚本,我将其定义为一个操作。我了解相对路径等,但不太确定为什么我不能以这种方式访问​​上层文件夹。我现在明白了。谢谢
【解决方案3】:

设法解决了这个问题。

在 public 文件夹中创建了一个新的 php 文件,其中包含如下的 include 语句:

<?php include ('../app/signup.php') ?>

我的原始链接调用如下:

<a href="signup_form.php">Sign up</a>`

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-09-28
    • 2012-01-08
    • 1970-01-01
    • 2011-11-01
    • 2015-02-11
    • 2017-07-12
    • 2017-08-01
    相关资源
    最近更新 更多