@Arthur666

Как сделать личную доску заданий?

Есть to-do лист с регистрацией. Нужно сделать так, чтобы у каждого пользователя была своя личная доска заданий. Смог сделать так, чтобы задания с доски записывались в бд, но не знаю как вывести их на страницу.
P.S: Знаю, что лучше работать через PDO, но так проще на данный момент...

Подключение к бд
<?php

    $connect = mysqli_connect('localhost', 'root', '', 'test');

    if (!$connect) {
        die('Error connect to DataBase');
    }


Подключение к Регистрации
<?php

session_start();
require_once 'connect.php';

$full_name = $_POST['full_name'];
$login = $_POST['login'];
$email = $_POST['email'];
$password = $_POST['password'];
$password_confirm = $_POST['password_confirm'];

$check_login = mysqli_query($connect, "SELECT * FROM `users` WHERE `login` = '$login'");
if (mysqli_num_rows($check_login) > 0) {
    $response = [
        "status" => false,
        "type" => 1,
        "message" => "Такой логин уже существует",
        "fields" => ['login']
    ];

    echo json_encode($response);
    die();
}

$error_fields = [];

if ($login === '') {
    $error_fields[] = 'login';
}

if ($password === '') {
    $error_fields[] = 'password';
}

if ($full_name === '') {
    $error_fields[] = 'full_name';
}

if ($email === '' || !filter_var($email, FILTER_VALIDATE_EMAIL)) {
    $error_fields[] = 'email';
}

if ($password_confirm === '') {
    $error_fields[] = 'password_confirm';
}

if (!$_FILES['avatar']) {
    $error_fields[] = 'avatar';
}

if (!empty($error_fields)) {
    $response = [
        "status" => false,
        "type" => 1,
        "message" => "Проверьте правильность полей",
        "fields" => $error_fields
    ];

    echo json_encode($response);

    die();
}

if ($password === $password_confirm) {

    $path = 'uploads/' . time() . $_FILES['avatar']['name'];
    if (!move_uploaded_file($_FILES['avatar']['tmp_name'], '../' . $path)) {
        $response = [
            "status" => false,
            "type" => 2,
            "message" => "Ошибка при загрузке аватарки",
        ];
        echo json_encode($response);
    }

    $password = md5($password);

    mysqli_query($connect, "INSERT INTO `users` (`id`, `full_name`, `login`, `email`, `password`, `avatar`) VALUES (NULL, '$full_name', '$login', '$email', '$password', '$path')");

    $response = [
        "status" => true,
        "message" => "Регистрация прошла успешно!",
    ];
    echo json_encode($response);


} else {
    $response = [
        "status" => false,
        "message" => "Пароли не совпадают",
    ];
    echo json_encode($response);
}

?>


Подключение к авторизации

<?php

session_start();
require_once 'connect.php';

$login = $_POST['login'];
$password = $_POST['password'];

$error_fields = [];

if ($login === '') {
    $error_fields[] = 'login';
}

if ($password === '') {
    $error_fields[] = 'password';
}

if (!empty($error_fields)) {
    $response = [
        "status" => false,
        "type" => 1,
        "message" => "Проверьте правильность полей",
        "fields" => $error_fields
    ];

    echo json_encode($response);

    die();
}

$password = md5($password);

$check_user = mysqli_query($connect, "SELECT * FROM `users` WHERE `login` = '$login' AND `password` = '$password'");
if (mysqli_num_rows($check_user) > 0) {

    $user = mysqli_fetch_assoc($check_user);

    $_SESSION['user'] = [
        "id" => $user['id'],
        "full_name" => $user['full_name'],
        "avatar" => $user['avatar'],
        "email" => $user['email']
    ];

    $response = [
        "status" => true
    ];

    echo json_encode($response);

} else {

    $response = [
        "status" => false,
        "message" => 'Не верный логин или пароль'
    ];

    echo json_encode($response);
}
?>


Сама доска(профиль)
<?php
session_start();
if (!$_SESSION['user']) {
    header('Location: /');
}


?>

<!DOCTYPE html>
<html >
<head>
    <meta charset="UTF-8">
    <title></title>
    <link rel="stylesheet" href="assets/css/mainprof.css">
    <link rel="stylesheet" type="text/css" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
</head>
<body>

    <!-- Профиль -->
    <div class="conteiner">
      
       
        <img src="<?= $_SESSION['user']['avatar'] ?>" width="200" alt="" class="ava">
    
   
        <span class="log"><?= $_SESSION['user']['full_name'] ?></span>
        <div class="menu">
        <a href="#"class="menu-btn">Найти пользователя
        <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="mx-3" role="img" viewBox="0 0 24 24" focusable="false"><title>Поиск</title><circle cx="10.5" cy="10.5" r="7.5"></circle><path d="M21 21l-5.2-5.2"></path></svg></a>
        <a href="#"class="menu-btn">Доступные доски</a>
        <a href="vendor/logout.php" class="logout">Выход</a>
    </div>

    </div>

</div>

Подключение к доске 
<code lang="php">
<?php

session_start();
require_once 'connect.php';

$task = $_GET['task'];
if ($task ==''){
	echo 'Введите текст';
	exit();
}

 mysqli_query($connect, "INSERT INTO `mydata` (`id`, `task`) VALUES (NULL, '$task')");
 header('Location:../profile.php')


?>
</code>

<!--Доска-->
<div class="conteiner2">

    <div class="to-do">
        <form action="vendor/addtodo.php" method="GET">
            <input type="text" name="task" placeholder="Введите текст!">
            <button type="submit"class="dob">Добавить </button>
            
        </form>
        <!--<div class="problem">
                Какой-то текст
            </div>-->

         
 
    </div>
</div>



</body>
</html>


БД таблица user5e9751d573605936289214.png
БД таблица mydata 5e9751e628efc066397304.png
  • Вопрос задан
  • 98 просмотров
Пригласить эксперта
Ответы на вопрос 2
dimonchik2013
@dimonchik2013
non progredi est regredi
@alex159
Вывод всех "task" из бд где по id пользователя
SELECT `task` FROM `mydata` WHERE `user_id` = ?

$tasks = mysqli_query($connect, "SELECT `task` FROM `mydata` WHERE `user_id` =".$_SESSION['user']['id']);

if (mysqli_num_rows($tasks) > 0) {
    while($user = mysqli_fetch_assoc($result)) {
        echo $result['task'];
    }
}

Экранируйте все входящие данные и используйте более современые методы связи с бд.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
27 апр. 2024, в 18:49
5000 руб./за проект
27 апр. 2024, в 18:43
5000 руб./за проект
27 апр. 2024, в 18:42
1500 руб./за проект