Toggle main menu visibility
新聞
下載
教材
影音
討論
其他選單
好站連結
行事曆
電子相簿
常見問題
萬用表單
即時留言簿
友站消息
社大學員
:::
登入
登入
帳號
密碼
登入
重整畫面
:::
所有書籍
「[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://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書籍區
即時留言簿
書籍目錄
展開
|
闔起
線上使用者
77
人線上 (
17
人在瀏覽
線上書籍
)
會員: 0
訪客: 77
更多…