:::
所有書籍
「[991]PHP網站開發 進階應用技巧2」目錄
MarkDown
7-2 iconize_l.css
1. 網頁多媒體
2. Superfish下拉選單
2-1 index.php(遞迴範例)
3. 連動選單
3-1 menu1.php
3-2 menu2.php
3-3 menu1.php(索引與值都相同的精簡寫法)
3-4 demo/index.php
4. 表格內容排序
4-1 index.php
5. 拉動表格進行排序
5-1 index.php
5-2 checkbox.html
6. 即時聊天系統
6-1 index.php
7. PHP檔案操作(上)
7-1 index.php
7-2 iconize_l.css
8. PHP檔案操作(下)
8-1 index.php
8-2 index.php 中文目錄修正
9. 相片EXIF資訊及上傳
9-1 index.php
10. 目錄管理及相片特效
10-1 index.php
10-2 exif.php
11. 多媒體RSS
11-1 index.php
11-2 mrss.php
12. 樹狀目錄+HTML5
12-1 index.php
12-2 dtree.js
13. DHX入門(上)
13-1 index.php
13-2 index2.php
13-3 index3.php
13-4 index4.php
14. DHX編輯器及選單
14-1 index.php
14-2 input.php
14-3 setup.php
14-4 list.php
14-5 view.php
14-6 menu.xml
15. 點擊編輯
15-1 index.php
15-2 save.php
16. curl網頁採集
16-1 index.php
16-2 test1.php
17. 讀取RSS
17-1 index.php
18. 無刷新登入
18-1 index.php
18-2 login.php
18-3 index.php(AJAX版)
18-4 login.php(AJAX版)
8-1 index.php
\[991\]PHP網站開發 進階應用技巧2 ====================== [![](http://tad0616.net/uploads/dl.gif)](http://120.115.2.76/tad/tad_book3/file/9901/08.zip) ### 一、切換目錄並避免跨目錄攻擊
$base\_dir="D:/httpd/08/uploads"; $base\_url="http://localhost/08/uploads"; $dir=(empty($\_GET\['to'\]))?$base\_dir:$\_GET\['to'\]; $dir=str\_replace("\\\\","/",realpath($dir)); if(!ereg("^".$base\_dir,$dir))$dir=$base\_dir; $url=str\_replace($base\_dir,$base\_url,$dir); define("\_UPLOAD\_DIR",$dir); define("\_UPLOAD\_URL",$url);
//定義基本目錄路徑 //定義目錄的網址 //若有傳入 to 變數則以新位置為主 //取得真實路徑,並把win的路徑改為 / //若新位置開頭和$base\_dir不同,則改回原位置 //製作新的目錄網址 //把新路徑定義到為基本目錄路徑 //把新網址定義到目錄網址
1.realpath("路徑")→轉換為真實路徑 2.ereg("規則","字串")→正規表達式比對 3.str\_replace("找出","換為","字串")→字串替換 ### 二、刪除檔案
<a href='index.php?file={$file}&to=".\_UPLOAD\_DIR."&op=del'>刪除</a>
底下請放在$dh=opendir(\_UPLOAD\_DIR);之前
if($\_GET\['op'\]=="del"){ $file=mb\_convert\_encoding($\_GET\['file'\], "Big5", "Big5,UTF-8"); @unlink(\_UPLOAD\_DIR."/{$file}"); header("location:".\_UPLOAD\_DIR); }
//加入刪除功能 //若有指定刪除動作 //先把檔名轉為系統編碼 //刪除檔案(隱藏錯誤) //執行後轉向到原位置
1.mb\_convert\_encoding("字串","新的編碼","原始編碼")→轉換字串編碼 2.unlink("路徑")→刪除檔案 ### 三、多檔刪除
請先在表格前後加上 <form action='index.php' method='post'> 表格 </form>
<input type='checkbox' name='files\[\]' value='{$file}'> <tr><th colspan='4'> 將勾選的檔案 <input type='radio' name='op' value='del'>刪除 <input type='hidden' name='to' value='".\_UPLOAD\_DIR."'> <input type='submit' value='送出'></th></tr>
//加入多選框 //表格下方加入一列 //勾選要進行之動作 //送出目前目錄 //送出按鈕
底下請放在原本刪除功能之後,記得將送出之參數將$\_GET改為 $\_REQUEST
foreach($\_POST\['files'\] as $file){ $file=mb\_convert\_encoding($file, "Big5", "Big5,UTF-8"); @unlink(\_UPLOAD\_DIR."/{$file}"); }
//把要刪除檔案用迴圈讀出 //先把檔名轉為系統編碼 //刪除檔案
### 四、搬移檔案 在刪除後面加上搬移的選項,其中 folder\_select() 為自訂函數,用來列出目錄選單:
<input type='radio' name='op' value='move'> 搬到:".folder\_select($base\_dir,"new\_folder")."
//加入搬移選項 //列出目錄選單
將之加在 if($\_GET\['op'\]=="del") 之後
}elseif($\_REQUEST\['op'\]=="move"){ foreach($\_POST\['files'\] as $file){ $file=mb\_convert\_encoding($file, "Big5", "Big5,UTF-8"); @rename(\_UPLOAD\_DIR."/{$file}",$\_POST\['new\_folder'\]."/{$file}"); } header("location:".\_UPLOAD\_DIR); }
//若有指定搬移動作 //把要搬移檔案讀出 //先把檔名轉為系統編碼 //搬移檔案(隱藏錯誤) //執行後轉向到原位置
### 五、建立資料夾 在刪除前面面加上建立新目錄欄位
在此建立新目錄:<input type='text' name='mk\_folder'><br>
//加入建新目錄欄位
請自訂一組 }elseif(!empty($\_POST\['mk\_folder'\])){
$mk\_folder=mb\_convert\_encoding($\_POST\['mk\_folder'\], "Big5", "Big5,UTF-8"); mk\_dir(\_UPLOAD\_DIR."/{$mk\_folder}");
//加入建新目錄欄位 //建立目錄
:::
搜尋
search
進階搜尋
QR Code 區塊
快速登入
所有討論區
「PHP全端開發」線上課程討論區
XOOPS使用討論區
一般研習學員
社大學員專用
路過哈啦區
XOOPS佈景設計
XOOPS模組開發
Tad書籍區
即時留言簿
書籍目錄
展開
|
闔起
線上使用者
72
人線上 (
18
人在瀏覽
線上書籍
)
會員: 0
訪客: 72
更多…
:::
主選單
NTPC OpenID
活動報名
模組控制台
進階區塊管理
站長工具箱(急救版)
網站地圖
Tad Tools 工具包
站長工具箱
行事曆
討論留言
嵌入區塊模組
快速登入
網站計數器
好站連結
最新消息
檔案下載
線上書籍
電子相簿
影音播放
常見問題
萬用表單
友站消息
社大學員
新聞
下載
教材
影音
討論
其他選單
好站連結
行事曆
電子相簿
常見問題
萬用表單
即時留言簿
友站消息
社大學員
登入
登入
帳號
密碼
登入