if (!$conn) { echo "Koneksi Gagal!
    "; die(print_r(sqlsrv_errors(), true)); } // 2. Inisialisasi variabel input $errors = []; $user_id = $_POST['reg_username'] ?? ''; $passwd = $_POST['reg_password'] ?? ''; $passwd2 = $_POST['reg_password2'] ?? ''; $email = $_POST['reg_email'] ?? ''; $hint = $_POST['reg_hint'] ?? ''; if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['reg_submit'])) { // Validasi input if (!$user_id || !$passwd || !$passwd2 || !$email || !$hint) { $errors[] = "Semua kolom wajib diisi. 所有必填栏都必须填写。"; } if (strlen($user_id) < 6 || strlen($user_id) > 16) { $errors[] = "User ID harus antara 6-16 karakter. 用户ID必须是6到16个字符。"; } if ($passwd !== $passwd2) { $errors[] = "Password dan konfirmasi password tidak sama. 密码和确认密码不匹配。"; } if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $errors[] = "Email tidak valid. 邮箱无效。"; } if (empty($errors)) { // 3. Cek apakah user_id sudah ada // Menggunakan database [MEMBER] sesuai logika awal Anda $sql_check = "SELECT COUNT(*) AS count FROM [MEMBER].dbo.GM_MEMBER WHERE user_id = ?"; $params_check = array($user_id); $stmt_check = sqlsrv_query($conn, $sql_check, $params_check); if ($stmt_check === false) { die(print_r(sqlsrv_errors(), true)); } $row = sqlsrv_fetch_array($stmt_check, SQLSRV_FETCH_ASSOC); if ($row['count'] > 0) { $errors[] = "User ID sudah digunakan. 用户ID已被占用。"; } sqlsrv_free_stmt($stmt_check); } if (empty($errors)) { $reg_ip = $_SERVER['REMOTE_ADDR'] ?? ''; $site_code = 'LUMINARY'; $pwdmd5 = md5($passwd); // 4. Eksekusi Stored Procedure GM_MEMBER_INS // Sintaks {CALL ...} adalah cara standar sqlsrv untuk memanggil SP $exec_query = "{CALL [MEMBER].dbo.GM_MEMBER_INS(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)}"; $params_ins = [ array($user_id, SQLSRV_PARAM_IN), array($passwd, SQLSRV_PARAM_IN), array($email, SQLSRV_PARAM_IN), array('', SQLSRV_PARAM_IN), // f_name array('', SQLSRV_PARAM_IN), // l_name array('1', SQLSRV_PARAM_IN), // mail_recv_yn array('', SQLSRV_PARAM_IN), // user_gender array('', SQLSRV_PARAM_IN), // user_birthday array('', SQLSRV_PARAM_IN), // country array('', SQLSRV_PARAM_IN), // street1 array('', SQLSRV_PARAM_IN), // street2 array('', SQLSRV_PARAM_IN), // city array('', SQLSRV_PARAM_IN), // stateorprovince array('', SQLSRV_PARAM_IN), // zipcode array($reg_ip, SQLSRV_PARAM_IN), array($site_code, SQLSRV_PARAM_IN) ]; $res = sqlsrv_query($conn, $exec_query, $params_ins); if ($res) { // 5. Update Hint dan MD5 (Karena SP bawaan Atlantica biasanya tidak memasukkan Hint) $update_query = "UPDATE [MEMBER].dbo.GM_MEMBER SET Hint = ?, pwdmd5 = ? WHERE user_id = ?"; $params_upd = array($hint, $pwdmd5, $user_id); sqlsrv_query($conn, $update_query, $params_upd); echo ""; exit; } else { $errors[] = "Registrasi gagal 注册失败: " . print_r(sqlsrv_errors(), true); } } } ?> Registrasi Akun注册账户

    Register Account
    注册账户