php скрипт выводит php код, не знаю почему - PullRequest
0 голосов
/ 19 октября 2010

У меня есть простой модальный диалог, который я разработал на своем собственном 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 ]

7 голосов
/ 19 октября 2010

Похоже, что другой сервер не настроен для запуска PHP. Есть ли такая строка в конфиге?

AddType application/x-httpd-php .php .html .htm
3 голосов
/ 19 октября 2010

Если вы используете apache, в вашем файле httpd.conf, вероятно, не включен модуль php.

1 голос
/ 19 октября 2010

Как уже упоминалось в других ошибках, возможно, это проблема конфигурации сервера.

Если вы используете Apache (вероятно, так и есть), вам следует взглянуть на httpd.conf на их компьютере, который, вероятно, находится в /etc/apache2/.

Если вы используете PHP как модуль (по умолчанию вы используете его), вам необходимо убедиться, что в нем есть строка, которая выглядит следующим образом:

LoadModule php5_module modules/libphp5.so

(Вот так у меня выглядит, путь / имя файла может быть другим)

Если вы используете PHP с Fast-CGI, я не уверен, поскольку я никогда не использовал его: D

В любом случае, вы также хотите сделать то, что предлагает @Alex Howansky, и проверить httpd.conf на наличие строки, которая выглядит как

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

Это настраивает Apache для связи указанных расширений с PHP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...