关于html:为什么PHP包含在本地服务器而不在网站上

Why PHP include is working on local server and not on website

问题简述:
当我从index.html文件的页脚标记中"包含"PHP脚本时,它似乎可以在我的本地Web服务器上工作,但当我将其上载到我的网站时,它就不工作了。注意,我已经确保了所有路径都是正确的,并且脚本文件有自己的PHP标记等。

问题详细描述:
是的,我对PHP脚本还不熟悉,是的,这个问题的变体可能以前就有人问过。我读过的几个问题的答案指出了PHP脚本文件的路径不正确。我已经检查了所有路径,并确认它们确实是正确的(包括Web宿主服务器上的路径)。此外,我已经成功地让脚本在运行apache2和php5的本地服务器上运行,但在将其上载到我的网站时没有成功。

从本质上讲,我正试图实现一个计数器脚本,这个脚本是我从一个栈溢出贴有"访问者计数器"标签的简单网站(如Vinaora)获得的。调用PHP脚本的代码如下所示…

1
2
3
4
  &ltfooter&gt
    &lt!-- Execute Hit Counter Script --&gt
    &lt?php include($_SERVER['DOCUMENT_ROOT'].'/php/hitcounter.php'); ?&gt
  &lt/footer&gt

对于像我这样的人,我不明白为什么它不能在Web托管服务器上工作。我尝试过调用脚本的其他组合,比如,

1
2
3
4
  &ltfooter&gt
    &lt!-- Execute Hit Counter Script --&gt
    &lt?php include('./php/hitcounter.php'); ?&gt
  &lt/footer&gt

而且,

1
2
3
4
  &ltfooter&gt
    &lt!-- Execute Hit Counter Script --&gt
    &lt?php include(dirname(__FILE__).'/php/hitcounter.php'); ?&gt
  &lt/footer&gt

所有的组合似乎都可以在我的本地Web服务器上使用,但不能在网站上使用!另外请注意,使用其他方法(甚至在Web宿主服务器上)调用其他PHP脚本没有问题,例如。

1
    &ltform id="form-query" onsubmit="this.checkValidity();" action="./php/contact.php" method="post"&gt

如有任何建议,我们将不胜感激。


有PHP错误吗?

首先,您需要激活错误报告。

把这个放在包含你的文件之前

1
2
ini_set('display_errors',1);
error_reporting(-1);

PHP应该告诉你发生了什么。

如果看不到任何内容,请将index.html文件名更改为index.php,然后重试。


有时可能是因为套管。检查命名是否为大写。在某些服务器上index.php不等于index.php


可能您在include路径中使用了""。

错误:

你应该用"/"来工作。

电流:


您可以尝试将"include"代码直接粘贴到调用代码中。可能是所包含的代码本身行为不正常…


你一开始做的完全不正确。

PHP script seems to work on my local web server when I 'include' it from the footer tag of my index.html

完全错了

没有像在HTML文件中嵌入php文件这样的事情(除了mod ou rewrite…)。对于要解释的PHP脚本,您必须(在99%的情况下)使用带有PHP后缀的脚本。通过这种方式,您可以让PHP将其与常规的PHP区分开来,并发送到PHP解释器。

简单地说-创建这个文件(a.html):

1
2
3
<body>
abcd<?php echo 'efgh';?>
</body>

在浏览器中查看结果-使用…/a.html

你看到什么了?

abcd

而不是

abcdefgh

最重要的是,你必须有PHP,而不是相反。如果不正确,请解决此问题或更新您的问题。