วันอาทิตย์ที่ 21 พฤษภาคม พ.ศ. 2560

Upload ด้วย php

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);
    ?>
    

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

Set MongoDB in the windows path environment

  Let’s set MongoDB in the windows environment in just a few steps. Step 1: First download a suitable MongoDB version according to your mach...