2014-10-06 56 views
1

我有腳本PHP下載2路, 我嘗試在本地主機此代碼的工作,但我會在我的服務器錯誤無法正常工作PHP下載2路

此錯誤

Parse error: syntax error, unexpected '[' in C:\xampp\htdocs\pm_mobile_indosat\link.php on line 10

全碼

<?php 

include "conection.php"; 


$id = $_GET['id']; 

$data = mysql_fetch_array(mysql_query("SELECT * FROM task WHERE id = '$id'")); 

$paths = [ 
    "Attachment/".$data['task_id']."/", 
    "D:/ALL BACKUP GOES HERE/Attachment_kt_fri_jpg_dll/".$data['task_id']."/" 
]; 

foreach ($paths as $path) { 
    if (file_exists($path . $data['attachment_file'])) { 
     header("Content-Disposition: attachment; filename=" . $data['attachment_file']); 

     print file_get_contents($path . $data['attachment_file']); 
     exit; 
    } 
} 

echo "File not found"; 
exit; 


?> 

此錯誤在

$paths = [ 
"Attachment/".$data['task_id']."/", 
"D:/ALL BACKUP GOES HERE/Attachment_kt_fri_jpg_dll/".$data['task_id']."/" ]; 

因爲我有腳本,如果磁盤C已滿,然後在磁盤C中的文件切割到磁盤D. 所以我希望這個腳本在我的服務器工作。

+0

這看起來恐怖不安全。你確定**你的用戶參數是[妥善轉義](http://bobby-tables.com/php)? '$ _GET'值**絕不**直接進入查詢字符串。 'mysql_query'是一個過時的接口,不應該在新的應用程序中使用,並且將在未來的PHP版本中被刪除。像[PDO這樣的現代化替代品並不難學](http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/)。如果您是PHP的新手,像[PHP The Right Way](http://www.phptherightway.com/)這樣的指南可以幫助解釋最佳實踐。 – tadman 2014-10-06 04:30:10

回答

1

該腳本使用PHP 5.4中引入的數組聲明的簡短形式。如果你的代碼工作在一臺服務器上,但引發此錯誤的另一個,你有一個版本的PHP小於5.4發生故障的服務器上

$arr = []; // for 5.3 you'd use $arr = array(); 

使用PHP 5.4,你可以聲明數組這樣。

要麼:將服務器升級到PHP 5.4或更高版本;或編輯代碼以使用數組聲明的舊形式。

注意 - 代碼和早期版本的PHP之間可能存在其他不兼容性。升級你的服務器是一條路。

+0

哇,這個工作感謝邁克W :) – 2014-10-06 05:22:37