403Webshell
Server IP : 43.241.58.20  /  Your IP : 216.73.216.25
Web Server : Apache/2
System : Linux ns1-1556229.dragonhispeed.com 3.16.0 #1 SMP Fri Mar 29 22:50:14 MSK 2024 x86_64
User : ratsitne ( 1130)
PHP Version : 5.6.40
Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/ratsitne/domains/tessabalpatiu.go.th/public_html/rehelp/inc/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/ratsitne/domains/tessabalpatiu.go.th/public_html/rehelp/inc/main.inc.php
<?php
/*
ไฟล์ template หลักของทุกหน้า ซึ่งอาจจะ require template รองอีกที
จากตัวแปร $PAGE_TEMPLATE ที่ต้องกำหนดไว้ก่อนเรียกใช้ไฟล์นี้
และจะใช้ Alternative syntax for control structures ใน template
(ดู http://php.net/manual/en/control-structures.alternative-syntax.php)
เช่น
if (1 > 2) {
  ...
}
จะเป็น
if (1 > 2):
  ...
endif;
และในตัวอย่างนี้ จะยังไม่ใช้ JavaScript ใดใดทั้งสิ้น
*/

/*
ฟังก์ชั่นตัวช่วยแปลง unix timestamp หรือ SQL DATETIME ให้เป็นวันที่ภาษาไทยแบบย่อ
เช่น '2014-12-01 04:14:00' จะกลายเป็น '1 ธ.ค. 57 04:14'
*/
function thai_datetime($timestamp)
{
  static $thaiMonthAbbrs = array(
    'ม.ค.', 'ก.พ.', 'มี.ค.', 'เม.ย.', 'พ.ค.', 'มิ.ย.',
    'ก.ค.', 'ส.ค.', 'ก.ย.', 'ต.ค.', 'พ.ย.', 'ธ.ค.',
  );
  /*
  หาก $timestamp ไม่ใช่ตัวเลข
  */
  if (!is_numeric($timestamp)) {
    /*
    ให้ใช้ฟังก์ชั่น strtotime() แปลง $timestamp ให้เป็น unix timestamp
    */
    $timestamp = strtotime($timestamp);
  }
  /*
  และใช้ฟังก์ชั่น getdate() ดึงข้อมูล array เกี่ยวกับ timestamp นั้นๆ
  เช่น วันที่, เดือน, ปี, ชั่วโมง, นาที, วินาที ฯลฯ
  */
  $info = getdate($timestamp);
  /*
  เราใช้ฟังก์ชั่น sprintf() เพื่อทำการจัดรูปแบบข้อความ
  โดย argument แรกจะเป็น 'รูปแบบ' และ argument ที่เหลือจะเป็นค่าที่จะส่งไปแทนที่ใน 'รูปแบบ'
  ซึ่งรูปแบบที่จะเป็น ตัวแทนที่ นั้น จะเริ่มต้นด้วย % ตามด้วยตัวอักษร s, d หรืออื่นๆ (ดู PHP Manual)
  */
  return sprintf(
    /*
    %d คือให้แทนที่ค่าที่ส่งมา ในรูปแบบตัวเลขจำนวนเต็ม
    %s คือให้แทนที่ค่าที่ส่งมา ในรูปแบบ string หากค่านั้นไม่ใช่ string ก็จะทำการแปลงให้เป็น string
    %02d คือให้แทนที่ค่าที่ส่งมา ในรูปแบบตัวเลขจำนวนเต็ม และเติม 0 เข้าไปข้างหน้าสูงสุด 2 ตัว
    เช่น ค่าที่ส่งมาคือ 1 ก็จะกลายเป็น 01
    */
    '%d %s %d %02d:%02d',
    /*
    $info['mday'] จะเป็นตัวเลขวันที่ 1 - 31
    ค่าจะไปแทนที่ %d ตัวแรก
    */
    $info['mday'],
    /*
    $info['mon'] จะเป็นตัวเลขเดือน 1 - 12
    ซึ่งเราจะเอาไปใช้เป็น key ในการเลือกค่าจากตัวแปร $thaiMonthAbbrs
    ซึ่ง $thaiMonthAbbrs นั้นมี key เริ่มที่ 0 เราจึงต้องลบ $info['mon'] ด้วย 1 เสียก่อน
    ค่านี้จะไปแทนที่ %s
    */
    $thaiMonthAbbrs[$info['mon'] - 1], 
    /*
    แปลง $info['year'] ให้เป็น พ.ศ. โดย + ด้วย 543
    และใช้ substr() ตัดเฉพาะตัวเลข 2 หลักสุดท้ายของ พ.ศ. ออกมา
    ค่าจะไปแทนที่ %d ตัวที่สอง
    */
    substr($info['year'] + 543, -2),
    /*
    เลขชั่วโมง
    ค่านี้จะไปแทนที่ %02d ตัวแรก
    */
    $info['hours'],
    /*
    เลขนาที
    ค่านี้จะไปแทนที่ %02d ตัวที่สอง
    */
    $info['minutes']
  );
}

