使用 php 到 link 到另一个 html 页面时访问被拒绝

Access Denied When using php to link to another html page

我是 php/html 的新手,请多多包涵。

所以在我网站的主页上,登录 link 会将用户带到

  1. 登录页面
  2. 用户页面(如果他们已经登录)

在完全实施之前,我决定检查我是否可以让一个简单的 php link 工作,我很高兴我做到了,因为它不起作用。

我目前有:

<a href="<?php echo 'login.html';?>">Login</a>

单击时应该转到 login.html,但是当您单击 link 时,您会得到 this 来自 XAMPP 的 appache error.log:

的相应错误日志

[Thu Aug 09 21:51:30.257273 2018] [core:error] [pid 37376:tid 1948] (20024)The given path is misformatted or contained invalid characters: [client ::1:49721] AH00127: Cannot map GET /poll/%3C?php%20echo%20%27login.html%27;?%3E HTTP/1.1 to file, referer: http://localhost/poll/Poll_home.html

如果我输入

而不是上面的代码
<a href="login.html">Login</a>

然后它工作正常,link让我进入登录页面。 任何帮助都会很棒!

编辑:

问题已通过创建新的 php 文件 (test.php) 解决。

<a href="test.php">Login</a>

但是当我尝试通过将 test.php 更改为以下内容来使 link 动态化时:

<?php
if(session_status() == PHP_SESSION_NONE){ //if already logged on
    header("Location: login.html");
}
else{ //If not
    header("Location: sign-up.html");
}
exit;
?>

它总是转到 login.html 即使我没有登录。

如果不能使用 php 使用这个

<a href="<?='login.html';?>">login</a>

或使用这个

<a href="login.html">Login</a>

根据错误消息

Cannot map GET /poll/%3C?php%20echo%20%27login.html%27;?%3E HTTP/1.1 to file, referer: http://localhost/poll/Poll_home.html

它说你正在Poll_home.html文件中编写PHP代码,这是问题所在,你应该在php文件中编写PHP代码(即Poll_home.php).当服务器看到 url 文件是 html 时,它不会执行它,而是将它的内容发送到用户浏览器。所以重命名你的文件并检查。应该可以。