Создание личного кабинета для вашего сайта SAMP позволяет игрокам регистрироваться, авторизовываться и управлять своими данными. Это повышает удобство использования сайта и добавляет дополнительные функции, такие как статистика игроков, управление профилем и многое другое. В этой статье мы рассмотрим, как настроить личный кабинет на вашем сайте SAMP с использованием PHP и MySQL.
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
в корневую папку вашего сайта.register.php
в браузере и зарегистрируйте нового пользователя.login.php
и авторизуйтесь с использованием данных зарегистрированного пользователя.profile.php
, где будет отображаться информация о пользователе.
Всего комментариев: 30