<?php
session_start();
srand(time());
###########################################################
# ตัวแปรสำคัญที่ต้องแก้ไข คือ $web_url, $admin_password และ $title
# $web_url = "http://127.0.0.1/"; // สำหรับเครื่องบริการที่ยังไม่มีชื่อโดเมน
# $web_url = "http://localhost/"; // สำหรับเครื่องบริการที่ไม่ต้องการใช้หมายเลขไอพี
# $web_url = "http://www.weblampang.com/"; // สำหรับเครื่องบริการที่มีโดเมนเนมของตนเอง
# $web_url = "http://www.thainame.net/weblampang/"; // สำหรับการใช้ใน subdirectory
#$web_url = "http://www.weblampang.com/";
$web_url = ""; // สำหรับ ใช้ชื่อเดิมของเครื่อง เช่น http://127.0.0.1/ เป็นต้น
# Admin Password for Delete User
$admin_password = "thqVWqAnSaA8c"; // (do not โด นอต ช่วยจำ)
# ค่าที่จะกรอกให้ตัวแปรนี้ ต้องเข้ารหัสมาแล้ว โดยมีขั้นตอนดังนี้
# 1. กดลิงค์ คำถาม-คำตอบ หรือ index.php?action=faqs
# 2. ไปที่หัวข้อ 99 ใน IE จะมีช่อง textbox
# 3. นำรหัส 13 หลักที่พบใน IE มาใส่แทนที่ค่าของตัวแปร $admin_password
# Information on Title bar of Internet Explorer
# $title = "ฟรีโฮมเพจ ด้วยระบบ File Manager รุ่น 2.6a (September 13,2551)";
$title = "ฟรีโฮมเพจ ด้วยระบบ File Manager รุ่น 3.0 (October 5,2563)";
###########################################################
/* filemanager.php (ปรับปรุงโดย webmaster@thaiall.com)
โปรแกรมบริหารสมาชิกเว็บโฮสติ้ง : เพื่อให้นักพัฒนาถึงจุดหมายได้เร็วที่สุด
ระบบนี้ออกแบบให้ผู้ดูแลแก้ไขค่าได้เอง
ผู้สนับสนุนการสร้างโปรแกรมนี้รุ่น 1.0 คือ ดร.มาลี สุวรรณอัตถ์ /malee/
Version 3.0 (2563-10-05)
- ปรับให้รองรับ php version 5
- เปลี่ยนให้แฟ้มชื่อ index.php ทำงานบน xampp ได้ เปิดเฉพาะ apache ก็ใช้งานได้
- รุ่น 3.0 - 2562 ถึง 2563 ได้รับการสนับสนุนจาก http://ttpcargo.com/ ขอบคุณมากครับ
Version 2.6 (2551-09-13)
- แก้การ hack ผ่าน $cmd = `ls`; ใน create, update
ปัญหาคือถูก hack ผ่าน organization name ได้รับแจ้งจาก admin@thaiwake.com 2551-09-10
ป้องกันการ Post ชื่อแฟ้มผ่านการแก้ไขแฟ้ม Html
- แก้ไขให้ Folder Listing แสดงชื่อ และขนาด Folder
- การสร้างแฟ้ม user.php ครั้งแรกเพิ่ม exit ไปที่ต้นแฟ้ม
Version 2.5 (2551-06-10)
- แก้ไขการแสดงผล delete_user 2 ครั้ง
- ทำให้ลบผู้ใช้ได้ง่ายขึ้น
- ย้ายตัวแปรสำคัญ 3 ตัวแปรขึ้นมาไว้ด้านบนสุด ให้แก้ไขได้โดยสะดวก
Version 2.4 (2549-11-19)
- แก้ไข folder_listing
- ทำให้คนหาได้ทั้งสถาบัน และชื่อ
- สร้าง index.html ในห้องของผู้ใช้ให้อัตโนมัติ
- ป้องกันการกรอกชื่อ user ด้วยรหัสที่ไม่เหมาะสม
Version 2.3 (2549-04-01)
- แก้ไขข้อผิดพลาดจากที่พึ่งเปลี่ยนเป็น function เมื่อทดสอบในโปรแกรม thaiabc4a.zip
- แก้ปัญหาการ upload เพียงครั้งละแฟ้ม จากการ reset securekey เร็วเกินไป
- แก้ปัญหาการไม่ใช้ closedir ในการลบ user ทำให้ลบ Directory ไม่ได้
- แก้ปัญหาการเปลี่ยนชื่อ filemanager.php เป็นชื่ออื่น เช่น index.php ให้ไม่เกิดปัญหา
Version 2.2 (2549-03-26)
- กำหนดชื่อเป็น index.php แทน filemanager.php เพื่อเตรียมใช้กับ thainame.net thaiabc.net และ weblampang.com
- กำหนดตัวแปรเปิดปิดการแสดง Source Code
- แก้ไข Source Code ให้อยู่ใน Function เพื่อการแก้ไขในอนาคต
- เริ่มบันทึกวันที่ปรับปรุงก่อนเผยแพร่ใน thainame.net
Version 2.1
- ย้ายโปรแกรม แต่ไม่พา user ไปเลย เริ่มต้นกันใหม่
- แก้ไขคำอธิบายในการใช้งานครั้งแรก กับ Linux เพราะใน Windows ใช้ได้เลย
- ล้าง $vip_user เดิมออก
- แก้ไขการลบผู้ใช้ ให้ลบ Directory ของผู้ใช้ได้
- รหัสสุ่ม ได้จากการ Random และเก็บใน Session ทำให้รองรับผู้ใช้พร้อมกันหลายคน
- ทำให้ ?action=folder_listing กลับมาใช้ได้อีกครั้ง
- เพิ่มการแสดงภาพ secure แทนตัวเลข ทั้งสมัคร และ upload
Version 2.0
- เพิ่มระบบ Directory สำหรับเตรียมสอน Template
- แก้ปัญหารหัสสุ่มอีกครั้ง
- ยกเลิกรหัส 999999 สำหรับการไม่มีแฟ้ม user.php ในครั้งแรก เพราะมีปัญหากับ Linux
Version 1.5
- เพิ่ม .pdf ใน $allow_extension
- เพิ่มขนาดของ $max_webspace[0] (Standard) เป็น 3 MB
- เพิ่ม $max_file_size เป็น 5 แสน 102400 * 5;
- เปลี่ยนวิธีการ random ของ Secure Code ตาม IP และการเลื่อนเวลาอีก 1 หลัก
- แก้ไขให้ใช้งานกับ Fedora Core 4
Version 1.4
- ทำให้ผู้ใช้สมัครพร้อมกันได้
- เพิ่มจำนวนแฟ้มที่ upload ต่อครั้ง
- เพิ่มตัวแปร $create_user
- แสดงรายชื่อ folder ถ้าไม่พบแฟ้ม user.php เมื่อเรียก ?action=folder_listing
- ปรับระบบแสดง file listing
- ไม่ load truehits.net ถ้าไม่ใช้ weblampang.com
- เพิ่มภาษาอังกฤษ และคำอธิบายเรื่อง security code
- แก้ปัญหา luser session ใน check_password และ unregist ขณะ login
- ปรับตัวแปร $web_url ให้กำหนด default เป็น $_SERVER['REDIRECT_SCRIPT_URI']
Version 1.3
- ปรับให้ใช้กับจอขนาดเกิน 800 แล้วไม่มีปัญหาการแสดงผล
- แสดงสถานะของสมาชิก แบบ Standard, Silver, Gold และ Diamon และอธิบายในส่วน FAQs
- ปรับส่วนแสดงผล เพื่อเลือกเรียงเวลาเข้าใช้แบบ ascending หรือ descending
แบบ 1. จัดเรียงตามเวลาสมัคร เรียงตามแบบมาตรฐาน เหมือน stack
แบบ 2. Ascending เรียงเวลาเข้าใช้แบบ ไม่ใช้แสดงก่อน
แบบ 3. Descending เรียงเวลาเข้าใช้แบบ พึ่งใช้แสดงก่อน
- เพิ่มการแสดง phpinfo() ถ้ารหัสของ admin ถูกต้อง ในส่วน 99 แสดงรหัส admin_password
- เปลี่ยนการเก็บ ip วัน เวลาใน lastlog.log เป็นวัน เวลา และ IP เพื่อประโยชน์ในการจัดเรียง
Version 1.2
- เก็บ ip วัน เวลา ใน lastlog.log
- เพิ่มตัวเลือกการแสดงข้อมูลสมาชิก ทำให้ลบสมาชิกได้ง่ายขึ้น
- รายงานการใช้พื้นที่ของสมาชิก
Version 1.1
- เพิ่มคำอธิบาย และเปลี่ยนข้อความเป็นภาษาไทยมากขึ้น
- แก้การแสดงผลให้แสดงรายชื่อสมาชิกทั้งปกติ และแสดงเวลา login ล่าสุดให้ถูกต้อง
- เพิ่มตัวแปร เพื่อให้ทำการ configuration สมาชิก และระบบง่ายขึ้น
รายชื่อ Module แบ่งตามหน้าที่
00 : Default value. You can make your configuration
01 : Start session
02 : Function Controller
03 : Regist for new user 1/2
04 : Regist for new user 2/2
05 : User listing
06 : User login 1/2
07 : User login 2/2
08 : User logout
09 : Upload file
10 : Delete file
11 : Edit user profile 1/2
12 : Edit user profile 2/2
13 : Edit html file 1/2
14 : Edit html file 2/2
81 : folder listing
82 : delete user account
83 : create admin_password value
84 : view source of filemanager.php
90 : function : write image
91 : function : Get user web space
92 : function : Check password and get user information
93 : function : File listing
94 : function : Upload file sub
95 : function : Remove special character
98 : FAQs
99 : User name writing
100 : Footer Writing
*/
## 00 : Default value. You can make your configuration ###
# Create User
# 0: ไม่สามารถสร้างสมาชิก เพียงแต่แสดงข้อมูล file และ directory (System Closed)
# 1: สามารถสร้างสมาชิกใหม่ได้
$create_user = "1";
# Folder listing lock
# ถ้า $create_user = "0";
# 0: ไม่ต้องใช้รหัสผ่านของ $admin_password
# 1: ต้องใช้ $admin_password
$folder_listing_lock = "1";
# Kewords and Description
$keywords = "free,web,hosting,education,student,webmaster,sysadmin,perl,php,omni,pws";
$description = "Free Web Hosting 1 MB with filemanager by webmaster@thaiall.com";
# View Source Code
# 0: ไม่อนุญาตให้แสดง Source Code
# 1: อนุญาตให้แสดง Source Code
$view_source = "1";
# View FAQs
# 0: ไม่อนุญาตให้แสดง FAQs
# 1: อนุญาตให้แสดง FAQs
$view_faqs = "1";
# ถ้าต้องการรักษาความลับของสมาชิก ควรเปลี่ยนชื่อแฟ้มเก็บข้อมูลเป็นแฟ้มอื่น เช่น user.exe เป็นต้น
$user_file = "user.php";
# นามสกุลที่ยอมให้สมาชิก upload เข้ามาได้
$allow_extension = "html,htm,gif,jpg,jpeg,png,txt,dbf,dat,class,swf,rar,zip,ppt,doc,xls,mdb,pdf,java,js";
# ปกติสมาชิกที่สมัครใหม่จะเป็น Standard คือมีเลข 0 ใน Column ที่ 4
# ถ้าต้องการเพิ่มพื้นที่ให้สมาชิก ก็เปิดแฟ้ม user.php มาแก้เลข 0 เป็นเลขอื่นตามต้องการ
$max_webspace[0] = 1048576 * 1; $type_webspace[0] = "Standard";
$max_webspace[1] = 1048576 * 5; $type_webspace[1] = "Silver";
$max_webspace[2] = 1048576 * 10; $type_webspace[2] = "Gold";
$max_webspace[3] = 1048576 * 20; $type_webspace[3] = "Diamon";
$line_userlisting = 30;
# จำกัดขนาดแฟ้มไม่เกิน 200 KB เพราะถ้าเกินกว่านี้ ผู้มาเปิดเว็บจะใช้เวลามาก
$max_file_size = 102400 * 2;
# ผู้เป็น vip_user จะ upload แล้วแบบใดก็ได้ อยู่นอกเหนือกฎของ $allow_extension
# $vip_user = "tom,dang,sombat,gordonman,science001";
$vip_user = "";
## 01 : Start session ##
# ค่าของ $nutforcrypt มีผลต่อการเข้ารหัส ถ้าเปลี่ยนไป สมาชิกเก่าอาจเข้าระบบไม่ได้
$nutforcrypt = "thaiabc.com"; // ค่านี้ใช้เข้ารหัสให้ซับซ้อนเท่านั้น ไม่เปลี่ยนก็ได้
$msg = ""; // เก็บผลการ upload ไว้ในนี้ว่า error อะไรในแต่ละแฟ้ม ตัวแปรนี้ประกาศเป็น global
$session_timeout = 300; // หากท่านทิ้งเครื่องเกินเป็นวินาที สมาชิกต้อง login ใหม่
#
// $ar = split("/",$_SERVER['PHP_SELF']);
$ar = preg_split("[/]",$_SERVER['PHP_SELF']);
$scriptname = $ar[count($ar) - 1];
#
if (isset($_POST['action']))
if ($_POST['action'] == "เข้าใช้บริการ") {
$_SESSION['luser'] = $_POST['luser'];
$_SESSION['lpassword'] = trim(crypt($_POST['lpassword'],$nutforcrypt));
}
if (strlen($web_url) == 0) {
if (isset($_SERVER['SCRIPT_NAME'])) $web_url = $_SERVER['SCRIPT_NAME'];
if (isset($_SERVER['REDIRECT_SCRIPT_URI'])) $web_url = $_SERVER['REDIRECT_SCRIPT_URI'];
// $tmp = preg_split("$scriptname",$web_url);
// $web_url = $tmp[0];
$tmp = strpos($web_url, $scriptname);
if ($tmp !== false) { $web_url = substr($web_url,0,$tmp); }
}
#
if (!isset($_SESSION['securekey'])) $_SESSION['securekey'] = 100000 - (rand() % 99999);
if ($_SESSION['securekey'] == 0) $_SESSION['securekey'] = 100000 - (rand() % 99999);
#
$login_page = "<br/><table width=400 align=center bgcolor=#dddddd><form action=? method=post>
<tr><td colspan=2 align=center bgcolor=black><font color=white>
เข้าจัดการแฟ้ม (File Manager)</td></tr>
<tr><td align=right>รหัสสมาชิก :</td><td><input name=luser size=16> เช่น romeo</td></tr>
<tr><td align=right>รหัสผ่าน :</td><td><input name=lpassword size=16 type=password> เช่น thelover</td></tr>
<tr><td></td><td colspan=2><input type=submit name=action value=เข้าใช้บริการ> <-- click to <b>Sign in</b>
<br/><font color=red>ถ้าเข้า Sign in ได้สำเร็จ อย่ากดปุ่ม Back
<br/>เพราะสถานะการเข้าใช้จะหมดอายุ</font></td></tr>
</form></table>";
#
if (isset($_REQUEST["user"])) $user = $_REQUEST["user"]; else $user = "";
$getadmin = "";
if (isset($_POST["admin_password"])) {
$getadmin = $_POST["admin_password"];
$_SESSION["getadmin"] = $getadmin;
} elseif (isset($_SESSION["getadmin"])) $getadmin = $_SESSION["getadmin"];
$tb_delete = "<table align=center bgcolor=#404040>
<form action=? method=post target=_top><td align=right><font color=white>
<img src='?secure=yes'> => <input name=secure size=20><br/>
รหัสสมาชิก : <input name=luser size=20 value='$user'><br/>
Admin Password : <input name=admin_password size=20 type=password value='$getadmin'><br/>
<center><input type=submit value=delete_user name=action>
</td></form></table>";
#
$header = "<html><head><title>$title</title>
<meta http-equiv=content-type content='text/html; charset=utf-8'>
<meta name=keywords content='$keywords'>
<meta name=description content='$description'>
<style type='text/css'>
body{scrollbar-base-color:red;scrollbar-arrow-color:white;font-family:microsoft sans serif;font-size:10pt;color:black;}
td{font-size:10pt;font-family:microsoft sans serif;}
a:link{COLOR:#0000ff;TEXT-DECORATION:none;font-family:microsoft sans serif}
a:visited{COLOR:#000080;TEXT-DECORATION:none;font-family:microsoft sans serif}
a:hover{COLOR:#008080;TEXT-DECORATION:underline;font-family:microsoft sans serif}
input{font-family:microsoft sans serif;font-size:12px;color:blue;background:#ffffdd;}
textarea{font-family:microsoft sans serif;font-size:12px;color:blue;scrollbar-base-color:red;scrollbar-arrow-color:white;background:#fffffd;}
</style></head><body topmargin=0 leftmargin=0><base target=_top>
<table height=55 width=760 bgcolor=#ffffdd align=center><tr align=center>
<td valign=top><font color=white><a href=$web_url target=_top style={color:white;}>หน้าหลัก<br/>Home</a>";
#
$create_user_menu = "<td valign=top><a href=?action=Regist style={color:#ffffdd;}>สมัครสมาชิกใหม่<br/>Sign up</a>
<td valign=top><a href=?action=User_listing style={color:#ffffdd;}>แสดงรายชื่อสมาชิก<br/>Members Listing</a>
<td valign=top><a href=?action=User_login style={color:#ffffdd;}>เข้าใช้ เพิ่ม ลบแฟ้ม<br/>Sign in + Upload</a>";
#
$user_menu = "<td valign=top><a href=?action=source style={color:#ffffdd;}>รหัสต้นฉบับ<br/>Source Code</a>
<td valign=top><a href=?action=faqs style={color:#ffffdd;}>คำถาม & คำตอบ<br/>Questions & Answers</a>
</td></tr></table>";
#
$ip = explode(".",$_SERVER['REMOTE_ADDR']);
## 02 : Function Controller ##
if (isset($_GET['secure'])) write_secret_image();
echo $header;
if ($create_user == "1") echo $create_user_menu;
echo $user_menu;
user_functions();
if (isset($_GET['action'])) {
if ($_GET['action'] == "faqs" && $view_faqs == "1") faqs();
if ($_GET['action'] == "source" && $view_source == "1") view_source();
if (isset($_GET['dir'])) $d = $_GET['dir']; else $d = "";
if ($_GET['action'] == "folder_listing") folder_listing($d);
if ($_GET['action'] == "User_listing" && file_exists($user_file)) user_listing();
if ($_GET['action'] == "User_login") user_login1();
if ($_GET['action'] == "delete_user") echo $tb_delete;
if ($_GET['action'] == "Regist") regist_user1();
}
if (isset($_POST['action'])) {
if ($_POST['action'] == "admin_password") create_admin_password();
if (isset($_POST['admin_password'])) delete_user();
if ($_POST['action'] == "Create Folder" && isset($_SESSION['luser'])) create_folder();
if ($_POST['action'] == "แก้" && $_SESSION['luser'] != "ยังไม่มี") edit_html1();
if ($_POST['action'] == "save_file" && $_POST['keepaction'] == "แก้" && $_SESSION['luser'] != "ยังไม่มี") edit_html2();
if ($_POST['action'] == "แก้ไขข้อมูลสมาชิก" && $_SESSION['luser'] != "ยังไม่มี") edit_user1();
if ($_POST['action'] == "แก้ไขข้อมูลสมาชิก" && isset($_POST['p0']) && trim(crypt($_POST['p0'],$nutforcrypt)) == $_SESSION['lpassword'] && $_SESSION['luser'] != "ยังไม่มี") edit_user2();
if ($_POST['action'] == "ลบ" && $_SESSION['luser'] != "ยังไม่มี") delete_file();
if ($_POST['action'] == "upload") upload_file();
if ($_POST['action'] == "เลิกการทำงาน") user_logout();
if ($_POST['action'] == "เข้าใช้บริการ" || $_POST['action'] == "เข้าจัดการแฟ้ม") user_login2();
}
if (!isset($_GET['action']) && !isset($_POST['action'])) regist_user1();
if (isset($_POST['user'])) {
if ($_SESSION['securekey'] == $_POST['secure']) {
regist_user2();
} else {
echo "<font size=6><center>ท่านกรอกรหัสสุ่มไม่ถูกต้อง ";
echo "[" . $securekey ."!=". $_POST['secure'] . "]";
echo "<br/><a href=?action=Regist>สมัครสมาชิกใหม่</a>";
}
}
footer();
## 03 : Regist for new user 1/2 ##
function regist_user1() {
global $user_file,$web_url,$login_page,$create_user;
if ($create_user == "0") exit;
if (!file_exists($user_file)) {
$file = fopen($user_file,"a");
fputs($file, chr(60).'?php echo "not allow to view"; exit; ?'.chr(62)."\n");
fclose($file);
if (!file_exists($user_file))
echo "ถ้าโปรแกรมนี้สร้างแฟ้ม $user_file ให้ท่านไม่ได้<br/>ท่านต้องเปลี่ยนระดับสิทธิ์ของ Folder ที่ใช้เก็บโปรแกรมนี้<br/>เพราะปัจจุบันเป็นแบบ Read Only เท่านั้น";
else {
echo "<center>โปรแกรมนี้สร้างแฟ้ม $user_file สำหรับเก็บข้อมูลสมาชิกให้ท่านเรียบร้อยแล้ว";
echo "<meta http-equiv=refresh content='3;url=?action=Regist'>";
}
exit;
}
$_SESSION['luser'] = "ยังไม่มี";
$securekey = $_SESSION['securekey'];
?>
<table bgcolor=white width=760 align=center><td valign=top>
<table align=center bgcolor=#dddddd width=400><form action=? method=post>
<tr><td colspan=2 align=right bgcolor=black><font color=white>
ตัวอย่างเว็บที่จะได้รับ <font color=yellow><?php echo $web_url; ?><b>ชื่อภาษาอังกฤษ</b></td></tr>
<tr><td align=right>รหัสสุ่ม (Random Code) <img src=?secure=yes></td><td><input name=secure size=20>1*</td></tr>
<tr><td align=right bgcolor=#808080 colspan=2><font color=#ddffdd>ให้เปลี่ยนคำว่า your_english_name เป็น ชื่อเว็บภาษาอังกฤษที่ท่านต้องการ
<br/>ข้อมูลทั้งหมดที่กรอกต้องเป็นจริง มิเช่นนั้นเว็บของท่านอาจถูกลบ</td></tr>
<tr><td align=right><?php echo $web_url; ?></td><td><input name=user size=20 value=your_english_name>2*</td></tr>
<tr><td align=right>รหัสผ่านที่ต้องการ (Password)</td><td><input name=p1 size=20 type=password>3*</td></tr>
<tr><td align=right>ยืนยันรหัสผ่านอีกครั้ง (Password Again)</td><td><input name=p2 size=20 type=password>4*</td></tr>
<tr><td align=right>ชื่อ-สกุลภาษาไทย (Name Surname)</td><td><input name=namesurn size=20>5*</td></tr>
<tr><td align=right>e-mail (เช่น boy@thaiall.com)</td><td><input name=email size=20>6</td></tr>
<tr><td align=right>สถาบันการศึกษา(School Name)</td><td><input name=org size=20>7</td></tr>
<tr><td></td><td colspan=2 align=center><input type=submit value=สมัครสมาชิกใหม่ name=action></td></tr></form></table>
<?php echo $login_page; ?>
</td><td valign=top bgcolor=#dddddd>
<table bgcolor=#ddffdd width=100%><td>
<b>เป้าหมายหลัก</b> (<a href=http://www.thaiall.com/student>รวมลิงค์เว็บนักเรียนในไทย</a>)
<br/>ศึกษา พัฒนา และเผยแพร่โค้ด สำหรับเปิดบริการฟรีเว็บโฮสติ้ง ด้วย Script เพียงแฟ้มเดียว
ทำให้ง่ายสำหรับนักเรียน ครู หรือข้าราชการ ที่จะนำไปเปิดบริการในสถาบัน หรือองค์กรของตนเอง
</td></table>
<table bgcolor=#ddffff width=100%><td>
<b>นโยบายที่กำหนดใน Default Script</b>
<br/>1. ให้พื้นที่เพียง 1 MB สำหรับสมาชิก Standard
<br/>2. ไม่อนุญาต Server-Side Script เช่น Perl, PHP หรือ ASP
<br/>3. แฟ้มที่ upload เข้า Server ต้องไม่เกิน 200 KB
<br/>4. Free Web Hosting ของเราเป็นเพียงกรณีศึกษา
</td></table>
<table bgcolor=#ddffdd width=100%><td>
<b>การคัดลอก Script หรือ Source Code ไปใช้</b>
<br/>1. เครื่องของท่าน ต้องเป็น Web Server ถ้าไม่เป็น ก็ต้องติดตั้งเพิ่ม
<br/>2. เครื่องของท่านต้องบริการภาษา PHP
<br/>3. โปรแกรมนี้ไม่ใช้ MySQL แต่ใช้ Text File เก็บข้อมูล
<br/>4. ถ้าผมพบข้อผิดพลาดจะแก้ไข ให้ท่านกลับมาคัดลอกรุ่นใหม่
</td></table>
<table bgcolor=#ddffff width=100%><td>
<b>การใช้บริการ Free Web Hosting</b>
<br/>1. เข้า thainame.net เพื่อใช้บริการ หรือเลือกเข้าชุมชน
<br/>2. เข้า weblampang.com เป็นตัวอย่างชุมชนย่อย .. ชุมชนหนึ่ง
<br/>3. เข้า thaiabc.net เป็นชุมชนย่อย ที่สมาชิกเป็นเจ้าของโดเมน แล้วสั่งชี้มา
<br/>4. คัดลอก Source Code ไปเปิดบริการใน Web Hosting ของตนเอง
</td></table>
</td></table>
<?php }
## 04 : Regist for new user 2/2 ##
function regist_user2() {
global $nutforcrypt,$user_file,$web_url;
$_SESSION['securekey'] = 0;
$have = 0;
$ar = file($user_file);
for ($i=0;$i<count($ar);$i++) {
$arr = explode(",",$ar[$i]);
if ($arr[0] == $_POST['user']) $have = 1;
}
$u1 = $_POST['user'] . $_POST['p1'] . $_POST['namesurn'] . $_POST['email'] . $_POST['org'];
$u2 = chkstr($u1);
if ($u1 != $u2) $have = 1;
#
if ($have == 0 && (strlen($_POST['user'])> 2) && (strlen($_POST['user']) < 12) && (strlen($_POST['p1'])> 2) && ($_POST['p1'] == $_POST['p2']) && (strlen($_POST['namesurn'])> 2) && (substr($_POST['user'],0,4) <> "http") && (substr($_POST['user'],0,3) <> "www")) {
$_SESSION['luser'] = $_POST['user'];
$_SESSION['lpassword'] = trim(crypt($_POST['p1'],$nutforcrypt));
$crypt = trim(crypt($_POST['p1'],$nutforcrypt));
$file = fopen($user_file,"a");
fputs($file, $_POST['user'] . ",$crypt,". date("d/m/Y H:i:s") .",0," . $_POST['namesurn'] . "," . $_POST['email'] ."," . $_POST['org'] .",\n");
fclose($file);
$d = $_POST['user'];
mkdir("$d",0777);
$file = fopen("$d"."/index.html","a");
fputs($file,"<meta http-equiv=content-type content='text/html; charset=utf-8'><body bgcolor=#ffffdd><br/><center>ขณะนี้ท่านมีพื้นที่ใน Server ตัวนี้เป็นของท่านแล้ว<br/>");
fputs($file,"ขั้นตอนต่อไป คือ สร้างแฟ้ม index.html แล้ว Upload เข้ามาทับแฟ้มเดิม<br/>");
fputs($file,"ถ้า Upload แฟ้ม index.html เข้ามาทับของเดิมแล้ว เว็บเพจที่ท่านเห็นอยู่นี้จะหายไป<br/>");
fclose($file);
echo "<center><font face=impact size=6>สมัครสมาชิกเรียบร้อย : <font color=red>Completely</font>";
echo "<br/><font face=fixedsys><a href=";
echo "$web_url". $_POST['user'] . ">";
echo "$web_url". $_POST['user'] . "</a></font>";
filelisting();
} else {
echo "<center><font size=6 color=red>";
if ($have> 0) "มีสมาชิกคนนี้อยู่แล้ว<br/>";
if (strlen($_POST['user']) <= 2) "รหัสผู้ใช้สั้นเกินไป<br/>";
if (strlen($_POST['user'])>= 12) "รหัสผู้ใช้ยาวเกินไป<br/>";
if (strlen($_POST['namesurn']) <= 2) "ชื่อ-สกุล มีอย่างน้อย 2 ตัวอักษร<br/>";
if (strlen($_POST['p1']) <= 2) "รหัสผ่านต้องมากกว่า 2 ตัวอักษร<br/>";
if ($_POST['p1'] <> $_POST['p2']) "กรอกรหัสผ่าน 2 ครั้งไม่ตรงกัน<br/>";
echo "ผลการสมัคร ผิดพลาด<br/>ให้ท่านกลับไปตรวจสอบข้อมูลใหม่";
if ($have == 1) { echo "<br/><font color=blue>รหัสสมาชิก " . $_POST['user'] . " ถูกจองไปแล้ว</font>"; }
echo "<br/><a href=?action=Regist>สมัครสมาชิกใหม่</a>";
}
}
## 05 : User listing ##
function user_listing() {
global $user_file,$line_userlisting,$admin_password,$web_url,$type_webspace;
$utype = "";
if (isset($_GET['utype'])) { $utype = "&utype=" . $_GET['utype']; }
echo "<base target=_blank><table width=760 align=center><td valign=top width=30>หน้าที่<td valign=top>";
$ar = file($user_file);
$cntf = count($ar);
$total_page = round($cntf/$line_userlisting);
if (($cntf / $line_userlisting)> $total_page) { $total_page++; }
if (!isset($_GET['page'])) $_GET['page'] = 1;
$clast = $cntf - $line_userlisting * ($_GET['page'] - 1);
$cfirst = $cntf - $line_userlisting * $_GET['page'];
if (isset($_GET["q"])) {
$clast = $cntf - 1;
$cfirst = 0;
}
if ($cfirst < 0) $cfirst = 0;
for ($i=1;$i<=$total_page;$i++) {
echo "<a href=?action=User_listing&page=$i" . $utype . " target=_self>$i</a> . ";
if (($i % 30) == 0) echo "<br/>";
}
echo "<td bgcolor=#dddddd width=1> <td valign=top align=center width=30>". ($cntf - 1) . "<br/>สมาชิก";
echo "</table><table width=760 align=center><tr bgcolor=#ddffdd><form action=? method=get target=_self><input type=hidden name=action value=User_listing>";
if (isset($_GET['utype'])) echo "<input type=hidden name=utype value=". $_GET['utype'] .">";
echo "<td><b>คำค้น :</b> <input name=q size=10> <input type=submit value=ค้นชื่อสมาชิก name=key> <input type=submit value=ค้นสถาบัน name=key> <b>แสดงผล</b>
<a href=?action=User_listing target=_self>มาตรฐาน</a> , <a href=?action=User_listing&utype=last target=_self >แสดงเวลา</a> , <a href=?action=User_listing&utype=totfile target=_self>จำนวนแฟ้ม</a> |
<b>เรียงแบบ</b> <a href=?action=User_listing&utype=last&direct=asc target=_self>a-z</a> , <a href=?action=User_listing&utype=last&direct=des target=_self>z-a</a> | <a href=?action=delete_user>ลบสมาชิก</a>";
echo "</td></form></table>";
echo "<table width=760 border=1 bordercolor=white bgcolor=#ffffdd align=center><tr bgcolor=#aaaaaa><td colspan=6><b>รายชื่อสมาชิก</b></td></tr>";
echo "<tr bgcolor=#dddddd><td>ลำดับ</td><td>เว็บของสมาชิก</td><td>";
if (isset($_SESSION['getadmin'])) $getadmin = $_SESSION['getadmin']; else $getadmin ="";
$bg_index = "";
if (!isset($_GET["q"])) $_GET["q"] = "";
if (!isset($_GET['utype'])) {
echo "ชื่อสมาชิก</td><td>ชื่อสถาบันการศึกษา หรือองค์การ</td><td>ประเภท</td><td>เวลาที่สมัคร</td></tr>";
for ($i=$clast;$i>=$cfirst;$i--){
if (!isset($ar[$i])) continue;
$arr = explode(",",$ar[$i]);
if (count($arr) < 8) continue;
$k = $cntf - $i;
$last = "";
if (file_exists($arr[0] ."/lastlog.log")) {
$arl = file($arr[0] ."/lastlog.log");
if (count($arl)> 0) {
$last = $arl[count($arl)-1];
}
}
if ($bg_index == "") $bg_index = "bgcolor=#ffffaa"; else $bg_index = "";
# type none
$found = 0;
if (strlen($_GET["q"]) > 0) {
if ($_GET["key"] == "ค้นชื่อสมาชิก") $usefield = $arr[4].$arr[0]; else $usefield = $arr[6];
if (stristr(strtolower($usefield),strtolower($_GET["q"]))) $found = 1;
}
if (($found == 1 || strlen($_GET["q"]) == 0) && count($arr) > 5) {
if (isset($_SESSION['admin_password_login']) && $_SESSION['admin_password_login'] == $admin_password) $del = "<a href='?action=delete_user&admin_password=$getadmin&user=$arr[0]' target=_self>#</a>"; else $del = "";
echo "<tr ". $bg_index .">";
echo "<td>$k</td><td><a href=$web_url$arr[0]>$arr[0]</a> $del</td><td><a title='$arr[5] " . $type_webspace[$arr[3]] . " [".$last."]'>$arr[4]</a></td><td>$arr[6]</td><td>" . $type_webspace[$arr[3]] . "</td><td>$arr[2]</td></tr>";
}
}
} else {
if ($_GET['utype'] == "last") {
echo "e-mail</td><td>ข้อมูลการ Sign in ล่าสุด (ถ้ามี)</td></tr>";
for ($i=$clast - 1;$i>=$cfirst;$i--){
if (!isset($ar[$i])) continue;
$arr = explode(",",$ar[$i]);
if (count($arr) < 8) continue;
$k = $cntf - $i;
$last = "";
if (file_exists($arr[0] ."/lastlog.log")) {
$arl = file($arr[0] ."/lastlog.log");
if (count($arl)> 0) {
$last = $arl[count($arl)-1];
}
}
# type last
$found = 0;
if (isset($_SESSION['admin_password_login']) && $_SESSION['admin_password_login'] == $admin_password) $del = "<a href='?action=delete_user&admin_password=$getadmin&user=$arr[0]' target=_self>#</a>"; else $del = "";
if (strlen($_GET["q"])> 0) {
if ($_GET["key"] == "ค้นชื่อสมาชิก") { $usefield = $arr[4].$arr[0]; } else { $usefield = $arr[6]; }
if (stristr(strtolower($usefield),strtolower($_GET["q"]))) $found = 1;
}
if (($found == 1 || strlen($_GET["q"]) == 0) && count($arr) > 5)
$datalast[$i] = "<! $last><tr><td>$k</td><td><a href=$web_url$arr[0]>$arr[0]</a> $del</td><td>$arr[5]</td><td>$last </td></tr>";
}
if (isset($_GET['direct'])) {
if ($_GET['direct'] == "asc") asort($datalast);
if ($_GET['direct'] == "des") rsort($datalast);
reset($datalast);
}
foreach ($datalast as $v) echo "$v";
} else {
if ($_GET['utype'] == "totfile") {
echo "e-mail</td><td>จำนวนแฟ้มใน Home Directory</td></tr>";
for ($i=$clast;$i>=$cfirst;$i--){
if (!isset($ar[$i])) continue;
$arr = explode(",",$ar[$i]);
if (count($arr) < 8) continue;
$k = $cntf - $i;
$totfile = 0;
$dir = "./" . $arr[0];
$dir_handle=opendir($dir);
$retVal[] = "";
while ($file = readdir($dir_handle)) {
if ($file != "." && $file != ".." && $file != "lastlog.log") {
$totfile = $totfile + 1;
$filetypes = filetype($dir."/".$file);
if ($filetypes == "dir") {
$dir_handles=opendir($dir."/".$file);
while ($files = readdir($dir_handles)) {
if ($files != "." && $files != "..") $totfile = $totfile + 1;
}
}
}
}
closedir($dir_handle);
if ($bg_index == "") $bg_index = "bgcolor=#ffffaa"; else $bg_index = "";
# type totfile
$found = 0;
if (isset($_SESSION['admin_password_login']) && $_SESSION['admin_password_login'] == $admin_password) $del = "<a href='?action=delete_user&admin_password=$getadmin&user=$arr[0]' target=_self>#</a>"; else $del = "";
if (strlen($_GET["q"])> 0)
if (stristr(strtolower($arr[6]),strtolower($_GET["q"]))) $found = 1;
if (($found == 1 || strlen($_GET["q"]) == 0) && count($arr) > 5) {
echo "<tr ". $bg_index .">";
echo "<td>$k</td><td><a href=$web_url$arr[0]>$arr[0]</a> $del</td><td>$arr[5]</td><td>$totfile</td></tr>";
}
}
}
}
}
echo "</table>";
}
## 06 : User login 1/2 ##
function user_login1() {
global $login_page;
// if (isset($_SESSION['luser'])) session_unregister('luser');
if (isset($_SESSION['luser'])) unset($_SESSION['luser']);
$_SESSION['luser'] = "ยังไม่มี";
echo $login_page;
}
## 07 : User login 2/2 ##
function user_login2() {
$found = check_password();
if ($_POST['action'] == "เข้าใช้บริการ" && $found == 1) {
$file = fopen($_SESSION['luser']."/lastlog.log","a");
fputs($file, date("Y/m/d H:i:s"). "," . $_SERVER['REMOTE_ADDR'] .",\n");
fclose($file);
}
filelisting();
}
## 08 : User logout ##
function user_logout() {
$_SESSION['luser'] = "ยังไม่มี";
echo "<font size=6><center>ท่าน Sign Out ออกไปเรียบร้อย<br/>ขอบคุณที่เข้ามาใช้บริการ";
}
## 09 : Upload file ##
function upload_file() {
global $msg;
for ($i=1;$i<=12;$i++) {
if ($_FILES['upload'.$i]['size']> 0) upload_file_sub($i);
}
if (strlen($msg)> 1) {
echo "<table width=760 bgcolor=yellow align=center><td><b>ผลการ Upload แฟ้ม :</b>$msg";
echo "<br/><font color=red>ถ้าท่านไม่พบคำว่า <b>Completely</b> ท้ายแฟ้มที่ upload อาจเป็นไปได้ว่าแฟ้มของท่านมีปัญหา หรือ <b>ติดต่อ webmaster</b> เพื่อขอคำปรึกษา</td></table>";
}
filelisting();
if (isset($_SESSION['securekey'])) $_SESSION['securekey'] = 100000 - (rand() % 99999);
}
## 10 : Delete file ##
function delete_file() {
$found = check_password();
$thisfile = $_POST['thisfile'];
if ($found == 1) {
$filetype = filetype($thisfile);
if ($filetype == "dir") {
@rmdir($thisfile);
} else {
unlink($thisfile);
}
}
filelisting();
}
## 11 : Edit user profile 1/2 ##
function edit_user1() {
$found = check_password();
global $web_url,$mem_namesurn,$mem_email,$mem_org;
if ($found == 1) {
if (isset($_POST["namesurn"])) $mem_namesurn = $_POST["namesurn"];
if (isset($_POST["email"])) $mem_email = $_POST["email"];
if (isset($_POST["org"])) $mem_org = $_POST["org"];
?>
<br/><table width=760 bgcolor=#dddddd align=center><form action=? method=post>
<tr><td align=right><?php echo $web_url; ?></td><td><input type=hidden name=euser size=20 value=<?php echo $_SESSION['luser']; ?>><b><?php echo $_SESSION['luser']; ?></b></td></tr>
<tr bgcolor=black><td align=right><font color=white>รหัสผ่านเดิม</td><td><input name=p0 size=20 type=password><font color=white> รหัสนี้สำคัญท่านต้องกรอกรหัสเดิมให้ถูกต้อง (Required)</td></tr>
<tr bgcolor=#ffdddd><td align=right>รหัสผ่านที่ต้องการ</td><td><input name=p1 size=20 type=password> ถ้าไม่เปลี่ยนรหัสก็ไม่ต้องกรอก (Option)</td></tr>
<tr bgcolor=#ffdddd><td align=right>ยืนยันรหัสผ่านอีกครั้ง</td><td><input name=p2 size=20 type=password> ถ้าไม่เปลี่ยนรหัสก็ไม่ต้องกรอก (Option)</td></tr>
<tr><td align=right>ชื่อ-สกุลภาษาไทย (เช่น สมคิด เกาะคา)</td><td><input name=namesurn size=50 value='<?php echo $mem_namesurn; ?>'></td></tr>
<tr><td align=right>e-mail (เช่น webmaster@thaiall.com)</td><td><input name=email size=50 value='<?php echo $mem_email; ?>'></td></tr>
<tr><td align=right>ชื่อ สถาบันการศึกษา หรือองค์การ</td><td><input name=org size=50 value='<?php echo $mem_org; ?>'></td></tr>
<tr><td></td><td colspan=2><input type=submit value=แก้ไขข้อมูลสมาชิก name=action></td></tr>
</form></table>
<?php }
}
## 12 : Edit user profile 2/2 ##
function edit_user2() {
global $user_file,$nutforcrypt;
$no_msg = "<center><font size=6 color=red>ยังไม่มีการปรับปรุงข้อมูล : not update anything<br/>เป็นไปได้ว่า รหัสผ่านเก่าไม่ถูกต้อง หรือรูปแบบข้อมูลไม่ถูกต้อง</font>";
$found = check_password();
if ($found == 1) {
$ar = file($user_file);
$have = 0;
for ($i=0;$i<count($ar);$i++){
$arr = explode(",",$ar[$i]);
if ($arr[0] == $_SESSION['luser']) $have = 1;
}
$u1 = $_POST['euser'] . $_POST['namesurn'] . $_POST['email'] . $_POST['org'];
$u2 = chkstr($u1);
if ($u1 != $u2) $have = 0;
if ($have == 1) {
$file = fopen($user_file,"w");
$passwd = trim(crypt($_POST['p0'],$nutforcrypt));
if ($_POST['p1'] == $_POST['p2'] && strlen($_POST['p1'])> 2) $passwd = trim(crypt($_POST['p1'],$nutforcrypt));
for ($i=0;$i<count($ar);$i++){
$arr = explode(",",$ar[$i]);
if ($arr[0] == $_POST['euser']) {
fputs($file, $_POST['euser'].",".$passwd.",".$arr[2].",".$arr[3].",".$_POST['namesurn'].",".$_POST['email'].",".$_POST['org'].",\n");
} else {
fputs($file, $ar[$i]);
}
}
fclose($file);
echo "<center><font size=6 color=red>แก้ไขข้อมูลสมาชิก : completely</font>";
footer();
} else echo $no_msg;
} else echo $no_msg;
}
## 13 : Edit html file 1/2 ##
function edit_html1() {
$found = check_password();
if ($found == 1) {
$thisfile = $_POST['thisfile'];
echo "<center><br/><font size=6>แก้ไขแฟ้ม :: <font color=red>$thisfile</font>";
echo "<table bgcolor=gray border=3><form action=? method=post>";
echo "<input type=hidden name=thisfile value=".$thisfile.">";
echo "<input type=hidden name=keepaction value=".$_POST['action'].">";
echo "<td><textarea name=txt rows=20 cols=120 wrap=off>";
$ar = file($thisfile);
for ($j=0;$j<count($ar);$j++) echo "$ar[$j]";
echo "</textarea></td></table><input type=submit value=save_file name=action>";
echo "</form>";
}
}
## 14 : Edit html file 2/2 ##
function edit_html2() {
$found = check_password();
// Protect file name post difference from old file
if ($found == 1 && file_exists($_POST['thisfile'])) {
$file = fopen($_POST['thisfile'],"w");
fputs ($file,stripslashes($_POST['txt']));
fclose($file);
}
filelisting();
}
## 71 : Create Folder ##
function create_folder() {
global $scriptname;
$found_folder = 0;
$chkfolder = preg_split("[ /,]",$_POST['folder']);
if (count($chkfolder)> 1) $found_folder = 1;
$dir_handle=opendir("./".$_SESSION['luser']);
while ($file = readdir($dir_handle)) {
if ($file != "." && $file != ".." && $file != $scriptname && $file != "index.html" && strlen($_POST['folder'])> 0) {
if (strtolower($_POST['folder']) == strtolower($file)) $found_folder = 1;
}
}
closedir($dir_handle);
if ($found_folder == 0 && strlen($_POST['folder']) > 0 && chkstr($chkfolder) == $chkfolder) {
mkdir($_SESSION['luser']."/".$_POST['folder'],0777);
filelisting();
} else {
echo "<br/><br/><center><font size=6>มี Folder หรือ File นี้แล้ว<br/>หรือ ชื่อ Folder ไม่ถูกต้อง<br/>จึงสร้าง Folder นี้ไม่ได้</font>";
}
}
## 81 : folder listing ##
function folder_listing($dir) {
global $user_file,$create_user,$admin_password,$folder_listing_lock;
if ($folder_listing_lock == "1") {
if (!isset($_SESSION['admin_password_login']) || $_SESSION['admin_password_login'] != $admin_password) {
echo "<center><form action=? method=post target=_self><td align=center>
Admin Password :<input name=adminpassword value='' size=30>
<input type=submit value=admin_password name=action>
</td></form>";
exit;
} else {
echo "<center><form action=? method=post target=_self><center>
Sign Out : <input type=hidden name=adminpassword value='Logout' size=30>
<input type=submit value=admin_password name=action>
</center></form>";
}
}
if (!file_exists($user_file) || $create_user == "0" || (isset($_SESSION['admin_password_login']) && $_SESSION['admin_password_login'] == $admin_password)) {
if (strlen($dir) > 0) $dir_handle=opendir("./".$dir); else $dir_handle=opendir(".");
if (strlen($dir) > 0 && chkstr($dir) == $dir) $dir = "$dir/";
echo "<table width=760 align=center><td><font face='courier new' color=gray><ol>";
while ($file = readdir($dir_handle)) {
if ($file != "." && $file != "..") {
$filetype = filetype($dir . $file);
if ($filetype == "dir") {
$flist = "Dir :";
echo "<li>$flist <a href='?action=folder_listing&dir=$file'>$file</a>";
$dir_handle_sub = opendir($dir . $file);
$c_sub = 0;
while ($file_sub = readdir($dir_handle_sub)) {
$c_sub++;
if (substr($file_sub,-4) == ".php") echo "<br/>- $file_sub";
}
echo " $c_sub";
} else {
$flist = "File :";
echo "<li>$flist <a href='$file'>$file</a> " . filesize($dir . $file);
}
}
}
echo "</ol></td></table>";
closedir($dir_handle);
} else {
echo "<table width=760 align=center><td align=center><font color=red>ตัวแปร \$create_user ต้องเท่ากับ '0' จึงจะมีสิทธิ์ดูรายชื่อ folder ได้ครับ</td></table>";
}
}
## 82 : delete user account ##
function delete_user() {
global $nutforcrypt,$admin_password,$user_file,$tb_delete;
$ap = crypt($_POST['admin_password'],$nutforcrypt);
if ($_SESSION['securekey'] == $_POST["secure"] && $ap == $admin_password) {
$ar = file($user_file);
$found = 0;
for ($i=0;$i<count($ar);$i++){
$arr = explode(",",$ar[$i]);
if ($arr[0] == $_POST['luser']) $found = 1;
}
if ($found == 1) {
$file = fopen($user_file,"w");
for ($i=0;$i<count($ar);$i++){
$arr = explode(",",$ar[$i]);
if ($arr[0] == $_POST['luser']) {
echo "<center><font size=6>Delete in ".$user_file." : complete<br/>";
} else {
fputs($file, $ar[$i]);
}
}
fclose($file);
$dir = "./" . $_POST['luser'];
$dir_handle=opendir($dir);
$retVal[] = "";
$retVald[] = "";
while ($file = readdir($dir_handle)) {
if ($file != "." && $file != "..") {
$filetype = filetype("$dir/$file");
$retVal[count($retVal)] = $file;
if ($filetype == "dir") $retVald[count($retVal)] = $file;
}
}
closedir($dir_handle);
# ลบแฟ้มใน Sub
while (list($key, $list) = each($retVald)) {
if ($list != "." && $list != ".." && strlen($list)> 0) {
$retVals[] = "";
if ($dir_handles=opendir("$dir/$list")) {
while ($file = readdir($dir_handles)) {
if ($file != "." && $file != "..") unlink("$dir/$list/$file");
}
closedir($dir_handles);
rmdir("$dir/$list");
}
}
}
# ลบแฟ้มใน Root
while (list($key, $list) = each($retVal)) {
if ($list != "." && $list != ".." && strlen($list)> 0 && file_exists("$dir/$list")) {
$filetype = filetype("$dir/$list");
if ($filetype == "dir") rmdir("$dir/$list"); else unlink("$dir/$list");
}
}
rmdir($_POST['luser']);
}
echo $tb_delete;
} else {
echo "<center><font color=red size=6>
<font size=4>อาจเพราะ \$admin_password หรือ Secure Code หรือ รหัสสมาชิก</font><br/>
อย่างใด อย่างหนึ่ง <b>ไม่ถูกต้อง</b></font>" . $tb_delete;
$_SESSION['securekey'] = 0;
}
}
## 83 : create admin_password for $admin_password ##
function create_admin_password() {
global $nutforcrypt,$admin_password;
$x = trim(crypt($_POST['adminpassword'],$nutforcrypt));
if ($x == $admin_password) {
echo "<font size=6><center>Admin Password : Verified<br/>";
$_SESSION['admin_password_login'] = $x;
echo "<meta http-equiv=refresh content='3;url=?action=folder_listing'>";
footer();
} else {
$_SESSION['admin_password_login'] = $x;
echo "<center><font size=6 color=red>". $_SESSION['admin_password_login'];
echo '<br/>นำรหัสที่ถูกแปลงนี้ ไปกำหนดให้ $admin_password ได้<br/>';
footer();
}
}
## 84 : view source of filemanager.php ##
# ยกเลิกชื่อ filemanager.php เป็น index.php เมื่อ 2549-03-26
function view_source() {
global $scriptname;
echo "<table width=760 bgcolor=#ffffdd align=center><td align=center>
เพียงแต่คัดลอกโปรแกรมนี้ไปไว้ใน Web Server ของท่าน ก็สามารถเปิดบริการ Free Web Hosting ได้แล้ว<br/>
โปรแกรมนี้ใช้ Text File เก็บข้อมูล และทดสอบเปิดบริการใน se-ed.net ยังใช้ได้เลยครับ<br/>";
echo "<textarea rows=15 cols=120 wrap=off>";
$ar = file($scriptname);
for ($i=0;$i<count($ar);$i++) echo htmlspecialchars($ar[$i]);
echo "</textarea>";
echo "<br/>ใช้ Mouse Click ในกรอบที่มี Source Code แล้วกด <b>CTRL-A</b> บนแป้นพิมพ์ แล้วกดปุ่ม <b>CTRL-C</b><br/>ไปเปิด Notepad แล้วกดปุ่ม <b>CTRL-V</b> หลังแก้ไขค่าต่าง ๆ ให้ Save As เป็น <b>$scriptname</b>";
echo '<br/>เมื่อได้โปรแกรมไป ควรแก้ตัวแปร <b>$web_url</b> ในแฟ้ม <b>$scriptname</b> เป็นชื่อเว็บไซต์ของท่าน<br/>เพียงเท่านี้ก็เปิดบริการ Free Web Hosting อย่างง่าย ๆ ถ้าเครื่องท่านเป็น Web server และบริการ PHP';
echo "</td></table>";
}
## 90 : function : write image ##
function write_secret_image() {
header("Content-type: image/png");
$string = $_SESSION['securekey']; // 6 Numbers
$width = 70;
$height = 15;
$im = @imagecreate ($width,$height);
$text_color = imagecolorallocate ($im, 255, 255, 255);
$text_color2 = imagecolorallocate ($im, 200, 0, 0);
$l = ImageColorAllocate($im, 200, 100, 100);
$red = ImageColorAllocate($im, 255, 0, 0);
imagefill($im, 0, 0, $red);
$col = (rand() % 10) + 3;
$font = (rand() % 2) + 4;
imagestring ($im, $font, $col + 1, 1, $string, $text_color2);
imagestring ($im, $font, $col, 0, $string, $text_color);
imageinterlace($im, 1);
imageline($im, 2, 4, 65, 4, $l);
imageline($im, 2, 11, 65, 11, $l);
imagepng ($im);
imagedestroy($im);
exit;
}
## 91 : function : Get user web space ##
function space_used() {
$total = 0;
$dir = "./" . $_SESSION['luser'];
$dir_handle=opendir($dir);
while ($file = readdir($dir_handle)) {
if ($file != "." && $file != "..") {
$filesize = filesize("$dir/$file");
$total = $total + $filesize;
}
}
closedir($dir_handle);
return $total;
}
## 92 : function : Check password and get user information ##
function check_password() {
global $user_file,$mem_type,$mem_namesurn,$mem_email,$mem_org;
$found = 0;
if ($_POST['action'] <> "เข้าใช้บริการ") {
if (isset($_POST['luser'])) $_SESSION['luser'] = $_POST['luser'];
if (isset($_POST['lpassword'])) $_SESSION['lpassword'] = $_POST['lpassword'];
}
if (!isset($_SESSION['luser'])) {
$_SESSION['luser'] ="";
} else {
$ar = file($user_file);
for ($i=0;$i<count($ar);$i++){
$arr = explode(",",$ar[$i]);
$k = $i + 1;
if (($arr[0] == $_SESSION['luser']) && ($arr[1] == $_SESSION['lpassword'])) {
$found = 1;
$mem_type = $arr[3];
$mem_namesurn = $arr[4];
$mem_email = $arr[5];
$mem_org = $arr[6];
}
}
}
return $found;
}
## 93 : function : File listing ##
function filelisting() {
global $max_webspace,$mem_type,$allow_extension,$max_file_size,$login_page;
$found = check_password();
if ($found == 1) {
echo "<base target=_blank>";
echo "<table width=760 bgcolor=black align=center>";
echo '<form enctype="multipart/form-data" action=? method=post target=_self><td>' . "\n";
echo '<input type=hidden name=luser value='. $_SESSION['luser'] . '>';
echo '<input type=hidden name=lpassword value='.$_SESSION['lpassword'] . '>';
echo '<table width=100%><td><table align=center><tr><td align=center><font size=0 color=white>ส่งแฟ้มเข้า Server<br/>พร้อมกันได้ครั้งละ 12 แฟ้ม</td></tr><tr><td align=center bgcolor=#dddddd>';
echo '<font color=black><img src=?secure=yes><br/><input name=secure size=8><br/>กรอกเลขความปลอดภัย</td></tr><tr><td align=center>';
$i = 0;
$total = 0;
$dir = "./" . $_SESSION['luser'];
$dir_handle=opendir($dir);
$retVal[] = "";
while ($file = readdir($dir_handle)) {
if ($file != "." && $file != "..") {
$filetype = filetype("$dir/$file");
if ($filetype == "file") {
$retVal[count($retVal)] = "$dir/$file";
} else {
$retVal[count($retVal)] = "$dir/$file";
$dir_handles=opendir("$dir/$file");
while ($filesub = readdir($dir_handles)) {
if ($filesub != "." && $filesub != "..") {
$retVal[count($retVal)] = "$dir/$file/$filesub";
}
}
closedir($dir_handles);
}
}
}
closedir($dir_handle);
sort($retVal);
echo "<select name=folder><option value='$dir'>$dir";
while (list($key, $list) = each($retVal)) {
$filetype = filetype("$list");
if ($filetype == "dir") echo "<option value=$list>$list";
}
echo "</select><br/>";
sort($retVal);
echo '<input type=submit value=upload name=action></td></tr></table></td>';
echo '<td align=right><font color=yellow>1:<input type=file name=upload1><br/>2:<input type=file name=upload2><br/>3:<input type=file name=upload3><br/>4:<input type=file name=upload4><br/>5:<input type=file name=upload5><br/>6:<input type=file name=upload6></td>';
echo '<td align=right><font color=yellow>6:<input type=file name=upload7><br/>7:<input type=file name=upload8><br/>8:<input type=file name=upload9><br/>9:<input type=file name=upload10><br/>11:<input type=file name=upload11><br/>12:<input type=file name=upload12></td>';
echo "</table><center><font size=0 color=white>นามสกุลของแฟ้มที่อนุญาต คือ <font color=yellow>$allow_extension และขนาดแฟ้มต้องไม่เกิน $max_file_size Byte</center></td></form></table>";
echo "<table width=760 bgcolor=#ddffdd align=center><form action=? method=post target=_self>";
echo "<tr><td align=right>สร้าง Folder ใน ./".$_SESSION['luser']." / </td><td><input name=folder><input type=submit value='Create Folder' name=action> ให้กรอกเฉพาะชื่อ Folder เช่น img หรือ images เป็นต้น</td></tr>";
echo "</form></table>";
echo "<table width=760 bgcolor=#dddddd align=center>";
echo "<tr bgcolor=black height=1><td colspan=3></td><td colspan=2 width=300></td></tr>";
while (list($key, $list) = each($retVal)) {
if ($list != "." && $list != ".." && strlen($list)> 0) {
$i = $i + 1;
$filesize = filesize("$list");
$filetype = filetype("$list");
$total = $total + $filesize;
echo "<tr bgcolor=#ffffdd><form action=? method=post target=_self>";
echo "<td width=50 bgcolor=#dddddd><input type=submit value='ลบ' name=action>";
if (substr($list,-4) == ".htm" || substr($list,-5) == ".html") {
echo "<input type=submit value='แก้' name=action>";
}
echo "</td><td bgcolor=#dddddd align=right width=20>$i</td><td ";
if ($filetype == "file") echo "bgcolor=white>"; else echo "bgcolor=#ddffff>";
echo "<a href='$list'>$list</a> ";
echo "<input type=hidden name=thisfile value='$list'>";
if ($list == "lastlog.log") { echo "(แฟ้มนี้ระบบสร้างเพื่อเก็บประวัติการเข้าใช้)"; }
echo "</td><td width=200 align=right>";
echo date("F d, Y H:i:s",filectime("$list"));
echo "</td><td align=right width=100>";
if ($filetype == "file") {
echo "<font color=red>$filesize</font> Byte";
} else {
if ($filetype == "dir") echo "Folder";
}
echo "</td></form></tr>\n";
}
}
echo "<tr bgcolor=black height=1><td colspan=3></td><td colspan=2 width=300></td></tr>";
echo "<tr><td colspan=6 align=right bgcolor=white>";
echo "<table bgcolor=#ddddff width=300><tr><td>ขณะนี้ใช้พื้นที่เก็บข้อมูลไป</td><td align=right><b>$total</b> Byte</td></tr><tr><td>เหลือพื้นที่</td><td align=right><font color=red><b>";
echo $max_webspace[$mem_type] - $total;
echo "</b></font> Byte</td></tr><tr><td>ระบบเตรียมพื้นที่ให้</td><td align=right><b>$max_webspace[$mem_type]</b> Byte</td></tr></table>";
echo "</td></tr></table>";
} else {
// check $found
$_SESSION['luser'] = "ยังไม่มี";
echo "<center><font size=6>รหัสผู้ใช้ หรือรหัสผ่าน ไม่ถูกต้อง<hr color=red width=760>$login_page<br/><a href=?action=User_login>BACK</a></font></center>";
}
}
## 94 : function : Upload file sub ##
function upload_file_sub($up) {
global $max_webspace,$mem_type,$allow_extension,$max_file_size,$vip_user,$msg;
$found = check_password();
if ($_SESSION['securekey'] == $_POST["secure"]) {
# check extension of file
$ar_last_ext = explode(".",$_FILES['upload'.$up]['name']);
$last_ext = $ar_last_ext[count($ar_last_ext) - 1];
$ar = explode(",",$allow_extension);
$found_ext = 0;
for ($i=0;$i<count($ar);$i++){
if (strtolower($last_ext) == strtolower($ar[$i])) { $found_ext = 1; }
}
# check vip_user
$ar = explode(",",$vip_user);
$found_vip_user = 0;
for ($i=0;$i<count($ar);$i++){
if ($_SESSION['luser'] == strtolower($ar[$i])) { $found_vip_user = 1; }
}
if ($found == 1 && ($found_ext == 1 || $found_vip_user == 1)) {
$space_used = space_used();
$rest = $max_webspace[$mem_type] - $space_used;
$size = $_FILES['upload'.$up]['size'];
// == upload process ==
if ($size> 0 && $size < $max_file_size && $size < $rest) {
$name = $_FILES['upload'.$up]['name'];
// $copypath = $_SESSION['luser'];
$copypath = $_POST['folder'];
copy($_FILES['upload'.$up]['tmp_name'],"$copypath/$name");
$msg = $msg . "<br/>แฟ้ม " . $_FILES['upload'.$up]['name'] . " : <b>Completely</b><br/>";
} else {
$msg = $msg . "<br/>แฟ้ม " . $_FILES['upload'.$up]['name'] . " : ขนาดแฟ้มมีปัญหา หรือพื้นที่ไม่พอ ขนาดแฟ้ม $size byte เหลือ $rest byte<br/>";
}
} else {
$msg = $msg . "<br/>แฟ้ม " . $_FILES['upload'.$up]['name'] . " : สกุลของแฟ้มนี้ ไม่ถูกอนุญาต<br/>";
}
}
}
## 95 : function : Remove special character
function chkstr($str) {
$non = array('!','#','$','%','^','&','*','+','/','<','>','`','php');
return (str_replace($non, '', $str));
}
## 98 : FAQs ##
# เคยไม่กำหนดอะไร ก็เข้า FAQs แล้ว ด้วย if (!isset($_GET['action']) && !isset($_POST['action'])) {
#
function faqs() {
global $tb_delete,$user_file,$scriptname;
print "<br/>
<table width=760 bgcolor=#ddffdd bordercolor=#008000 border=1 align=center>
<tr><td align=right bgcolor=black><font color=white>FAQs : Frequently Asked Questions</td></tr><tr><td>
<font size=6>คำถามที่ถูกถามบ่อย</font><font size=4>
<br/>1. <a href=#q01>แนะนำบริการ ของเพื่อนร่วมอุดมการณ์ (Free Web Hosting)</a>
<br/>2. <a href=#q02>ใครมีสิทธิ์ใช้บริการ บริการอะไร และใครมีสิทธิ์ถูกลบจากระบบ</a>
<br/>3. <a href=#q03>เปลี่ยนระดับสิทธิ์ของผู้ใช้จาก Standard เป็นระดับสูงขึ้นอย่างไร</a>
<br/>97. <a href=#q97>รายชื่อ folder ใน current directory</a>
<br/>98. <a href=#q98>ผู้ดูแลที่ได้โปรแกรมนี้ไปใช้ จะลบผู้ใช้ในระบบตนได้อย่างไร</a>
<br/>99. <a href=#q99>วิธีสร้างรหัส ของ admin เพื่อนำไปแก้ Code</a>
</td></tr></table>
<table width=760 align=center><td><pre>
<a name=q01></a>
<font size=6>1. แนะนำบริการ ของเพื่อนร่วมอุดมการณ์ (Free Web Hosting)</font>
<ul><b>1.1 แนะนำ free Web Hosting มืออาชีพ ที่ยังเปิดให้บริการอยู่</b>
<ul>1.1.1 <a href=http://www.thcity.com>http://www.thcity.com</a> :: ของชาวพิษณุโลก บริการได้ดีมาก บริการ php
1.1.2 <a href=http://www.se-ed.net>http://www.se-ed.net</a> :: ของสำนักพิมพ์ se-ed บริการ e-mail แบบ pop3 และ free Web Hosting และ php และ ftp
1.1.3 <a href=http://www.geocities.com>http://www.geocities.com</a> :: น่าเชื่อถือ แต่ช้าหน่อย เพราะอยู่ต่างประเทศ และต้องใช้ File Manager
1.1.4 <a href=http://www.7host.com>http://www.7host.com</a> :: สมัครง่ายไม่ต้องรอการยืนยัน และใช้ ASP ได้ (ติดต่อ MDB ได้)
1.1.5 <a href=http://www.1asphost.com>http://www.1asphost.com</a> :: สมัครง่ายไม่ต้องรอการยืนยัน และใช้ ASP ได้ (แปลกครับ ติดต่อ mdb ไม่ได้)
1.1.6 <a href=http://www.thai.net>http://www.thai.net</a> :: ปิดรับสมาชิกเมื่อ 26 มกราคม 2549
</ul>
<b>1.2 เหตุที่เว็บนี้ หรือเว็บโฮสติ้งต่าง ๆ ต้องจำกัดบริการ</b>
<ul>1.2.1 ไม่สามารถรองรับ Data transfer หรือ Bandwidth ที่มีปริมาณสูงมาก เพราะรายรับไม่สูงตามปริมาณสมาชิก
1.2.2 ไม่สามารถให้ web space ได้มาก ถ้าอนุญาตให้ใช้พื้นที่มาก ๆ จำนวนสมาชิกก็จะต้องน้อยลง เพราะกำแพงเรื่องขนาด Harddisk ไม่สูง
1.2.3 เครื่องคอมพิวเตอร์ที่ใช้มีความเร็วไม่สูง เพราะไม่ใช่มืออาชีพ และไม่สามารถลงทุนให้ทันกับเทคโนโลยีที่เปลี่ยนทุกเดือน
1.2.4 ทั้งหมดทำเป็นกรณีศึกษา ให้เยาวชนไทยศึกษา หรือภาคธุรกิจ นำไปพัฒนาจนเปิด free Web Hosting
</ul></ul>
<hr color=#dddddd>
<a name=q02></a>
<font size=6>2. ใครมีสิทธิ์ใช้บริการ บริการอะไร และใครมีสิทธิ์ถูกลบจากระบบ</font>
<ul><b>2.1 Server ตัวนี้ให้บริการ แก่ใครบ้าง และอย่างไร</b>
2.1.1 ชาวลำปาง ที่เป็น นักเรียน นักศึกษา ภาคธุรกิจ นักวิชาการ ข้าราชการ และทุกคน ที่ต้องการพื้นที่พัฒนาเว็บในเชิงสร้างสรรค์
2.1.2 บริการที่เพิ่มขึ้น มีให้กับผู้ที่ต้องการใช้บริการจริงจัง ด้วยการโทรมาคุย เช่น ชื่อที่สั้นขึ้นโดยไม่มีคำว่า home เช่น http://www.weblampang.com/burin02
2.1.3 บริการ php, asp, perl, ftp เปิดให้ชาวลำปาง มีสามารถอ้างอิงที่อยู่ เบอร์โทรศัพท์ และรักการพัฒนาเชิงสร้างสรรค์ เพราะอาจทำให้ server ล่มได้โดยง่าย
2.1.4 ผู้ใช้บริการ จะต้อง backup ข้อมูลของตนเองไว้อย่างดีที่บ้าน และต้องไม่ส่งข้อมูลสำคัญเข้า server เพราะข้อมูลอาจหาย หรือถูก hack ไปได้ในอนาคต
<b>2.2 Account ที่อาจถูกลบ</b>
2.2.1 ไม่มีข้อมูล หรือข้อมูลไม่สมบูรณ์ เช่น ทำเว็บไม่เสร็จ และไม่เข้ามาพัฒนาต่อเป็นเวลานาน เป็นต้น
2.2.2 ห้ามขายยาลดความอ้วน หรือบริการใด ๆ แบบ work at home หรือชวนทำงานที่บ้าน
2.2.3 ห้ามเก็บภาพผิดกฏหมาย หรือล่อแหลม หรือ MP3 หรือ Hack software เป็นต้น
2.2.4 มีปริมาณการเข้าใช้บริการมากผิดปกติ
2.2.5 ตามที่ทีมงานเห็นสมควร
</ul>
<a name=q03></a>
<font size=6>3. เปลี่ยนระดับสิทธิ์ของผู้ใช้จาก Standard เป็นระดับสูงขึ้นอย่างไร</font>
<br/>โปรแกรมเตรียมระดับผู้ใช้ไว้ 4 ระดับ คือ Standard:0, Silver:1, Gold:2 หรือ Diamon:3
<br/>ผู้เขียนยังไม่เขียนโปรแกรมปรับปรุงส่วนนี้ให้สะดวก การเปลี่ยนสิทธิ์ต้องใช้ notepad หรือ vi เปิดแฟ้ม $user_file
มาแก้เลข 0 เป็นเลข 1 ถึง 3 ตามต้องการ สำหรับค่าสถานะคือเลขที่อยู่ข้างหน้าชื่อในแฟ้ม $user_file นั่นเอง
ส่วนสถานะจะมีผลต่อการให้พื้นที่สมาชิกโดยตรง และสามารถเพิ่มลดได้ผ่านตัวแปร <b>\$max_webspace</b>
<hr color=#dddddd>
<a name=q97></a>
<font size=6>97. รายชื่อ folder ใน current directory</font><ul>
<br/>เรียกใช้ <a href=?action=folder_listing>?action=folder_listing</a>
<br/>เช่น http://127.0.0.1/". $scriptname ."?action=folder_listing
<br/>- แสดงรายชื่อ Directory ถ้าไม่มีพบแฟ้ม $user_file
<br/>- เพิ่ม Option เพื่อแสดงรายชื่อแฟ้มใน Directory สำหรับ Web Server ที่ปิดการแสดงรายชื่อแฟ้ม
<br/>- ถ้า Sign in เป็น Admin จะแสดงรายชื่อ Directory ได้
</ul>
<hr color=#dddddd>
<a name=q98></a>
<font size=6>98. ผู้ดูแลที่ได้โปรแกรมนี้ไปใช้ จะลบผู้ใช้ในระบบตนได้อย่างไร</font>
<br/>เพื่ออำนวยความสะดวกให้กับผู้ดูแลในการลบผู้ใช้ จึงมีบริการลบรหัสผู้ใช้ และแฟ้มทั้งหมดของผู้ใช้ ด้วยการกดปุ่มครั้งเดียว
แต่ผู้ที่จะลบ จะต้องทราบรหัสผ่านของผู้ดูแล ซึ่งถูกเข้ารหัส และเก็บไว้ในตัวแปร <b>\$admin_password</b> หากผู้ดูแลยังไม่มีรหัสนี้ให้ดูจากข้อ 99
จึงจะมีสิทธิ์ และลบผู้ใช้ที่ต้องการได้
$tb_delete
<hr color=#dddddd>
<a name=q99></a>
<font size=6>99. วิธีสร้างรหัส ของ admin เพื่อนำไปแก้ Code</font>
<br/>ส่วนนี้ถูกใช้โดยผู้ดูแลระบบ ที่ต้องการนำรหัส ที่ถูกเข้ารหัสแล้วไปแทนที่ในตัวแปร <b>\$admin_password</b> เพื่อใช้สำหรับลบสมาชิก
ด้วยการกรอกรหัสผ่านใหม่ลงในช่องด้านล่าง แล้วกดปุ่ม admin_password จากนั้นก็นำรหัส 13 ตัวอักษร เช่น <b>peKJaPFsM79Kw</b>
ไปแทนที่ในตัวแปร \$admin_password ซึ่งอยู่ในแฟ้ม ".$scriptname." และในกรณีที่ท่านลืมรหัสผ่าน ก็สามารถกำหนดใหม่ แล้วนำรหัส 13 ตัวอักษร
ชุดใหม่ ไปแทนที่ในตัวแปร \$admin_password อีกครั้ง .. ถ้ารหัสที่ท่านกรอกตรงกับรหัสเดิมก็จะแสดงคำว่า Verified
เพื่อให้รหัสถูกต้อง และบันทึกเข้า Session ทำให้ท่านมีสิทธิ ลบรหัสสมาชิกได้โดยง่าย
<br/>ถ้ากรอกรหัสที่ถูกต้อง แล้วกดปุ่ม admin_password เมื่อเข้าไปแสดงรายชื่อสมาชิกจะพบเครื่องหมาย # หลัง User Name
ซึ่งช่วยให้เลือกลบข้อมูลสมาชิกได้ง่ายขึ้น แต่การลบก็ต้องใช้ admin_password อีกครั้ง
<table align=center width=40% bgcolor=#404040><form action=? method=post target=_self><td align=center>
<input name=adminpassword value='Type your passowrd here' size=30>
<br/><font color=white>Use mouse click on =><input type=submit value=admin_password name=action>
</td></form></table>
<hr color=black>
</td></table>
";
}
## 99 : User name writing ##
function user_functions() {
global $web_url;
if (isset($_SESSION['luser'])) {
echo '<div style="top:10px;margin-right:auto;margin-left:auto;width:760px;">';
echo "<table width=100% border=0 cellpadding=0 cellspacing=0><form action=? method=post target=_top><td>";
echo "<table width=760 border=0 cellpadding=0 cellspacing=0 bgcolor=#000080 align=center><tr><td width=100%><font color=white>รหัสผู้ใช้ปัจจุบัน : <b>";
if ($_SESSION['luser'] == "ยังไม่มี") {
echo $_SESSION['luser'] . "</b></td><td>";
} else {
$l = $web_url . $_SESSION['luser'] . "/";
echo "<a href=$l style={color:#ddffff;}>$l</a></b></td><td>";
echo "<input type=submit value='เข้าจัดการแฟ้ม' name=action>";
echo "<input type=submit value='แก้ไขข้อมูลสมาชิก' name=action>";
echo "<input type=submit value='เลิกการทำงาน' name=action>";
}
echo "</td></tr></table>";
echo "</td></form></table></div>";
}
}
## 100 : Footer Writing ##
function footer() {
global $title;
?> <table width=760 align=center><td align=center><font size=0 color=#000080><?php echo $title; ?><br/>
<a href=http://www.thaiall.com/me>ทีมงานผู้พัฒนาโปรแกรม</a> 08-1992-7223<br/>
<script language=javascript>
<!--
url=document.location.href.substr(7,11)
page="weblampang"
if(url == "www.thainam") document.write("<script language='javascript1.1' src='http://hits1.truehits.net/data/h0013970.js'></script>")
-->
</script>
</td></table>
</body></html>
<?php exit; } ?>
จำนวน : 1186 บรรทัด