File Directory

มีตัวอย่างทดสอบการระบุ Path หรือ Root ให้ถูกต้อง รวมทั้งแสดงค่าระบบที่เกี่ยวกับ Path ด้วยครับ

<html>
<head>
<meta http-equiv="Content-Type"content="text/html;charset=windows-847">
<title>โปรแกรม ทดสอบค่าต่างๆของ Server</title>
<style>
  <!--
    A:link {color: "black"; text-decoration: none; font-weight: bolder; font-size: x-small}
    A:visited {color: "black"; text-decoration: none; font-weight: bolder; font-size: x-small}
    A:hover {color: "blue"; text-decoration: none; font-size: x-small}
    table {color: black; font-family: Tahoma; font-size: x-small}
    body {color: black; font-family: Tahoma; font-size: x-small}
    input {color: black; font-family: Tahoma; font-size: x-small}
    img {border: none}
    pre {font-family: Tahoma; font-size: x-small}
  -->

</style>

</head>
<font face="Tahoma" size="2" color="black"><div align="center"><b>โปรแกรมทดสอบเว็บเพจ <font color="red">PHP</font></b></div>
<?
     echo "<br><b><font color=green>ตัวแปรแสดงค่าต่างๆของระบบ</font></b>";
     echo "<br><b>".'$_SERVER[DOCUMENT_ROOT] = '."</b>".$_SERVER[DOCUMENT_ROOT];
     echo "<br><b>".'$_SERVER[PATH_TRANSLATED] = '."</b>".$_SERVER[PATH_TRANSLATED];
     echo "<br><b>".'$_SERVER[SCRIPT_NAME] = '."</b>".$_SERVER[SCRIPT_NAME];
     echo "<br><b>".'$_SERVER[SERVER_NAME] = '."</b>".$_SERVER[SERVER_NAME];
     echo "<br><b>".'$_SERVER[HTTP_HOST] = '."</b>".$_SERVER[HTTP_HOST];
     echo "<br><b>".'$_SERVER[PHP_SELF] = '."</b>".$_SERVER[PHP_SELF];
     echo "<br><b>".'$_SERVER[HTTP_REFERER] = '."</b>".$_SERVER[HTTP_REFERER];
     echo "<br><b>".'$_SERVER[REMOTE_ADDR] = '."</b>".$_SERVER[REMOTE_ADDR];
     $root=$_POST["root"];
     $dirs=$_POST["dirs"];
     $dirsep=$_POST["dirsep"];
     if (empty($root)) $root=$_SERVER[DOCUMENT_ROOT];
     if (empty($dirsep)) $dirsep='/';
     else if ($dirsep!='/') $dirsep='\';
     else $dirsep='/';
     $root=ereg_replace("/$", "", $root)."/";