/*
ฟังก์ชั่นตัวช่วยแปลง unix timestamp หรือ SQL DATETIME ให้เป็นช่วงห่างของเวลาภาษาไทย
เช่น 15 นาทีที่แล้ว
และหากช่วงห่างเกินจำนวนวันที่กำหนดไว้ใน $daysBeforeFullDate ก็จะแสดงวันที่เต็ม
โดยเรียกใช้ thai_datetime() อีกทอดหนึ่ง
*/
function thai_time($timestamp, $daysBeforeFullDate = 3)
{
  /*
  หาก $timestamp ไม่ใช่ตัวเลข
  */
  if (!is_numeric($timestamp)) {
    /*
    ให้ใช้ฟังก์ชั่น strtotime() แปลง $timestamp ให้เป็น unix timestamp
    */
    $timestamp = strtotime($timestamp);
  }
  /*
    เราจะหาค่าช่วงห่างของเวลาปัจจุบันกับ $timestamp
    โดยเวลาปัจจุบันนั้นหาได้จากฟังก์ชั่น time()
  */
    $diff = time() - $timestamp;
  /*
    หากความต่างของเวลาปัจจุบันกับ $timestamp น้อยกว่า 10 วินาที
  */
    if (!$diff) {
        return 'ไม่กี่วินาทีที่แล้ว';
    }
    /*
  หากความต่างของเวลาปัจจุบันกับ $timestamp น้อยกว่า 1 นาที
  */
    if ($diff < 60) {
        return $diff . ' วินาทีที่แล้ว';
    }
  /*
    หากความต่างของเวลาปัจจุบันกับ $timestamp น้อยกว่า 1 ชั่วโมง
  */
    if ($diff < 3600) {
        return (int)($diff / 60) . ' นาทีที่แล้ว';
    }
    /*
  หากความต่างของเวลาปัจจุบันกับ $timestamp น้อยกว่า 1 วัน
  */
    if ($diff < 86400) {
        return (int)($diff / 3600) . ' ชั่วโมงที่แล้ว';
    }
    /*
  หากความต่างของเวลาปัจจุบันกับ $timestamp น้อยกว่าจำนวนวันที่กำหนดไว้
    ในตัวแปร $daysBeforeFullDate ที่เราจะใช้เป็นตัวบอกว่า
    ควรจะแสดงวันที่เต็มเมื่อช่วงห่างเกินกี่วัน
  */
    if ($diff < 86400 * $daysBeforeFullDate) {
        return (int)($diff / 86400) . ' วันที่แล้ว';
    }
    /*
  หากช่วงห่างไม่อยู่ในเงื่อนไขข้างต้นเลย ให้แสดงวันที่เต็ม
  */
  return thai_datetime($timestamp);
}

/*
หากมีการเชื่อมต่อฐานข้อมูล ให้ทำการตัดการเชื่อมต่อเสีย
*/
if (isset($mysqli)) {
  /*
  ใช้ @ operator ด้วย เพื่อป้องกัน PHP Warning หากก่อนหน้านี้ทำการเชื่อมต่อฐานข้อมูลไม่สำเร็จ
  */
  @$mysqli->close();
}
/*
กำหนดค่า default ให้กับตัวแปร $HIGHLIGHT_ID
ซึ่งจะถูกใช้ในไฟล์ inc/index.inc.php (และอื่นๆ ในอนาคต)
*/
$HIGHLIGHT_ID = isset($_GET['highlight_id'])
  ? $_GET['highlight_id']
  : null;
