;
В этой статье мы рассмотрим, как создать сайт с личным кабинетом и подключить его к вашему серверу SAMP (San Andreas Multiplayer). Мы будем использовать PHP и MySQL для создания сайта и Python для взаимодействия с сервером SAMP.
CREATE TABLE users ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, username VARCHAR(30) NOT NULL, password VARCHAR(255) NOT NULL, email VARCHAR(50), reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP );
register.php
: Этот файл будет отвечать за регистрацию пользователей.<?php $servername = "localhost"; $username = "your_username"; $password = "your_password"; $dbname = "your_database"; // Создаем соединение $conn = new mysqli($servername, $username, $password, $dbname); // Проверяем соединение if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } if ($_SERVER["REQUEST_METHOD"] == "POST") { $username = $_POST['username']; $password = password_hash($_POST['password'], PASSWORD_DEFAULT); $email = $_POST['email']; $sql = "INSERT INTO users (username, password, email) VALUES ('$username', '$password', '$email')"; if ($conn->query($sql) === TRUE) { echo "Registration successful"; } else { echo "Error: " . $sql . "<br>" . $conn->error; } } $conn->close(); ?> <!DOCTYPE html> <html> <head> <title>Register</title> </head> <body> <h2>Register</h2> <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>"> Username: <input type="text" name="username"><br> Password: <input type="password" name="password"><br> Email: <input type="email" name="email"><br> <input type="submit" value="Register"> </form> </body> </html>
login.php
: Этот файл будет отвечать за авторизацию пользователей.<?php session_start(); $servername = "localhost"; $username = "your_username"; $password = "your_password"; $dbname = "your_database"; // Создаем соединение $conn = new mysqli($servername, $username, $password, $dbname); // Проверяем соединение if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } if ($_SERVER["REQUEST_METHOD"] == "POST") { $username = $_POST['username']; $password = $_POST['password']; $sql = "SELECT id, username, password FROM users WHERE username = '$username'"; $result = $conn->query($sql); if ($result->num_rows == 1) { $row = $result->fetch_assoc(); if (password_verify($password, $row['password'])) { $_SESSION['user_id'] = $row['id']; $_SESSION['username'] = $row['username']; header("Location: profile.php"); } else { echo "Invalid password"; } } else { echo "Invalid username"; } } $conn->close(); ?> <!DOCTYPE html> <html> <head> <title>Login</title> </head> <body> <h2>Login</h2> <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>"> Username: <input type="text" name="username"><br> Password: <input type="password" name="password"><br> <input type="submit" value="Login"> </form> </body> </html>
profile.php
: Этот файл будет отображать информацию о пользователе после авторизации.<?php session_start(); if (!isset($_SESSION['user_id'])) { header("Location: login.php"); exit(); } $servername = "localhost"; $username = "your_username"; $password = "your_password"; $dbname = "your_database"; // Создаем соединение $conn = new mysqli($servername, $username, $password, $dbname); // Проверяем соединение if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $user_id = $_SESSION['user_id']; $sql = "SELECT username, email FROM users WHERE id = '$user_id'"; $result = $conn->query($sql); if ($result->num_rows == 1) { $row = $result->fetch_assoc(); $username = $row['username']; $email = $row['email']; } else { echo "Error fetching user data"; } $conn->close(); ?> <!DOCTYPE html> <html> <head> <title>Profile</title> </head> <body> <h2>Profile</h2> <p>Username: <?php echo $username; ?></p> <p>Email: <?php echo $email; ?></p> <a href="logout.php">Logout</a> </body> </html>
logout.php
: Этот файл будет отвечать за выход пользователя из системы.<?php session_start(); session_unset(); session_destroy(); header("Location: login.php"); exit(); ?>
register.php
, login.php
, profile.php
и logout.php
в корневую папку вашего сайта.samp-client
.samp-client
:pip install samp-client
from samp_client.client import SampClient # Параметры сервера SAMP host = '127.0.0.1' # IP-адрес сервера port = 7777 # Порт сервера rcon_password = 'your_rcon_password' # RCON-пароль сервера # Подключение к серверу SAMP with SampClient(address=host, port=port, rcon_password=rcon_password) as client: # Получение информации о сервере server_info = client.get_server_info() print(f"Server info: {server_info}") # Получение списка игроков players = client.get_players() print(f"Players: {players}") # Отправка команды RCON response = client.rcon("echo Hello from Python!") print(f"RCON response: {response}")
server_info.php
, который будет вызывать Python-скрипт и отображать информацию о сервере.<?php $output = shell_exec('python3 /path/to/your/script.py'); echo "<pre>$output</pre>"; ?>
register.php
в браузере и зарегистрируйте нового пользователя.login.php
и авторизуйтесь с использованием данных зарегистрированного пользователя.profile.php
, где будет отображаться информация о пользователе.server_info.php
и убедитесь, что она отображает правильную информацию о сервере SAMP.
Всего комментариев: 30