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);
?>
ไม่มีความคิดเห็น:
แสดงความคิดเห็น