PHP User: создание удивительных веб-приложений с помощью PHP
Вопрос "php user" не является полным и конкретным, поэтому ответить на него невозможно. Пожалуйста, уточните ваш вопрос.
Если вы хотите узнать про работу с пользователями в PHP, то приложу пример.
Допустим, у вас есть сайт, на котором можно зарегистрироваться и авторизоваться. Для этого нужна база данных, в которой будет храниться информация о пользователях (логин, пароль, email и т.д.).
Создадим таблицу users в базе данных user_db:
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Регистрация пользователя:
if($_SERVER["REQUEST_METHOD"] == "POST") {
// Получение данных из формы
$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];
// Проверка наличия пользователя в базе данных
$query = "SELECT id FROM users WHERE username = :username";
$stmt = $pdo->prepare($query);
$stmt->bindParam(':username', $username);
$stmt->execute();
if($stmt->rowCount() > 0) {
$error = "Пользователь с таким именем уже зарегистрирован";
} else {
// Хеширование пароля
$hash = password_hash($password, PASSWORD_DEFAULT);
// Добавление пользователя в базу данных
$query = "INSERT INTO users (username, email, password) VALUES (:username, :email, :password)";
$stmt = $pdo->prepare($query);
$stmt->bindParam(':username', $username);
$stmt->bindParam(':email', $email);
$stmt->bindParam(':password', $hash);
$stmt->execute();
// Перенаправление на страницу авторизации
header("Location: login.php");
}
}
Авторизация пользователя:
if($_SERVER["REQUEST_METHOD"] == "POST") {
// Получение данных из формы
$username = $_POST['username'];
$password = $_POST['password'];
// Поиск пользователя в базе данных
$query = "SELECT * FROM users WHERE username = :username";
$stmt = $pdo->prepare($query);
$stmt->bindParam(':username', $username);
$stmt->execute();
$user = $stmt->fetch(PDO::FETCH_ASSOC);
// Проверка пароля
if($user && password_verify($password, $user['password'])) {
// Сохранение данных пользователя в сессии
$_SESSION['user_id'] = $user['id'];
$_SESSION['username'] = $user['username'];
$_SESSION['email'] = $user['email'];
// Перенаправление на главную страницу
header("Location: index.php");
} else {
$error = "Неверное имя пользователя или пароль";
}
}
Разлогинивание пользователя:
session_start();
// Удаление данных пользователя из сессии
unset($_SESSION['user_id']);
unset($_SESSION['username']);
unset($_SESSION['email']);
// Перенаправление на главную страницу
header("Location: index.php");
Это лишь примеры, и на практике могут использоваться иные методы работы с пользователями в PHP.