php脚本正在输出php代码,不知道为什么

时间:2010-10-18 21:06:45

标签: php linux echo

我有一个简单的模态对话框,我在自己的linux服务器上开发,运行php 5.3。脚本(如下所示)在我的服务器上运行正常。但是,我将它移动到我的客户端的linux服务器,而不是回显它应该做的文本/ html,它回复了来自>的所有实际的PHP代码。 (大于)字符。有谁知道为什么它会回应实际代码?有没有导致这个的php.ini设置?或两个设置中的文件编码差异?

<?php


$to_email = 'myname@myemail.com';
 $link = $_GET['link'];
 if(!$link){
  echo '<p>Have a suggestion?<br />Enter the URL below!</p>';
 }else if(strlen($link) > 256 || !preg_match('/^(http:\/\/)?subdomain\.somesite\.com\/(somedir\/)?anotherdir\/(.+)/',$link) && !preg_match('/^(http:\/\/)?somedomain2\.com\/somedir2\/(.+)/',$link)){
  echo '<p class="error">Whoops, the URL entered doesn\'t <br />match the criteria.</p>';
 }else{
  $link = str_replace("\n.", "\n..", $link);
  if(!preg_match('/^http:\/\//',$link)){
   $link = 'http://'.$link;
  }
  mail($to_email, 'New URL Suggestion', "A new URL has been suggested from your site:\n\n".$link,"From: ".$to_email."\r\n");
  echo '<p>Thank you for submitting this URL! <br />It should be live within 24 hours.</p>';
 }
?>

我客户服务器上的结果是:

256 || !preg_match('/^(http:\/\/)?subdomain\.somesite\.com\/(somedir\/)?anotherdir\/(.+)/',$link) &&
!preg_match('/^(http:\/\/)?somedomain2\.com\/somedir2\/(.+)/',$link)){ echo '
Whoops, the URL entered doesn\'t 
match the criteria.

'; }else{ $link = str_replace("\n.", "\n..", $link);
if(!preg_match('/^http:\/\//',$link)){ $link = 'http://'.$link; } mail($to_email,
'New URL Suggestion', "A new URL has been suggested from your site:\n\n".$link,"From:
".$to_email."\r\n"); echo '
Thank you for submitting this URL! 
It should be live within 24 hours.

'; } ?>

3 个答案:

答案 0 :(得分:7)

听起来其他服务器没有配置为运行PHP。在配置中是否有这样的行?

AddType application/x-httpd-php .php .html .htm

答案 1 :(得分:3)

如果你正在运行apache,你的httpd.conf文件可能没有启用php模块。

答案 2 :(得分:1)

如其他错误中所述,这可能是服务器配置问题。

如果你正在使用Apache(你可能是),你应该去看看他们机器上的httpd.conf,它可能位于/etc/apache2/

如果您将PHP作为模块运行(默认情况下是这样),那么您需要确保其中有一行如下所示:

LoadModule php5_module modules/libphp5.so

(这就是我的样子,路径/文件名可能不同)

如果您使用Fast-CGI运行PHP,我不确定,因为我从未使用过它:D

无论哪种方式,你也想做@Alex Howansky的建议,并检查httpd.conf一行看起来像

AddType application/x-httpd-php .php .html .htm

这会将Apache配置为将指定的扩展名与PHP相关联。