2011-12-10 150 views
1

这可能听起来有点愚蠢。 我必须更新一个新界面的网站,虽然我收到旧代码,我迷路了。 (据我所知,我收到了完整的网站,包括phpPgAdmin的)带'cmt'扩展名(?)的PHP文件

大多数文件都是.cmt,但我敢肯定它是PHP,index.cmt例如是

<? 
include_once('redirected.php'); 
exit(); 
function get_lang_from_ip() { 
    $client_ip = $_SERVER['REMOTE_ADDR']; 
    $client_hostname = gethostbyaddr($client_ip); 

    if ($client_ip != $client_hostname) { 
     $dom_arr = split('\.',$client_hostname); 
     $lang_id = ($dom_arr[sizeof($dom_arr)-1] == 'hu') ? 'hu' : 'en'; 
    } else { 
     $lang_id = 'hu'; 
    } 
    return $lang_id; 
} 

function set_target() { 
    $valid_lang_arr = array('hu', 'en'); 
    if (isset($_GET['lang_id']) && in_array($_GET['lang_id'], $valid_lang_arr)) { 
     $lang_id = $_GET['lang_id']; 
    } elseif (isset($_COOKIE['lang_id']) && in_array($_COOKIE['lang_id'], $valid_lang_arr)) { 
     $lang_id = $_COOKIE['lang_id']; 
    } else { 
     $lang_id = 'hu'; //get_lang_from_ip(); 
    } 
    setcookie('lang_id', $lang_id, time()+3600*24*365, '/'); 
    return $lang_id; 
} 

header('Connection: close'); 
header('Location: /'.set_target().'/'); 
?> 

的.php文件不是以<?开头标签开头,而是以<?php代替。最重要的是,.cmt文件不会被解析,如果我浏览到index.cmt,我会在浏览器中看到代码,因此我甚至无法将旧版本重新放在一起。

任何帮助表示赞赏。

+0

许多框架使用非'.php',所以不会丢失 –

回答

3

,您可以拨打.htaccess文件,包括以下内容:

AddType application/x-httpd-php .cmt 

这应该允许对.cmt文件扩展名执行PHP。

请注意,此修补程序只能用于Apache Web服务器或其他支持.htaccess的其他服务器。


虽然,如果可能的话,我建议你改变所有.cmt文件扩展其适当的防范部分,.php

+0

对于有效答案+1。这将做OP的要求。 – AlienWebguy

+0

@AlienWebguy Whati如果OP使用nginx或其他任何东西,但Apache? – plaes

1

您需要配置您的服务器以将.cmt文件解析为PHP。

另外,<?<?php都是PHP的有效开放标签,但短版本可能在PHP设置中关闭(通常在文件系统中的某个位置定义为php.ini)。

+3

他绝对不需要配置他的网络浏览器;) – AlienWebguy

+0

@AlienWebguy嘿,最简单的解决方案(将'.cmt'重命名为'.php ')是最好的:) – plaes

3

虽然@Josh Foskett有一个有效的答案,但我认为一个实际的解决方案是通过您的文件并将.cmt扩展名重命名为.php以提高可扩展性并避免混淆。

考虑通过将传统扩展提升到当前的扩展标准来“逐步淘汰”传统扩展。让这个项目成为一个项目,而不是一个快速解决方案,我认为你的代码库会更加快乐。

+2

ehm ...我会先把网站带到一个工作状态,看到一切正常,然后*然后*重构.. –

+0

@yi_H这是主观的,对每个人都是这样。“使网站进入工作状态”可能是重命名扩展到在.htaccess中添加一行以容纳所述扩展的任何内容。我说总是编写以后可以使用的代码,并尽量不写出稍后将被删除的代码。 – AlienWebguy

+0

我没有看到你的口头禅在这里如何相关,我们正在谈论1 htaccess线.. –

1

在php.ini中启用short_open_tag

这将确保php实际执行,如果它是包含从其他文件。它仍然不会执行,.cmt文件直接,但如果您有主.php条目文件,这正是您需要的行为。