/
kkkuceravin
/
Homework_PHP
Обзор
Документация
Войти
/
kkkuceravin
/
Homework_PHP
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
includes/functions.php
132 строки
4 KB
kuceravink
final commit
01 дек 2025, 17:43
01 дек 2025, 17:43
c1ce758
Код
Авторство
О чём код?
<?php require_once 'config/database.php'; // Функции для работы с заметками // Создание заметки function createNote($userId, $title, $content, $isPublic = false) { $pdo = getDB(); $stmt = $pdo->prepare("INSERT INTO notes (user_id, title, content, is_public) VALUES (?, ?, ?, ?)"); return $stmt->execute([$userId, $title, $content, $isPublic]); } // Получение всех заметок пользователя function getUserNotes($userId) { $pdo = getDB(); $stmt = $pdo->prepare("SELECT * FROM notes WHERE user_id = ? ORDER BY updated_at DESC"); $stmt->execute([$userId]); return $stmt->fetchAll(PDO::FETCH_ASSOC); } // Получение публичных заметок function getPublicNotes() { $pdo = getDB(); $stmt = $pdo->prepare("SELECT n.*, u.username FROM notes n JOIN users u ON n.user_id = u.id WHERE n.is_public = TRUE ORDER BY n.updated_at DESC"); $stmt->execute(); return $stmt->fetchAll(PDO::FETCH_ASSOC); } // Получение заметки по ID function getNoteById($noteId) { $pdo = getDB(); $stmt = $pdo->prepare("SELECT * FROM notes WHERE id = ?"); $stmt->execute([$noteId]); return $stmt->fetch(PDO::FETCH_ASSOC); } // Проверка принадлежности заметки пользователю function isNoteOwner($noteId, $userId) { $pdo = getDB(); $stmt = $pdo->prepare("SELECT id FROM notes WHERE id = ? AND user_id = ?"); $stmt->execute([$noteId, $userId]); return (bool)$stmt->fetch(); } // Обновление заметки function updateNote($noteId, $title, $content, $isPublic) { $pdo = getDB(); $stmt = $pdo->prepare("UPDATE notes SET title = ?, content = ?, is_public = ?, updated_at = CURRENT_TIMESTAMP WHERE id = ?"); return $stmt->execute([$title, $content, $isPublic, $noteId]); } // Удаление заметки function deleteNote($noteId) { $pdo = getDB(); $stmt = $pdo->prepare("DELETE FROM notes WHERE id = ?"); return $stmt->execute([$noteId]); } // Получение статистики пользователя function getUserStats($userId) { $pdo = getDB(); $stmt = $pdo->prepare("SELECT COUNT(*) as total_notes, SUM(is_public) as public_notes FROM notes WHERE user_id = ?"); $stmt->execute([$userId]); return $stmt->fetch(PDO::FETCH_ASSOC); } // Функции для работы с пользователями // Регистрация пользователя function registerUser($username, $email, $password) { $pdo = getDB(); // Проверка существования пользователя $stmt = $pdo->prepare("SELECT id FROM users WHERE username = ? OR email = ?"); $stmt->execute([$username, $email]); if ($stmt->fetch()) { return false; // Пользователь уже существует } // Создание нового пользователя $hashedPassword = password_hash($password, PASSWORD_DEFAULT); $stmt = $pdo->prepare("INSERT INTO users (username, email, password) VALUES (?, ?, ?)"); return $stmt->execute([$username, $email, $hashedPassword]); } // Аутентификация пользователя function loginUser($username, $password) { $pdo = getDB(); $stmt = $pdo->prepare("SELECT * FROM users WHERE username = ? OR email = ?"); $stmt->execute([$username, $username]); $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']; return true; } return false; } // Получение текущего пользователя function getCurrentUser() { if (isset($_SESSION['user_id'])) { $pdo = getDB(); $stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?"); $stmt->execute([$_SESSION['user_id']]); return $stmt->fetch(PDO::FETCH_ASSOC); } return null; } // Проверка авторизации function isLoggedIn() { return isset($_SESSION['user_id']); } // Выход из системы function logout() { session_destroy(); header('Location: index.php'); exit; } ?>