2012-08-13 70 views
-2

我在PHP中的货币转换器,其将以下currencys编程:如何在php中编写好的代码?

EUR -> USD 
EUR -> GBP 

的代码必须具有良好的结构和明确的。我的代码如下所示:

在index.php文件,我写的HTML输入如下:

   <select name="fT"> 
        <option value="[email protected]">EUR -> USD</option> 
        <option value="[email protected]">EUR -> GBP</option> 
       <select> 
        <input type="text" name="amount" id="amount" value=""> 
        <input type="submit"/> 

convert.php看起来是这样的:

<?php 
include ("functions.php"); 
$fT = $_POST['fT']; 
$amount = $_POST['amount']; 

$valueAndText = explode('@', $fromTo); 
$fromTo = $valueAndText[0]; 
$text = explode('-', $valueAndText[1]); 
$from = $text[0]; 
$to = $text[1]; 

echo convertCurr($fT, $amount) ; 
?> 

对于提高该代码的任何建议?

+1

您已在脚本中对$ currentSharePrices进行了硬编码。尝试把它们放在config.php文件中。 – 2012-08-13 11:10:05

+3

这属于http://codereview.stackexchange.com/ – JConstantine 2012-08-13 11:10:23

+0

@Leigh:感谢您的评论,但请帮我一个忙,改善你的发言方式。 – 2012-08-13 13:39:50

回答

1

您可以将共享价格在配置文件中,您可以用每次更改替换。我正在考虑您确实希望将数据存储在文件中而不是数据库中。

配置文件可以看起来像:

<?php 
$config['usd-eur']=1.2; 
$config['usd-gbp']=0.5; 
?> 

命名此文件作为config.php文件,并与你把它的脚本然后包括它。

<?php 
require_once('config.php'); 
?> 

关于$ _POST变量,您需要转义它们以保护自己免受MySQL和XSS攻击。

您可以使用此功能:

<?php 
function filter($data) { 
$data = trim(htmlentities(strip_tags($data))); 
if (get_magic_quotes_gpc()) 
    $data = stripslashes($data); 

$data = mysql_real_escape_string($data); 

return $data; 
}?> 

然后依次通过您的POST变量:

foreach($_POST as $key => $value) { 
$mydata[$key] = filter($value); 
} 

一旦更多的是处理的执行,以检测为$的FromTo变量的选择量。

为什么不那样做:

<select name="fromTo"> 
    <option value="1">(EUR) ---> (USD)</option> 
    <option value="2">(EUR) ---> (GBP)</option> 
</select> 

随后进行的switch-case语句

<?php 
switch($mydata['fromTo']){ 
    case 1: 
    $from='euro'; 
    $to='usd'; 
    break; 
    case 2: 
    $from='euro'; 
    $to='gbp'; 
    break; 
} 

希望有所帮助。

2

尝试从我们的项目中删除所有硬编码。

将它们移动到一个配置文件并将它们包含在您的项目中。因此,您可以在任何时候更改它们,而不需要修改相关部分。

使用含义全变量名称,并不要让它们太大。

尝试添加小评论,这将解释代码或下做出经得起代码更伊斯利由另一人

我们来看看主要的事情是

使代码可读