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灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP