Удаление статьи с помощью токена

198
15 июня 2017, 07:24

Работает, правильно ли сделал удаление статьи, с помощью токена?

Авторизация

if(!empty($_POST['auth'])) {
            if(!empty($_POST['login']) && !empty($_POST['password'])) {
                $login = $_POST['login'];
                $secret = 'hhJNE63';
                $password = md5($_POST['password'].$secret);
                $user = "SELECT `id`, `login`, `password` FROM users WHERE login = :login AND password = :password";
                $resUser = $pdo->prepare($user);
                $resUser->bindValue(':login', trim($login), PDO::PARAM_STR);
                $resUser->bindValue(':password', trim($password), PDO::PARAM_STR);
                $resUser->execute();
                $resUser2 = $resUser->fetchAll();
                $userId = $resUser2[0]['id'];
                if(count($resUser2) === 0){
                    die('Неверный логин или пароль');
                }
                else {
                    $arr = ['f', 3, 'g', 'bd', 5, 'p', 'k', 'n', 'v', 'w', 33, 'c', 'o'];
                    shuffle($arr);
                    $str = '';
                    foreach($arr as $k) {
                        $str .= $k;
                    }
                    $sql = "UPDATE users SET randomSTR ='" . $str . "' WHERE login = '" . $login . "'";
                    $queryToket = $pdo->query($sql);
                    setcookie ("user", $str, time()+3600);

                    $salt = $login;
                    $tokenstr = strval(date('s')) . $salt;
                    $token = md5($tokenstr);
                    $_SESSION['token'] = $token;
                    $_SESSION['user'] = $login;
                    $_SESSION['id'] = $userId;
                    output_add_rewrite_var('token', $token);
                    header('Location: ./index.php');
                }
            }
            else {
                echo '<p class="mudak">Заполните все поля</p>';
            }
        }

Удаление

<?php
echo '<p>Добавить статью</p>';
require_once 'add.php';
echo '<p>Мои статьи</p>';
$myArticle = "SELECT article.id, title, user_id FROM article INNER JOIN users ON article.user_id = " . $_SESSION['id'] . " GROUP BY article.title";
$sth = $pdo->query($myArticle);
$sth->setFetchMode(PDO::FETCH_ASSOC);
$userArticle = $sth->fetchAll();
echo '<pre>';
print_r($userArticle);
echo '</pre>';

echo '<table>';
echo '<tr>';
    echo '<td>Название</td>';
    echo '<td>Действие</td>';
echo '</tr>';
foreach($userArticle as $key) {
    echo '<tr>';
    echo '<td>'.$key['title'].'</td>';
    echo '<td><form method="post">
        <input type="hidden" name="id-title" value="'.$key['id'].'">
        <input type="hidden" name="id-user" value="'.$key['user_id'].'">
        <input type="submit" name="del-article" value="Удалить">
    </form></td>';
    echo '</tr>';
}
echo '<table>';
if(!empty($_POST['del-article'])) {
    $sql = "SELECT article.id, `title`, `user_id`, users.randomSTR FROM article INNER JOIN users ON article.id = '".$_POST['id-title']."' AND article.user_id = '".$_POST['id-user']."' AND users.randomSTR = '".$_COOKIE['user']."' GROUP BY article.title";
    $sth = $pdo->query($sql);
    $sth->setFetchMode(PDO::FETCH_ASSOC);
    $delArticle = $sth->fetchAll();
    if(count($delArticle[0]) > 1) {
        $sqlDelArticle = "DELETE FROM article WHERE id = :id";
        $del = $pdo->prepare($sqlDelArticle);
        $del->bindValue(':id', $_POST['id-title'], PDO::PARAM_INT);
        $del->execute();
        echo 'Удалено';
    }
    else {
        echo 'Ошибка удаления';
    }
}
READ ALSO
Сообщения с цитатой

Сообщения с цитатой

Если сообщение текстовое, то всё нормально, а вот если HTML-сообщение, то сообщение пустое и появляется "Показать цитируемый текст" и после нажатия...

216
Вывод переменной php в колонку таблицы html

Вывод переменной php в колонку таблицы html

Есть переменная php которую нужно вывести на страницу html в конкретную колонку таблицыПодскажите пожалуйста как это сделать

233
Проблема с ajax запросами для php скрипта

Проблема с ajax запросами для php скрипта

В файле index1html есть форма, ajax запрос берет значение одного из полей и передает его скрипту php, для того что бы знать кто зашел на сайт

205
WordPress в page.php не видит переменную из head.php

WordPress в page.php не видит переменную из head.php

WordPress в pagephp не видит переменную из head

214