PHP 板


LINE

看板 PHP  RSS
各位好,我是最近碰php的新手 嘗試寫一個網站伺服器的檔案總管 執行後出現問題: Fatal error: Call to undefined function showdir() in C:\xampp\htdocs\FTP\main.php on line 108 問題出現的line108,在下面code的最底層,我用藍底黃字標示。 以下是main.php 主檔的code 麻煩大家了,謝謝!!! <?php header('content-type:text/html;charset=utf-8'); session_start(); define('WORK_ROOT',$_SERVER['DOCUMENT_ROOT']); if(!isset($_SESSION['cwd'])) $_SESSION['cwd']=WORK_ROOT; chdir($_SESSION['cwd']); //--------------------------------------- if(!empty($_GET['op'])){ $id=$_GET['id']; switch($_GET['op']){ //切換目錄 case 'enter': if ($id=='root'){ //切換到網站根目錄 chdir(WORK_ROOT); } elseif (id=='up'){ //切換到上一層目錄 chdir($_SESSION['cwd'].'/..'); } else{ //切換到id參數所指定的目錄 chdir($_SESSION['cwd'].'/'.$_SESSION['dirs'][$id]); } //重新讀取目前目錄,(getcwd()會回傳目前目錄) $_SESSION['cwd']=str_replace('\\','/',getcwd()); //如果目前目錄不再往根目錄,就強迫返回到網站根目錄 if(!ereg('^'.WORK_ROOT,$_SESSION['cwd'])){ chdir(WORK_ROOT); $_SESSION['cwd']=str_replace('\\','/',getcwd()); } break; //刪除檔案 case 'del': //讀取要刪除的目錄或檔案名稱 if($_GET['type']=='d') $delFilename=$_SESSION['dirs'][$id]; else $delFilename=$_SESSION['files'][$id]; unlike($delFilename); //設定相關訊息 $msg="刪除$delFilename"; break; //複製檔案 case 'cpy': //使用迴圈產生檔案複製時 檔名結尾的序號 for($i=1;$i<100;$i++){ $cpyFilename=$_SESSION['files'][$id]."-copy$i"; //如果已有檔案存在該序號,就使用下一個序號 if(file_exists($cpyFilename)){ continue; } else{ copy($_SESSION['files'][$id],$cpyFilename); break; } } //設定相關訊息 $msg=$_SESSION['files'][$id]."複製為$cpyFilename"; break; } //切換目錄或檔案操作後,目錄列表會改變,所以刪除記錄列表的session,讓程式重新 讀取 unset($_SESSION['dirs']); unset($_SESSION['files']); //showdir()函式會顯示目前目錄的列表 require 'showdir.php'; } ?> <html> <head> <title>網站伺服器檔案總管</title> <style type=text/css> *.white_silver{color:white;background:Silver;} *.white_header{color:white;background:Silver;font-size=36px;} </style> </head> <body> <p style=text-align:center;> <?php echo $msg; ?> </p> <p style=text-align:center;> <table border="3" cellspacing="3" cellpadding="3"> <tr><td class="white_header" colspan="2" rowspan="1"> 目前目錄:<?php echo $_SESSION['cwd'];?> </td> </tr> <?php //顯示目前的目錄列表 echo showdir(); ?> </table> </p> </body> </html> -- --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.65.71.253
1F:→ kerash:這個訊息一定是你沒正確include到或者showdir沒被定義 09/13 15:52
2F:→ GTBUG:k大,我用require showdir.php,意思是showdir.php的code有 09/13 16:53
3F:→ GTBUG:問題? 09/13 16:54
4F:→ hom1130:require 路徑檢查看看 !! 09/13 17:07
※ 編輯: GTBUG 來自: 203.65.71.253 (09/13 17:10)
5F:→ GTBUG:H大,showdir.php和main.php放再同一資料夾,我把那行 09/13 17:10
6F:→ GTBUG:require的code用黃底紅字標起來了,會是擺放位子的問題嗎? 09/13 17:11
7F:推 kerash:你在 showdir 檔案裡面多加一個 echo 看看會不會顯示 09/13 17:32
8F:→ hom1130:function 的名稱呢 ?! 09/13 23:32
h大,這是我寫showdir()的code,把function放在這,這樣會有問題嗎? k大,妳說在這個showdir() 哪裡放echo呢? 抱歉還是想不出來T_T <?php function showdir(){ //取得目前城市的檔案名稱 $myUri=$_SESSION['PHP_SELF']; //取得目前目錄的網址 $cwdUri=str_replace(WORK_ROOT,'',$_SESSION['cwd']); //設定檔案更名以及上傳的程式檔名 $renphp='rename.php'; $uploadphp='upload.php'; //如果session中紀錄目錄列表的陣列是空的,就重新讀取 if(empty($_SESSION['dirs'])||empty($_SESSION['files'])){ //用陣列$arrDirFile儲存scandir()的傳回值 $arrDirFile=scandir($_SESSION['cwd']); //將.與..這兩個目錄名稱刪除 unset($arrDirFile[0]);unset($arrDirFile[1]); //刪除session陣列的內容 unset($_SESSION['dirs']);unset($_SESSION['files']); //將@ArrDirFile的內容依照目錄與檔案的類型分別記錄於不同陣列 foreach($arrDirFile as $name){ if(is_dir($name)){ $_SESSION['dirs'][]=$name; } else{ $_SESSION['files'][]=$name; } } unset($arrDirFile); } } $html='<tr><td class="white_silver" colspan="2" rowspan="1">'; if($_SESSION['cwd']!=WORK_ROOT){ $html.=<<<END_of_HTML <a href="$myUri?id=up&op=enter">到上層目錄</a> <a href="$myUri?id=root&op=enter">回網站根目錄</a> END_of_HTML; } $html.=<<<END_of_HTML <a href="$uploadphp">上傳檔案</a> </td></tr> END_of_HTML; //輸出子目錄列表 if(!empty($_SESSION['dirs'])){ foreach($_SESSION['dirs'] as $key=>$dir){ $html.=<<<END_of_HTML <tr> <td class="white_silver"> <a href="$myUri?id=$key&op=enter">$dir</a> </td> <td class="white_silver"> <a href="$renphp?type=d&id=key">更名</a> </td> </tr> END_of_HTML; } } //輸出檔案列表 if(!empty($_SESSION['files'])){ foreach($_SESSION['files'] as $key=>$file){ $html.=<<<END_of_HTML <tr> <td> <a href="$cwdUri/$file">$file</a> </td> <td> <a href="$myUri?type=f&id=$key&op=del">刪除</a> <a href="$myUri?type=f&id=$key&op=cpy">複製</a> <a href="$renphp?type=f&id=key">更名</a> </td> </tr> END_of_HTML; } return $html; } ?> ※ 編輯: GTBUG 來自: 203.65.71.253 (09/14 14:32)
9F:→ GTBUG:附上showdir()的程式碼,還是想不出來 麻煩大大了! 09/14 14:32







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:iOS站內搜尋

TOP