Multi Theft Auto: San Andreas (MTA:SA) Web Paneli Yapma Rehberi
Bu rehber, MTA:SA sunucunuz için oyuncu bilgilerini gösterebileceğiniz, yönetebileceğiniz ve çeşitli özellikler ekleyebileceğiniz bir web paneli oluşturmanın temel adımlarını içermektedir.Gereksinimler
Başlamadan önce aşağıdaki araçlara ve temel bilgilere sahip olmanız gerekmektedir:- Web Sunucusu: Bilgisayarınızda bir web sunucusu ortamı kurmanız gerekiyor. En popüler ve başlangıç için en kolay olanı XAMPP'tır. (Apache, MySQL, PHP içerir).
- MTA MySQL Modülü: MTA sunucunuzun veritabanı ile iletişim kurabilmesi için mta-mysql gibi bir modüle ihtiyacınız olacak.
- Temel Web Programlama Bilgisi:
- HTML: Panelin iskeletini oluşturmak için.
- CSS: Paneli görsel olarak tasarlamak için.
- PHP: Sunucu taraflı işlemleri (veritabanı bağlantısı, kullanıcı girişi vb.) yönetmek için.
- SQL: Veritabanı sorguları yazmak için.
Adım 1: Web Sunucusu Kurulumu (XAMPP)
- XAMPP'ı İndirin ve Kurun: Apache Friends web sitesinden XAMPP'ı indirin ve bilgisayarınıza kurun.
- XAMPP Kontrol Panelini Başlatın: Kurulumdan sonra XAMPP Kontrol Paneli'ni açın.
- Apache ve MySQL'i Başlatın: Apache ve MySQL modüllerinin yanındaki "Start" butonlarına basarak çalışır duruma getirin. Artık bilgisayarınız bir web sunucusu gibi çalışacaktır.
Adım 2: Veritabanı ve Tablo Oluşturma
- phpMyAdmin'e Giriş: Tarayıcınıza http://localhost/phpmyadmin yazarak phpMyAdmin arayüzüne gidin.
- Yeni Veritabanı Oluşturun: Sol menüden "New" (Yeni) butonuna tıklayın. Veritabanı adı olarak örneğin mta_sunucu ismini verin ve "Create" (Oluştur) butonuna basın.
- Oyuncu Tablosu Oluşturun: Oluşturduğunuz veritabanını seçtikten sonra, oyuncu bilgilerini tutmak için bir tablo oluşturalım. Örneğin, accounts isminde ve 4 sütunlu bir tablo oluşturun:
- id (INT, Primary Key, A_I - Otomatik Artan)
- username (VARCHAR, 255)
- password (VARCHAR, 255) - Şifreleri güvenlik için hash'lenmiş olarak saklayacağız.
- money (INT) - Oyuncunun parası gibi ek bir bilgi.
Adım 3: MTA Sunucusunu Veritabanına Bağlama
- MySQL Modülünü Kurun: MTA Community'den mta-mysql modülünü indirin ve MTA sunucunuzun resources klasörüne atın.
- Veritabanı Bağlantı Script'i (Lua): Veritabanı işlemlerini yönetecek bir Lua script'i oluşturun. Bu script, oyuncu kaydolduğunda veya giriş yaptığında veritabanı ile etkileşime girecektir.
Örnek register_login.lua:
-- Veritabanı bağlantı bilgileri
db = mysql_connect("localhost", "root", "", "mta_sunucu")
function registerPlayer(player, command, username, password)
if not db then
outputChatBox("Veritabanı bağlantısı başarısız!", player, 255, 0, 0)
return
end
-- Şifreyi güvenlik için hash'le (MTA'da bcrypt gibi kütüphaneler kullanmanız önerilir)
local hashedPassword = -- hashleme fonksiyonu
mysql_query(db, "INSERT INTO accounts (username, password) VALUES ('" .. username .. "', '" .. hashedPassword .. "')")
outputChatBox(username .. " başarıyla kaydoldun!", player, 0, 255, 0)
end
addCommandHandler("register", registerPlayer)
- Bu script'i ve mta-mysql modülünü sunucunuzun mtaserver.conf dosyasında başlatın.
Adım 4: Web Paneli Dosyalarını Oluşturma
XAMPP'ın kurulum dizininde bulunan htdocs klasörüne gidin. Bu klasör, web sitenizin dosyalarını barındıracağınız yerdir. İçinde mtapanel adında yeni bir klasör oluşturun ve panel dosyalarını bu klasörün içine atın.- Veritabanı Bağlantı Dosyası (db.php):
<?php
$host = "localhost";
$user = "root";
$pass = "";
$dbname = "mta_sunucu";
$conn = new mysqli($host, $user, $pass, $dbname);
if ($conn->connect_error) {
die("Bağlantı başarısız: " . $conn->connect_error);
}
?>
- Giriş Sayfası (index.html veya login.php):
<!DOCTYPE html>
<html>
<head>
<title>MTA Panel Giriş</title>
</head>
<body>
<h2>Panele Giriş Yap</h2>
<form action="login_process.php" method="post">
Kullanıcı Adı: <input type="text" name="username"><br>
Şifre: <input type="password" name="password"><br>
<button type="submit">Giriş Yap</button>
</form>
</body>
</html>
- Giriş İşlemleri (login_process.php):
<?php
session_start();
include 'db.php';
$username = $_POST['username'];
$password = $_POST['password'];
// Güvenlik Notu: Gerçek bir projede SQL Injection'a karşı prepared statements kullanılmalıdır!
// Ayrıca şifreler hash'lenerek karşılaştırılmalıdır. (password_verify)
$sql = "SELECT * FROM accounts WHERE username='$username'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
$row = $result->fetch_assoc();
// Şifre kontrolü (örneğin: if (password_verify($password, $row['password'])))
if ($password == $row['password']) { // Bu satır sadece bir örnektir, GÜVENLİ DEĞİLDİR!
$_SESSION['loggedin'] = true;
$_SESSION['username'] = $username;
header("Location: dashboard.php"); // Başarılı girişte yönlendir
} else {
echo "Yanlış şifre!";
}
} else {
echo "Kullanıcı bulunamadı!";
}
$conn->close();
?>
- Panel Ana Sayfası (dashboard.php):
<?php
session_start();
include 'db.php';
// Eğer kullanıcı giriş yapmamışsa, giriş sayfasına yönlendir
if (!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] !== true) {
header("Location: login.php");
exit;
}
$username = $_SESSION['username'];
$sql = "SELECT * FROM accounts WHERE username='$username'";
$result = $conn->query($sql);
$playerData = $result->fetch_assoc();
?>
<!DOCTYPE html>
<html>
<head>
<title>Panel</title>
</head>
<body>
<h1>Hoş Geldin, <?php echo $playerData['username']; ?>!</h1>
<p>Paran: <?php echo $playerData['money']; ?></p>
<a href="logout.php">Çıkış Yap</a>
</body>
</html>
Sonraki Adımlar ve Güvenlik
- Güvenlik: Bu rehber temel mantığı anlatmaktadır. Gerçek bir projede SQL Injection saldırılarına karşı Prepared Statements kullanmalı ve şifreleri password_hash() ile şifreleyip password_verify() ile doğrulamalısınız.
- Tasarım (CSS): Panelinizi daha güzel göstermek için CSS kullanın. Bootstrap gibi kütüphaneler işinizi kolaylaştırabilir.
- Yeni Özellikler: Oyuncu envanteri, admin komutları, ban listesi gibi birçok özelliği panelinize ekleyebilirsiniz.