?>
<form method="post" action="test.php">
<b><font color="gray">Root :</font></b> <input type="text" name="root" size=51 maxlength=50 value="<?=$root?>">&nbsp;&nbsp;<input type="submit" value="กำหนด root" name="submit">
<br><input type="checkbox" name="dirsep" value='\' <?if ($dirsep=='\') echo checked?>><b><font color="gray"> : ใช้ \ ในการแบ่งไดเร็คทอรี่</font></b>
<br><input type="checkbox" name="dirs" value='/' <?if ($dirs=='/') echo checked?>><b><font color="gray"> : มีเครื่องหมาย / ปิดไดเ็คทอรี่สุดท้าย</font></b>
<br><br>
<?
     //ทดสอบสร้างไฟล์บน root
     $filer=$root."_temp.php";
     $filer=ereg_replace("/", $dirsep, $filer);
     echo "<br>".'fopen('.$filer.", \"w\") ";
     $fr=fopen($filer, "w");
     if (!$fr) {
          echo "<font color=red> ไม่สามารถสร้างไฟล์บน <b>$root</b> ได้</font> ";
     } else {
          echo "<font color=green> สร้างไฟล์บน <b>$root</b> ได้</font> ";
          fwrite($fr, "<font color=green>นี่คือไฟล์ $filer ที่สร้างขึ้น ด้วย ".'fopen'."</font><br><a href=newlink.php>ลิงค์</a> <a href=/newlink.php>/ลิงค์</a> <a href=./newlink.php>./ลิงค์</a> <a href=../newlink.php>../ลิงค์</a>");
          fclose($fr);
          echo "<br>".'include('.$filer.') '; if (!include($filer)) echo "<font color=red> ไม่สามารถอ่านไฟล์ในไดเร็คทอรี่ root ได้</font> ";
     }
    
     //ทดสอบสร้างไดเร็คทอรี่บน root
     $makedir=$root."testdir".$dirs;
     $makedir=ereg_replace("/", $dirsep, $makedir);
     echo '<br><br>is_dir('.$makedir.')';
     $direxists=is_dir($makedir);
     if ($direxists) {
          echo "<font color=gray> มีไดเร็คทอรี่ <b>$makedir</b> อยู่แล้ว</font> ";
          $dirok=true;
     } else {
          echo "<font color=gray> ไม่มีไดเร็คทอรี่ <b>$makedir</b></font> ";
          echo  '<br>mkdir('.$makedir.', 0777)';
          $dirok=mkdir($makedir, 0777);
          if (!$dirok) echo "<font color=red> ไม่สา่มารถสร้างไดเร็คทอรี่บน <b>$root</b> ได้</font> ";
          else echo "<font color=green> สา่มารถสร้างไดเร็คทอรี่บน <b>$root</b> ได้</font> ";
     }
    
     if ($dirok) {
          //ทดสอบสร้างไฟล์บนไดเร็คทอรี่ที่สร้างใหม่
          $filen=$root."testdir/_temp.php";
          $filen=ereg_replace("/", $dirsep, $filen);
          echo "<br><br>".'fopen('.$filen.", \"w\") ";
          $fn=fopen($filen, "w");
          if (!$fn) {
               echo "<font color=red> ไดเร็คทอรี่ <b>$makedir</b> อ่านได้อย่างเดียว</font> ";
          } else {
               echo "<font color=green> สร้างไฟล์บนไดเร็คทอรี่ที่สร้างได้</font> ";
               fwrite($fn, "<font color=green>นี่คือไฟล์ $filen ที่สร้างขึ้น ด้วย ".'fopen'."</font><br><a href=newlink.php>ลิงค์</a> <a href=/newlink.php>/ลิงค์</a> <a href=./newlink.php>./ลิงค์</a> <a href=../newlink.php>../ลิงค์</a>");
               fclose($fn);
               echo "<br>".'include('.$filen.') '; if (!include($filen)) echo "<font color=red> ไม่สามารถอ่านไฟล์ในไดเร็คทอรี่ที่สร้างได้</font> ";
          }
     }

     //อ่านไดเร็คทอรี่ root
     $root=ereg_replace("/", $dirsep, $root);
     $DIR = opendir($root);
     if (!$DIR) echo "<br><br><font color=red>ไม่สามารถอ่านไดเร็คทอรี่ $root ได้</font>";
     echo "<br>";
     while ($text = readdir($DIR)) {
          $readdir=$root.$text;
          $text="<br><font color=gray><b>$readdir</font>";
          if (is_dir($readdir)) {
               $text.="<font color=maroon> ไดเร็คทอรี่";
               if (!is_writeable($readdir)) $text.="อ่านอย่างเีดียว";
               $text.="</font>";
          }
          $text.="</b> ";
          echo $text;
     }
     closedir($DIR);
    
     echo "<br> ";
     if ($fr) {echo "<br>".'unlink('.$filer.')'; if (!unlink($filer)) echo "<font color=red> ลบไฟล์ในไดเร็คทอรี่ root ไม่สำเร็จ</font>";};
     if ($fn) {echo "<br>".'unlink('.$filen.')'; if (!unlink($filen)) echo "<font color=red> ลบไฟล์ในไดเร็คทอรี่ย่อยไม่สำเร็จ</font>";};
     if (!$direxists) {echo "<br>".'rmdir('.$makedir.')'; if (!rmdir($makedir)) echo "<font color=red> ลบไดเร็คทอรี่ย่อยไม่สำเร็จ</font>";};
?>
</form>


</font>
</body>
</html>

ผู้เขียน goragod โพสต์เมื่อ 02 เม.ย. 2551 เปิดดู 11,955 ป้ายกำกับ PHPFile System
^