thaiall logomy background
coding : filemanagerphp.txt.
my town
Source : Perl | PHP | ASP | JSP | HTML | HTML5 | JavaScript | Java | COBOL | C++ | MS Access | VBNet | VB | Python | โค้ดดี
File : filemanagerphp.txt. ID : 9108
Skin : Default | Sons-of-obsidian | Sunburst | Highlighter | Full
<?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; } ?>
จำนวน : 1186 บรรทัด
าษาเฮชทีเอ็มแอล (HTML = HyperText Markup Language) คือ ภาษาคอมพิวเตอร์ที่ออกแบบมาเพื่อใช้ในการสร้างเว็บเพจที่เรียกดูผ่านทางเว็บเบราว์เซอร์ (Web Browser) เริ่มพัฒนาโดย ทิม เบอร์เนอรส์ ลี (Tim Berners Lee) ในปัจจุบัน HTML ล่าสุดคือ รุ่น 5 เป็นมาตรฐานหนึ่งของ ISO ซึ่งจัดการโดย World Wide Web Consortium (W3C) ในปัจจุบัน ทาง W3C ผลักดัน รูปแบบของ HTML แบบใหม่ ที่เรียกว่า XHTML รุ่นแรกคือ 1.0 (ม.ค.2543) ซึ่งมีโครงสร้างเป็นแบบ XML (eXtensible Markup Language)
าษาพีเอชพี (PHP Language) คือ ภาษาคอมพิวเตอร์ประเภทโอเพนท์ซอร์ท (Open Source Computer Language) สำหรับพัฒนาเว็บเพจแบบไดนามิก เมื่อเครื่องบริการได้รับคำร้องจากผู้ใช้ก็จะส่งให้กับ ตัวแปลภาษา ทำหน้าที่ประมวลผลและส่งข้อมูลกลับไปยังเครื่องของผู้ใช้ที่ร้องขอ ในรูปเอชทีเอ็มแอล ภาพ หรือแฟ้มดิจิทอลอื่นใด ลักษณะของภาษามีรากฐานคำสั่งมาจากภาษาซี เป็นภาษาที่สามารถพัฒนาให้ใช้งานแบบโต้ตอบกับผู้ใช้ได้
าษาไพทอน (Python Language) คือ ภาษาคอมพิวเตอร์ประเภทโอเพนท์ซอร์ท (Open Source Computer Language) สำหรับพัฒนาแอพพลิเคชั่นโดยไม่ยึดติดกับแพลตฟอร์ม (Platform) และใช้ในงานได้หลายประเภท ทั้งใช้ในการประมวลผลผ่านคอมมานด์ไลน์ หรือเป็นเว็บเพจแบบไดนามิก เมื่อเครื่องบริการได้รับคำร้องจากผู้ใช้ก็จะส่งให้โค้ดให้กับตัวแปลภาษา เพื่อทำหน้าที่ประมวลผลและส่งข้อมูลกลับไปยังเครื่องของผู้ใช้ที่ร้องขอ ในรูปข้อความ เอชทีเอ็มแอล ภาพ หรือแฟ้มดิจิทอลอื่นใด ลักษณะของภาษามีรากฐานคำสั่งมาจากภาษาซี เป็นภาษาที่สามารถพัฒนาให้ใช้งานแบบโต้ตอบกับผู้ใช้ได้ จุดที่แตกต่างกับภาษาอื่น คือ การรวบรวมจุดเด่นของแต่ละภาษามารวมเข้าด้วยกัน
อสคิวแอล (SQL = Structured Query Language) คือ ภาษาสอบถามข้อมูล หรือภาษาจัดการข้อมูลอย่างมีโครงสร้าง มีการพัฒนาภาษาคอมพิวเตอร์ และโปรแกรมฐานข้อมูลที่รองรับมากมาย เพราะจัดการข้อมูลได้ง่าย เช่น MySQL, MariaDB, MsSQL, PostgreSQL หรือ MS Access เป็นต้น สำหรับโปรแกรมฐานข้อมูลที่ได้รับความนิยมคือ MySQL หรือ MariaDB เป็น Open Source ที่ใช้งานได้ทั้งใน Linux และ Windows
วัสดีชาวโลก (Hello World) คือ ผลลัพธ์ครั้งแรกที่นักพัฒนาโปรแกรมนิยมเลือกใช้แสดงผลในโปรแกรมแรกที่เขียนขึ้นเพื่อทดสอบการทำงาน ข้อความนี้ทำให้นึกถึงมนุษย์ต่างดาวที่มาเยือนโลกและกล่าวกับมนุษย์เมื่อพบกันครั้งแรกในภาพยนตร์
ตัวอย่าง Hello World
ปรับปรุงโปรแกรม source.pl : 2565-07-24
Thaiall.com