/*
กำหนดค่า default ให้กับตัวแปร $TITLE หากไม่ได้กำหนดไว้ก่อนหน้านี้
*/
if (!isset($TITLE)) {
  $TITLE = 'กระดานถามตอบ';
}
/*
กำหนดตัวแปร $PARENT_FILENAME ให้เป็นชื่อไฟล์ที่ผู้ใช้เรียก
โดยตรวจจาก $_SERVER['SCRIPT_FILENAME'] ซึ่งจะมีค่าเป็นชื่อไฟล์ PHP ที่ผู้ใช้เรียก
เช่น C:\xampp\htdocs\workshop-webboard\index.php
แต่เนื่องจากเราต้องการเพียงส่วนท้ายสุด คือ index.php เราจึงใช้ฟังก์ชั่น pathinfo()
ดึงข้อมูลส่วนนี้ออกมา ซึ่งปกติ pathinfo() จะคืนค่าออกมาเป็น array รายละเอียดของชื่อไฟล์
แต่ถ้าเรากำหนด argument ตัวที่สอง ก็จะดึงเฉพาะส่วนออกมาได้
ซึ่ง PATHINFO_BASENAME หมายถึง ให้เอาเฉพาะชื่อไฟล์และนามสกุลมา
*/
$PARENT_FILENAME = pathinfo($_SERVER['SCRIPT_FILENAME'], PATHINFO_BASENAME);
?>
<!DOCTYPE html>
<html>
  <head>
    <title><?php
    /*
    ก่อน echo ค่าของตัวแปรใดใดก็ตามที่ไม่แน่ใจว่าค่าของมันจะเป็นอะไรกันแน่ ออกมาเป็นส่วนหนึ่งของ HTML
    และไม่ต้องการให้ค่าเหล่านั้นมีความหมายพิเศษ เช่น เราอยากแสดงผลคำว่า '<div>'
    แต่หากเรา echo มันออกมาตรงๆ browser ก็จะมองว่ามันเป็น tag <div> ไม่ใช่ข้อความ '<div>'
    ดังนั้นเราจึงจำเป็นต้อง escape ตัวอักษรพิเศษ < > & " '
    ที่อาจจะมีอยู่ในค่าของตัวแปรให้เป็น html entity เสียก่อน ด้วยฟังก์ชั่น htmlspecialchars()
    เช่น <div> ก็จะกลายเป็น &lt;div&gt;
    */
    echo htmlspecialchars($TITLE, ENT_QUOTES, 'UTF-8');
    ?></title>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <link rel="shortcut icon" href="inc/logo.ico">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap-theme.min.css">
    <link rel="stylesheet" href="css/workshop-webboard.css">
    <link href='https://fonts.googleapis.com/css?family=Kanit:400,300&subset=thai,latin' rel='stylesheet' type='text/css'>
    <style>
		body {
		  font-family: 'Kanit', sans-serif;
		}
		h1 {
		  font-family: 'Kanit', sans-serif;
		}
    </style>
  </head>
  <body>
    <div class="container">
      <div class="navbar navbar-default1" role="navigation">
        <div class="container-fluid">
          <ul class="nav navbar-nav">
            <li class="<?php
            /*
            ทำการตรวจสอบเมนูอื่นเช่นเดียวกัน
            */
            if ($PARENT_FILENAME === 'index.php') {
              echo 'active';
            }
            ?>">
              <a href="index.php">
                <span class="glyphicon glyphicon-pencil"></span>
                ร้องเรียนทุจริต์
              </a>
            </li>
            <?php
            /*
            สำหรับเมนูนี้ ถ้าไม่ได้อยู่ที่ view.php ก็จะไม่แสดงผลเลย
            */
            if ($PARENT_FILENAME === 'view.php'):
            ?>
            <li class="active">
              <a href="#">
                <span class="glyphicon glyphicon-eye-open"></span>
                <?php
                echo htmlspecialchars($TITLE, ENT_QUOTES, 'UTF-8');
                ?>
              </a>
            </li>
            <?php
            endif;
            ?>
          </ul>
        </div>
      </div>
      <?php
      /*
      หากมีตัวแปร $FATAL_ERROR ถูกกำหนดไว้ก่อนหน้า
      แสดงว่ามี error ที่ทำให้ไม่สามารถแสดงผลข้อมูลหน้านั้นได้อย่างถูกต้อง
      เช่น ไม่สามารถเชื่อมต่อฐานข้อมูลได้ หรือผู้ใช้ส่ง id ของกระทู้ที่ไม่มีอยู่จริงมาให้
      เราก็จะแสดงผลข้อความที่กำหนดไว้ใน $FATAL_ERROR
      */
      if (isset($FATAL_ERROR)):
      ?>
      <div class="alert alert-danger">
        <?php
        echo htmlspecialchars($FATAL_ERROR, ENT_QUOTES, 'UTF-8');
        ?>
      </div>
      <?php
      /*
      นอกนั้นจะ require ไฟล์ที่กำหนดไว้ในตัวแปร $PAGE_TEMPLATE
      ซึ่งจะตรวจสอบด้วย isset() ก่อนว่ามีตัวแปรนี้กำหนดไว้หรือไม่
      ถ้าไม่ได้กำหนด ก็จะไม่ require ไฟล์ใดใด และแสดงหน้าเปล่าๆ ที่มีแค่ส่วน navigation
      */
      elseif (isset($PAGE_TEMPLATE)):
        /*
        และไม่ได้ตรวจสอบว่าไฟล์ตามค่าของ $PAGE_TEMPLATE นั้นมีอยู่จริงหรือไม่
        หากไม่มีอยู่จริงก็จะเกิด PHP fatal error และจบการทำงาน
        เพราะ require เป็นคำสั่งที่ต่างจาก include (ซึ่งไม่ได้ใช้ในตัวอย่างนี้)
        จะจบการทำงานทันทีหากหาไฟล์ที่กำหนดไม่เจอ
        */
        require $PAGE_TEMPLATE;
      endif;
      ?>
    </div>
    <?php
    /*
    ตรวจสอบว่ามี key 'REQUEST_TIME_FLOAT' อยู่ใน array $_SERVER หรือไม่
    ซึ่ง $_SERVER['REQUEST_TIME_FLOAT'] จะเป็นเวลาที่ PHP เริ่มต้นทำงาน
    เป็นหน่วย microsecond (1/1000000 วินาที)
    และมีให้ใช้ตั้งแต่ PHP 5.4 เราจึงต้องตรวจสอบการมีอยู่ของมันก่อนใช้งาน
    หากมีตัวแปรนี้อยู่ เราจะแสดงผลเวลาการทำงานของ request นี้ ว่าใช้เวลาไปเท่าไหร่
    โดยเอาค่าจาก microtime(true) ที่จะ return microsecond ปัจจุบันกลับมา
    ไปลบกับ $_SERVER['REQUEST_TIME_FLOAT'] ก็จะได้เวลาที่ request นี้ใช้
    และจัดรูปแบบให้เป็นทศนิยม 4 ตำแหน่งด้วย number_format()
    การจับเวลาเป็นวิธีหนึ่งที่จะบอกเราได้ว่า เราเขียนโปรแกรมได้อย่างมีประสิทธิภาพหรือไม่ในด้านความเร็ว
    */
    if (isset($_SERVER['REQUEST_TIME_FLOAT'])):
    ?>
    <div class="text-center">
      <span class="label label-info">Time: <?php
      echo number_format(microtime(true) - $_SERVER['REQUEST_TIME_FLOAT'], 4);
      ?>s</span>
    </div>
    <?php
    endif;
    ?>
  </body>
</html>
<?php
/*
จบการทำงานเสมอ
ดังนั้น ณ จุดใดก็ตามที่มีการ require หรือ include ไฟล์นี้ ก็มั่นใจได้ว่าจะจบการทำงานแน่นอน
*/
exit;

Youez - 2016 - github.com/yon3zu
LinuXploit