File : filemanagerphp.txt. ID : 9108
Skin : Default | Sons-of-obsidian | Sunburst | Highlighter | Frame
<?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=เข้าใช้บริการ> &lt;-- 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'> =&gt; <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 &nbsp;</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 =&gt;<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; } ?>