<?php
define("BASEPATH", "FUCK YOURSELF");
if (!empty($_SERVER["HTTPS"])) {
$base_url = "https://" . $_SERVER["HTTP_HOST"] . dirname($_SERVER["PHP_SELF"]);
} else {
$base_url = "http://" . $_SERVER["HTTP_HOST"] . dirname($_SERVER["PHP_SELF"]);
}
$base_url = str_replace("/kurulum", "", $base_url);
SPisKing::init();
class SPisKing
{
public static $applicationpath = "application";
public static $mesaj = array("mesaj" => "Hiçbir işlem yapılamadı", "hata" => true);
public static function init()
{
if (is_dir("../" . self::$applicationpath)) {
if (($_temp = realpath("../" . self::$applicationpath)) !== false) {
self::$applicationpath = $_temp;
} else {
self::$applicationpath = strtr(rtrim(self::$applicationpath, "/\\"), "/\\", DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR);
}
self::db_connection();
if ($_POST) {
self::install();
} else {
self::setup();
}
} else {
header("HTTP/1.1 503 Service Unavailable.", true, 503);
echo "Your application folder path does not appear to be set correctly. Please open the following file and correct this: index.php";
exit(3);
}
}
public static function yansit($message = NULL, $hata = NULL)
{
if (!is_null($message)) {
self::$mesaj["mesaj"] = $message;
}
if (is_bool($hata)) {
self::$mesaj["hata"] = $hata;
}
echo json_encode(self::$mesaj, JSON_UNESCAPED_UNICODE);
}
public static function secret_key()
{
$clearUrl = rtrim(str_replace(array("http://", "https://", "www."), array("", "", ""), base_url()), "/");
$hash = hash("sha1", md5(base64_decode($clearUrl)) . "sacredpamir");
return $hash;
}
public static function install()
{
if (strlen($_POST["f1-password"]) == 0) {
return self::yansit("Yönetici şifresini boş bırakamazsınız.");
}
if ($_POST["f1-password"] !== $_POST["f1-repeat-password"]) {
return self::yansit("Yönetici şifreleri birbirini tutmuyor.");
}
if (strlen($_POST["host-name"]) == 0) {
return self::yansit("Host Adını boş bırakamazsınız.");
}
if (strlen($_POST["host-db"]) == 0) {
return self::yansit("Database Adını boş bırakamazsınız.");
}
if (strlen($_POST["host-user-name"]) == 0) {
return self::yansit("Host Kullanıcı Adını boş bırakamazsınız.");
}
if (strlen($_POST["f1-kadi"]) == 0) {
return self::yansit("Yönetici Kullanıcı adını boş bırakamazsınız.");
}
if (strlen($_POST["f1-name"]) == 0) {
return self::yansit("Yönetici Adını boş bırakamazsınız.");
}
if (strlen($_POST["f1-secret-key"]) == 0) {
return self::yansit("Gizli anahtarı boş bırakamazsınız.");
}
$secret_key = self::secret_key();
if ($secret_key !== $_POST["f1-secret-key"]) {
return self::yansit("Gizli anahtarınız doğru değil. Lütfen satın aldığınız yerle iletişime geçiniz.");
}
try {
$dbh = new pdo("mysql:host=" . $_POST["host-name"] . ";dbname=" . $_POST["host-db"], $_POST["host-user-name"], $_POST["host-user-password"], array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
} catch (PDOException $ex) {
exit(json_encode(array("mesaj" => "Database Bağlantısı Sağlanamadı", "hata" => true)));
}
if (!file_exists(self::$applicationpath . "/sql/setup.sql")) {
return self::yansit("setup.sql bulunamadı!!");
}
if (!file_exists(self::$applicationpath . "/sql/primary.sql")) {
return self::yansit("primary.sql bulunamadı!!");
}
$query = file_get_contents(self::$applicationpath . "/sql/setup.sql");
$primary = file_get_contents(self::$applicationpath . "/sql/primary.sql");
$sqls = explode("--------------------------------------------------------", $query);
array_pop($sqls);
foreach ($sqls as $statement) {
$statment = $statement . "--------------------------------------------------------";
try {
$qr = $dbh->exec($statment);
} catch (Exception $e) {
exit(json_encode(array("mesaj" => "Hata : " . $e->getMessage(), "hata" => true)));
}
usleep(2000);
}
$sqls = explode(";", $primary);
array_pop($sqls);
foreach ($sqls as $statement) {
$statment = $statement . ";";
try {
$qr = $dbh->exec($statment);
} catch (Exception $e) {
exit(json_encode(array("mesaj" => "Hata : " . $e->getMessage(), "hata" => true)));
}
usleep(2000);
}
$dbh->exec("UPDATE genel_ayarlar SET urunsayfalama = 15");
$dbh->exec("UPDATE genel_ayarlar SET secretkey = '" . $_POST["f1-secret-key"] . "'");
$insert = $dbh->prepare("INSERT INTO `admin`(`kadi`, `adi`, `sifre`, `yetki`, `ip`, `created_at`, `updated_at`)\r\n\t\t\tVALUES (:kadi,:adi,:sifre,:yetki,:ip,:created_at,:updated_at)");
$insert->execute(array("kadi" => $_POST["f1-kadi"], "adi" => $_POST["f1-name"], "sifre" => md5($_POST["f1-password"]), "yetki" => 0, "ip" => "..", "created_at" => date("Y-m-d H:i:s"), "updated_at" => date("Y-m-d H:i:s")));
$insert_2 = $dbh->prepare("INSERT INTO `uye_gruplari`(`adi`, `varsayilan`, `fiyattur`, `created_at`)\r\n\t\t\tVALUES (:adi,:varsayilan,:fiyattur,:created_at)");
$insert_2->execute(array("adi" => "Standart Üye", "varsayilan" => 1, "fiyattur" => 0, "created_at" => date("Y-m-d H:i:s")));
$yazilacak = "<?php\r\ndefined(\"BASEPATH\") OR exit(\"No direct script access allowed\");\r\n\r\n\$active_group = \"default\";\r\n\$query_builder = TRUE;\r\n\r\n\$db[\"default\"] = array(\r\n \"dsn\" => \"mysql:host=" . $_POST["host-name"] . ";dbname=" . $_POST["host-db"] . "\",\r\n \"hostname\" => \"" . $_POST["host-name"] . "\",\r\n \"username\" => \"" . $_POST["host-user-name"] . "\",\r\n \"password\" => \"" . $_POST["host-user-password"] . "\",\r\n \"database\" => \"" . $_POST["host-db"] . "\",\r\n \"dbdriver\" => \"pdo\",\r\n \"dbprefix\" => \"\",\r\n \"pconnect\" => FALSE,\r\n \"db_debug\" => FALSE,\r\n \"cache_on\" => FALSE,\r\n \"cachedir\" => \"\",\r\n \"char_set\" => \"utf8\",\r\n \"dbcollat\" => \"utf8_general_ci\",\r\n \"swap_pre\" => \"\",\r\n \"encrypt\" => FALSE,\r\n \"compress\" => FALSE,\r\n \"stricton\" => FALSE,\r\n \"failover\" => array(),\r\n \"save_queries\" => TRUE\r\n); \r\n";
$dt = fopen(self::$applicationpath . "/config/database.php", "w");
fwrite($dt, $yazilacak);
fclose($dt);
self::$mesaj["yonlendir"] = base_url("yonetici");
self::yansit("Kurulum başarılı bir şekilde yapıldı. Kurulum Klasöründeki Kurulum.php'li silmeyi unutmayın !!!", false);
}
public static function setup()
{
require_once self::$applicationpath . "/views/setup/main.php";
}
public static function db_connection()
{
global $base_url;
require_once self::$applicationpath . "/config/database.php";
try {
$dbh = new pdo("mysql:host=" . $db["default"]["hostname"] . ";dbname=" . $db["default"]["database"], $db["default"]["username"], $db["default"]["password"], array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
} catch (PDOException $ex) {
return true;
}
exit(header("Location: " . $base_url));
}
}
function base_url($path = NULL)
{
global $base_url;
return $base_url . "/" . $path;
}
?>