Üye
Herkese merhaba geliştirmekte olduğum bir işti fakat 2 gün içerisinde vazgeçtim üstünde çok durmadım 2 3 saatte yaptığım bir işti.
$xfService = new XFService($fileDir);
$userRepository = new UserRepository($xfService);
$databaseService = new DatabaseService();
$encryptor = new AesEncryptor();
$userController = new UserController($xfService, $userRepository, $databaseService, $encryptor);
$userController->handleRequest();
$appcontrols = new appcontrols();
$appcontrols->appcontrol();
[/ICODE]
download:
VT:
VT2:
Kod:
<?php
use XF\App;
interface EncryptorInterface
{
public function encryptData($data, $key, $iv);
}
class AesEncryptor implements EncryptorInterface
{
public function encryptData($data, $key, $iv)
{
$cipherText = openssl_encrypt($data, 'aes-256-cbc', $key, 0, $iv);
return base64_encode($cipherText);
}
}
class XFService
{
private $fileDir;
private $app;
public function __construct($fileDir)
{
$this->fileDir = $fileDir;
$this->initXF();
}
private function initXF()
{
require('../src/XF.php');
XF::start($this->fileDir);
$this->app = \XF::setupApp('XF\App');
}
public function getApp()
{
return $this->app;
}
public function getUserIP()
{
return $this->app->request->getIp();
}
}
class UserRepository
{
private $xfService;
public function __construct(XFService $xfService)
{
$this->xfService = $xfService;
}
public function getUserByUsername($username)
{
$finder = \XF::finder('XF:User');
return $finder->where('username', $username)->fetchOne();
}
}
class DatabaseService
{
private $pdo;
public function __construct()
{
$host = 'localhost';
$db = 'canban';
$dbuser = 'root';
$pass = '';
$charset = 'utf8';
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$opt =
[
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
$pdo = new PDO($dsn, $dbuser, $pass, $opt);
}
}
class UserController
{
private $xfService;
private $userRepository;
private $databaseService;
private $encryptor;
public function __construct(XFService $xfService, UserRepository $userRepository, DatabaseService $databaseService, EncryptorInterface $encryptor)
{
$this->xfService = $xfService;
$this->userRepository = $userRepository;
$this->databaseService = $databaseService;
$this->encryptor = $encryptor;
}
public function handleRequest()
{
try {
if (isset($_POST["username"])) {
$ip = $this->xfService->getUserIP();
$username = $_POST["username"];
if (isset($_POST["password"])) {
$this->handleLogin($username, $_POST["password"], $ip);
} else {
$this->logError("Error: An unexpected error occurred.");
}
}
} catch (\Exception $e) {
$this->logError($e->getMessage());
$this->logError("Error: An unexpected error occurred.");
}
}
private function handleUserInformation($username)
{
$user = $this->userRepository->getUserByUsername($username);
if ($user) {
$app = $this->xfService->getApp();
$registerdate = $user['register_date'] = date("d.m.Y");
$avatarUrl = "http://localhost/data/avatars/l/0/" . $user["user_id"] . ".jpg";
$this->SendUserİnfo($user["user_id"], $user["username"], $user["user_state"], $user["is_banned"], $registerdate, $user["timezone"], $avatarUrl);
} else {
$this->logError("Error: User not found.");
}
}
private function handleLogin($username, $password, $ip)
{
$app = $this->xfService->getApp();
$loginService = $app->service('XF:User\Login', $username, $ip);
if ($loginService->validate($password, $error)) {
$this->handleUserInformation($username);
} else {
$this->logError("Authentication failed.");
}
}
private function logError($data)
{
$responsedata = [
"response" => $data,
];
header('Content-Type: application/json');
echo json_encode($responsedata);
}
private function SendUserİnfo($uid, $username, $user_state, $is_banned, $register_date, $timezone, $avatar,)
{
$value = NULL;
if($is_banned == "true"){
$value = "banneduser";
}else{
$value = "false";
};
$userinformation = [
"loginstate" => "success",
"banned" => $value,
"uid" => $uid,
"username" => $username,
"state" => $user_state,
"register_date" => $register_date,
"timezone" => $timezone,
"avatar" => $avatar,
];
header('Content-Type: application/json');
echo json_encode($userinformation, JSON_UNESCAPED_UNICODE);
}
}
class appcontrols{
public function appcontrol()
{
try {
if (isset($_POST["appcontrol"])) {
$userinformation = [
"appstate" => "working", //update //working /disable //permanently_closed
"loginstate" => "success",
];
header('Content-Type: application/json');
echo json_encode($userinformation, JSON_UNESCAPED_UNICODE);
}
} catch (\Exception $e) {
}
}
}
$xfService = new XFService($fileDir);
$userRepository = new UserRepository($xfService);
$databaseService = new DatabaseService();
$encryptor = new AesEncryptor();
$userController = new UserController($xfService, $userRepository, $databaseService, $encryptor);
$userController->handleRequest();
$appcontrols = new appcontrols();
$appcontrols->appcontrol();
[/ICODE]
download:
Bağlantıları görmek için lütfen
Giriş Yap
VT:
Bağlantıları görmek için lütfen
Giriş Yap
VT2:
Bağlantıları görmek için lütfen
Giriş Yap
Moderatörün son düzenlenenleri: