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

Posted

技术标签:

【中文标题】使用 php 链接到另一个 html 页面时访问被拒绝【英文标题】:Access Denied When using php to link to another html page 【发布时间】:2019-01-17 14:01:42 【问题描述】:

我对 php/html 还很陌生,所以请耐心等待。

所以在我网站的主页中,登录链接将用户带到任一

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

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

我目前有:

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

单击时应该转到 login.html,但是单击链接时会得到this 来自 XAMPP 的 appache error.log 的对应错误日志:

[Thu Aug 09 21:51:30.257273 2018] [core:error] [pid 37376:tid 1948] (20024)给定的路径格式错误或包含无效字符:[client ::1:49721] AH00127: 不能将 GET /poll/%3C?php%20echo%20%27login.html%27;?%3E HTTP/1.1 映射到文件,引用者:http://localhost/poll/Poll_home.html

如果我放的不是上面的代码

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

然后它工作正常并将我链接到登录页面。 任何帮助都会很棒!

编辑:

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

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

但是当我尝试通过将 test.php 更改为这样来使链接动态化时:

<?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 尚未启用或您正在 html 文件中编写 php 代码。 我有一个 connect.php 用于连接到 mysql 数据库并且工作正常,所以我认为这不是问题吗?也是的,我正在写一个 html 文件。这是一个问题吗?我觉得如果我把 你的意思是你在一个扩展名为.html的文件中编写php代码? 是的。 html中唯一的php代码就是那个echo。 在您的登录页面...您是否在成功登录后创建会话变量? 【参考方案1】:

如果不使用 php,请使用此

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

或者使用这个

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

【讨论】:

第一个不行。我犯了同样的错误。至于第二个,是的,但我需要稍后扩展它(我在帖子开头提到过)以使链接成为 login.html 或 user.html,这就是我 nedd php 部分的原因。 我该怎么做?我是新手,所以我不太了解哈哈。 你设置xampp没问题?? 是的,据我所知,它应该自动允许 php【参考方案2】:

根据错误信息

无法映射 GET /poll/%3C?php%20echo%20%27login.html%27;?%3E HTTP/1.1 提交,推荐人:http://localhost/poll/Poll_home.html

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

【讨论】:

但我见过有人用 标签在 html 中编写 php? 如果您在html文件中编写php代码,那么服务器将其视为普通文本作为html的一部分,您可以通过查看文件的源代码来验证它,只需右键单击并选择查看源,您可以看到你的php代码。 所以我将 php 写在一个新文件 (test.php) 中,它似乎确实有效。 登录。但是当我尝试扩展它并实现最初的目标时遇到了一个新问题(请参阅编辑后的帖子)。 如果这回答了您的原始问题,您应该将其标记为已接受的答案。如果您有新问题,您应该在新帖子中提出新问题,而不是将其附加到已回答的问题中

以上是关于使用 php 链接到另一个 html 页面时访问被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

使用 PHP,如何链接页面并在单击时使用变量加载它? [复制]

php如何跳转一个链接,并隐藏这个链接?

使用 jQuery Ajax 将数据发布到另一个 php 文件 [重复]

怎么实现点击本页面的超链接a,跳到另一个页面,并触发另一个页面的onclick事件

php 如何得到访问者在当前页面的停留时长?

怎样在页面做一个链接跳转另一个页面