Upload ด้วย php
: รับชื่อแฟ้มแล้วส่งเข้าไปในห้องที่ต้องการ โดยตรวจรหัสผ่านที่เก็บไว้ในห้องนั้น
upload.htm ส่วนนี้เป็น html สำหรับส่งค่าให้ upload.php
<body>
<form enctype="multipart/form-data" method=post action=upload.php>
<input type=hidden name="MAX_FILE_SIZE" value=200000>
User <input type=text name=guser><br>
Password <input type=password name=gpassword><br>
Select file <input type=file name=upload><br>
<input type=submit value=Upload>
</form>
<form enctype="multipart/form-data" method=post action=listfile.php>
User <input type=text name=guser><br>
Password <input type=password name=gpassword><br>
<input type=submit value=List>
</form>
</body>
upload.php ทำหน้าที่ส่งแฟ้มจากเครื่องท่านเข้าไปเก็บใน server
โปรแกรมนี้เขียนได้เพราะอ่านวิธี upload จากหนังสือ PHP ของสุพิน วรรณา เล่มสีส้ม มีรูปหน้าคนครึ่งหน้า หน้า 494
แต่ได้ปรับปรุงนิดหน่อย เพื่อให้ใช้งานใน isinthai.com ขณะที่ปิด telnet หรือ ftp (เดือนพฤษภาคม 2544)
<?
include("updateinclude.php");
setupinit();
if ($upload <> "none" and $upload_size < 200000) {
  echo "User: $guser<br>";
  echo "Local File: $upload<br>";
  echo "Name: $upload_name<br>";
  echo "Size: $upload_size<br>";
  echo "Type: $upload_type<br>";
  copy($upload,"$fpath/$upload_name");
  chmod("$fpath/$upload_name",0700);
  unlink($upload);
  } else {
  echo "Please select file";
}
?>
uploadinclude.php ใช้ในทุกโปรแกรม เพื่อตรวจสิทธิที่จะเข้า update
ใช้ตรวจ guser และ gpassword กับแฟ้ม password.pl เพื่อตรวจว่าเป็นผู้ใช้ที่ถูกต้องหรือไม่
ในการเขียนแบบนี้ทำให้ ระบบข้อมูลถูก hack ได้ง่ายมาก แต่ต้องใช้ php เข้าไป hack
<?
function setupinit() {
  global $guser,$gpassword,$fpath;
  $fpath="/home/burin/public_html/$guser";  
  if ($guser) {
    $f = fopen("$fpath/password.pl","r");
    if (!feof($f)) {
     $d = fgets($f,14);
      fclose($f);
    }
    if (strlen($d) <> 13){    
      $d = crypt(substr($d,0,strlen($d)),$guser);
      if ($d == crypt($gpassword,$guser)) {
        $f = fopen("$fpath/password.pl","w");
        if ($f) {
          fputs($f,$d);
          fclose($f);
        }
      }  
      echo "Crypt password.pl : OK $d".crypt($gpassword,$guser)."<hr>";
    }
  }
  if ($d == crypt($gpassword,$guser)) {
    echo "Welcome.. <b>$guser</b> : OK<hr>";
    } else {
    echo "Password invalid of $guser";
    exit;
  }
}
?>
listfile.php ดูรายชื่อแฟ้ม
โดยใช้ include file สำหรับตรวจ guser และ gpassword ที่เหมาะสมกับแฟ้ม password.pl
<?
include("updateinclude.php");
setupinit();
$dir_handle = opendir($fpath);
echo "<pre><font size=4 face=fixed>";
while($list = readdir($dir_handle)) {
  if (substr($list,0,1) <> "." and $list <> "mail" and $list <> "bash_profile" and
      $list <> "pico.save" and $list <> "password.pl") { 
     echo  $list." - ".filesize("$fpath/$list")." Byte<br>"; 
  }
}
closedir($dir_handle);
?>
 
ไม่มีความคิดเห็น:
แสดงความคิดเห็น