2012-08-13 75 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

嘗試從我們的項目中刪除所有硬編碼。

將它們移動到一個配置文件並將它們包含在您的項目中。因此,您可以在任何時候更改它們,而不需要修改相關部分。

使用含義全變量名稱,並不要讓它們太大。

嘗試添加小評論,這將解釋代碼或下做出經得起代碼更伊斯利由另一人

我們來看看主要的事情是

使代碼可讀