空目录错误处理

时间:2011-08-25 08:34:53

标签: php error-handling directory try-catch

我想知道如何在目录中没有文件的情况下执行基本的Try Catch块打印消息

这就是我的尝试:

<?php

$dbhost = 'localhost';
$dbuser = 'admin';
$dbpass = 'root';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');

$dbname = 'files';
mysql_select_db($dbname);


mysql_query("TRUNCATE files_tbl");

 if ($handle = opendir('./pdf/')) {



   while (false !== ($file = readdir($handle)))
      {


          if ($file != "." && $file != "..")   {

          if ( ($file = @scandir('./pdf/') && (count($file) > 0) ) ) {

          $directory_not_empty = TRUE;
          } {
                throw new Exception('No files in database');
        } try {

            @$thelist .= '<font face="Calibri" size="4"><p><b><img src="images/document.png"> '.$file.'<br></b></p></a></font>';

            $query = "INSERT INTO files.files_tbl(Name) VALUES ('$file');";


            mysql_query($query) or die('Error, Insert query failed' . mysql_error());

          } catch (Exception $e) {
                die ($e->getMessage);


       }

       }

}

  closedir($handle);
  }


?>

<html>
    <head>
    <link rel="stylesheet" href="style.css" type="text/css">
        <title>Search the Database</title>
    </head>

    <body>

    <div align="right"><form action="search.php" method="post">
    <div align="left"><font face="Arial" size="8" ><b>Document Database</b> </font></div>
     <font face="Arial" size="5px" ><b> Search: <input type="text" name="term" style="border:1px dashed #216DAB"/></b></font>

    &nbsp;

    <input type="image" src="images/search1.png"  name="submit" value="Search" align="right"/>
    </form>
    <hr size="20" noshade="noshade" color="#216DAB">
    </div>
    </body>
</html>

<P><font face="Arial" Size="6px" color="black" ><b>List of files</b></font></p>
<P><center><table border="0" bgcolor="#E0E0E0" style="border:1px dotted black"><td><?=$thelist?></td></table></center></p>

但是当我加载php页面时出现PHP错误。

Notice: Undefined variable: thelist in C:\xampp\htdocs\viewer\list.php on line 76

TryCatch部分:

while (false !== ($file = readdir($handle)))
      {


          if ($file != "." && $file != "..")   {

          if ( ($file = @scandir('./pdf/') && (count($file) > 0) ) ) {

          $directory_not_empty = TRUE;
          } {
                throw new Exception('No files in database');
        } try {

            @$thelist .= '<font face="Calibri" size="4"><p><b><img src="images/document.png"> '.$file.'<br></b></p></a></font>';

            $query = "INSERT INTO files.files_tbl(Name) VALUES ('$file');";


            mysql_query($query) or die('Error, Insert query failed' . mysql_error());

          } catch (Exception $e) {
                die ($e->getMessage);


       }

       }

}

  closedir($handle);
  }

2 个答案:

答案 0 :(得分:2)

未定义“$ the list”变量

<P><center><table border="0" bgcolor="#E0E0E0" style="border:1px dotted black"><td><?=$thelist?></td></table></center></p>

看那里http://pastebin.com/jPdeieQV 见第13,31和76行

答案 1 :(得分:0)

之前你应该添加

$thelist = ''; 

甚至可能在之前:)

为了捕获异常,你应该把

throw new Exception(....);

在try..catch块中。