我正在尝试学习HTML和PHP,因此尝试使用一些链接构建登录表单。
bebsite打开OK,但是注册的链接似乎无处可去。
我的索引文件如下:
<?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>
问题是注册php的href
链接让我无处可去。但是,如果我将文件复制到公共目录并更改链接中的路径,那么工作正常。
此外,点击注册链接后,我的网址显示localhost \ app \ signup.php。
我正在使用 xammp 。
有人可以告知为什么链接无法按预期工作吗?
由于
更新:
我的目录如下:
C:\ XAMPP \ htdocs中\ basicwebsite \公共\的index.php
并且所有PHP文件都在这里:
C:\ XAMPP \ htdocs中\ basicwebsite \应用
答案 0 :(得分:0)
据我所知,目前这些是您的文件夹:
// 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 root 之外请求文件>它找不到你的文件。
这不是php,apache甚至是xampp所有,但对于所有http服务器都是如此。
要使其正常工作,必须将所有系统的入口点(如索引和注册)公之于众。
将文件移至public/signup.php
并更新链接即可。
答案 1 :(得分:0)
您可能想要正确理解如何使用绝对路径和相对路径(this是W3S的快速参考)和 - 如Federico klez Culloca在第一条评论中所写 - 检查您的目录结构以验证路径正确指向您要链接的资源。
此外,请注意您的<form>
未向您的signup.php脚本发送任何数据。您必须指定一个操作,并最终指定一个方法,如下所示:
<form action='/app/signup.php' method='post'>
... your input fields here ...
... your submit button ...
</form>
答案 2 :(得分:0)
管理以解决这个问题。
在公共文件夹中创建了一个新的php文件,其中包含一个include语句,如下所示:
<?php include ('../app/signup.php') ?>
我的原始链接调用如下:
<a href="signup_form.php">Sign up</a>`