Как удалить из базы данных авторизованного пользователя?

На странице имеется кнопка "Удалить аккаунт", которая ведет на страницу delete_account.php. Нужно чтобы при нажатии на нее авторизованный пользователь удалял свою строку из таблицы. Целый день мучаюсь с этой проблемой. Не подскажите как решить? Часть кода страницы delete_account.php

    $host = 'localhost';  
    $user = 'root';    
    $pass = 'root'; 
    $db_name = 'diploma';

    $link = mysqli_connect($host, $user, $pass, $db_name);
    mysqli_query($link, "SET NAMES 'utf8'");

    if (isset($_GET['user'])) {
        $user = $_GET ['user'];
        $query = "DELETE FROM `username` WHERE `name` = 'user'";
        mysqli_query($link, $query);
    }

Не кидайтесь палками, я всего лишь прошу дать совет, я не такой опытный) Заранее спасибо!


Ответы (1 шт):

Автор решения: Mamba

Попробуйте:

$query = "DELETE FROM `username` WHERE `name` = '$user'";

Но я бы для начала удостоверился в следующих пунктах:

  • Подключились ли вы к базе данных вообще?
  • Действительно ли в GET параметре name находится имя пользователя
  • Действительно ли таблица называется username

Еще вам не мешало бы обернуть входной параметр в mysql_escape_string

$query = "DELETE FROM username WHERE name = '". mysql_escape_string($user) ."'"

Это необходимо для предотвращения SQL инъекций. Чтоб понять зачем это нужно, попробуйте без mysql_escape_string попробовать удалить юзера с именем ' or True or '(именно так, имя должно начинаться и заканчиваться с одинарной кавычки) и посмотрите, что случится в базе данных

→ Ссылка