У меня есть простой модальный диалог, который я разработал на моем собственном сервере linux, работающем под php 5.3. Скрипт (показано ниже) отлично работает на моем сервере. Тем не менее, я переместил его на linux-сервер моего клиента и вместо того, чтобы повторять текст/html, который, по-видимому, должен делать, он вызывает ВСЕ фактический php-код из символа> (больше). Кто-нибудь знает, почему это будет отражать фактический код? Есть ли причина для установки php.ini? или разница в кодировке файла в двух настройках?php script - это бесплатный PHP-код, не знаю, почему
<?php
$to_email = '[email protected]';
$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.
'; } ?>
PHP не получает синтаксический анализ. Какое расширение вы используете? –
Я думаю, это то, что вы видите на экране ... если вы посмотрите на код, не получите ли вы весь PHP-код? – greg0ire
Скорее всего, весь код PHP отправляется, но открытие переписывается браузером как HTML-тег, поэтому все в to '> 'в вашем if() скрыто. Просмотрите источник страницы, и все будет там. –