За последние 24 часа нас посетили 22304 программиста и 1023 робота. Сейчас ищут 654 программиста ...

Как сделать удаление аккаунта с сайта?

Тема в разделе "PHP и базы данных", создана пользователем Jameses, 6 май 2013.

  1. Jameses

    Jameses Новичок

    С нами с:
    6 май 2013
    Сообщения:
    81
    Симпатии:
    0
    аа можно мне описание данной функции я про DELETE FROM tz_members WHERE id='$_GET[id] ? Я про Where id= и тд.,ну я понимаю где ид,а что такое $_GET?В моей БД такие фишки: ID - эТо номер персонажа, usr- нейм ,pass - пароль,email- мыло,а называеться таблица tz_members ,и вопрос а я правильно подписал функцию ту?
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    _GET это один из суперглобальных массивов PHP.
    DELETE FROM `table` - удалим все данные из таблицы.
    DELETE FROM `table` WHERE 1 - тоже все данные, но как бы вместо 1 можно обозначить условие по которому будут отобраны строки для удаления. условие работает так же как и для UPDATE и SELECT.
    самостоятельно учитесь, мануалы читайте. а то после таких разжевываний хочется попросить часть вашей зарплаты так как вы использовали мой ресурс. я б даже сказал всю ибо сами вы что-то не особо пытаетесь.
     
  3. Jameses

    Jameses Новичок

    С нами с:
    6 май 2013
    Сообщения:
    81
    Симпатии:
    0
    а кавычки обязательно,Ну для таблицы?Просто где то видел без,а тут с,хотя ладно спасибо вам больше,я понял,буду учиться
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    обязательно. приведу пример из личного опыта - date. приведу пример из чужого опыта - where. вообще надо быть полным дауном чтоб назвать ключевым словом, но СУБД не запрещает это сделать. подводные камни вскрываются позже - в некоторых случаях date и where будут интерпретироваться именно как ключевые слова. а вот если обрамить этот идиотизм кавычками - то исключительно как название базы/таблицы/поля. даже если мы назвали б/т/п OppaGangnamStyle у нас не может быть уверенности что лет через парочку оракл не добавить сию последовательность в список ключевых слов. взяв за простое правило обрамлять всегда - мы на 100% защищаемся от будущих возможных косяков.
     
  5. Jameses

    Jameses Новичок

    С нами с:
    6 май 2013
    Сообщения:
    81
    Симпатии:
    0
    аа,я понял,вобщем у меня ошибка с подключением к бд,код написан верно,но запрос в БД не проходит..,а что имено не так вот я ищу,но не находиться как то
     
  6. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    как происходит отладка?
     
  7. Jameses

    Jameses Новичок

    С нами с:
    6 май 2013
    Сообщения:
    81
    Симпатии:
    0
    Код (Text):
    1. <?php
    2.  
    3. define('INCLUDE_CHECK',true);
    4.  
    5. require 'connect.php';
    6. require 'functions.php';
    7.  
    8. session_start();
    9.  
    10. mysql_query("DELETE FROM `tz_members` WHERE `id`='$_GET[id]'");
    11. header('Location: http://.');
    12. ?>
    Вы можете,сказать ,ну вот этот код он сам написан верно? Ну т.е. там косяков нет никаких?

    Добавлено спустя 1 минуту 51 секунду:
     
  8. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    наличие или отсутствие косяков определяется алгоритмом который вы задумали. оно как бы нормально. есть задача, есть алгоритм ее решения, есть код который реализовал этот алгоритм. дальше запускаем - на выходе получаем не тот результат который ожидаем. и начинаем поэтапно сравнивать состояние программы с тем что мы придумали в своей голове. без видимости состояния невозможно быть программистом. кодером можно, программистом нет.
     
  9. Jameses

    Jameses Новичок

    С нами с:
    6 май 2013
    Сообщения:
    81
    Симпатии:
    0
    Хмм,ну вот я пологаю,что ошибка в подключении,но там всё введенно верно,но в чем же тогда проблема,файл : connect.php
    Код (Text):
    1. <?php
    2. if(!defined('INCLUDE_CHECK')) die('У вас нет прав на выполнение данного файла!');
    3. /* Конфигурация базы данных */
    4.  
    5. $db_host        = 'ну';
    6. $db_user        = 'ну';
    7. $db_pass        = 'ну';
    8. $db_database    = 'ну';
    9.  
    10. /* Конец секции */
    11. $link = mysql_connect($db_host,$db_user,$db_pass) or die('Невозможно установить соединение с базой данных');
    12. mysql_select_db($db_database,$link);
    13. mysql_query("SET names UTF8");
    14.  
    15. ?>
    я уже проверял его,он подключен и к регистрации и к удалению,а что я упустил?
     
  10. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    еще раз: КАК ПРОИСХОДИТ ОТЛАДКА? я вот вижу кашу в вашей голове и сообщение "уже проверял его,он подключен и к регистрации и к удалению" мне вообще погоды не делает, понимаете?
     
  11. Jameses

    Jameses Новичок

    С нами с:
    6 май 2013
    Сообщения:
    81
    Симпатии:
    0
    Урааа)))получилось)))

    Добавлено спустя 1 минуту:
    Я перешёл на версию 5.4 php хотя,не знаю,но всё же как то получилось,и терь пашет
     
  12. Jameses

    Jameses Новичок

    С нами с:
    6 май 2013
    Сообщения:
    81
    Симпатии:
    0
    проблема была вот тут WHERE `id`='$_GET[id]'
     
  13. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    и как решили?
     
  14. Jameses

    Jameses Новичок

    С нами с:
    6 май 2013
    Сообщения:
    81
    Симпатии:
    0
    я сначало убрал,и получилось,так что он удалял все аккаунты,а щас я еще делаю

    Добавлено спустя 1 минуту 7 секунд:
    вот если добавить:$id = int($_GET['id']); то получиться?

    Добавлено спустя 3 минуты 22 секунды:
    Fatal error: Call to undefined function int() in /home/u989543961/public_html/index/delete.php on line 4 и вот такая ошибка - там $id = int...

    Добавлено спустя 8 минут 43 секунды:
    убрал это $id = ... ,а затем если выполнять запрос mysql_query("DELETE FROM `tz_members` WHERE `id`='$_GET[id]'"); без WHERE `id`='$_GET[id] ,то удаляет всех пользователей,А вот если ставишь,то не работает,и я вот думаю,а в чем же дело,тогда

    Добавлено спустя 1 минуту 26 секунд:
    я хочу убедиться,в данном случае id - это что?Вот у меня id-порядковый номер аккаунта,веть так должно быть?
     
  15. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    полувопросы...
     
  16. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.745
    Симпатии:
    1.319
    Адрес:
    Лень
    Jameses, а зачем вы беретесь за программирование mysql если незнаете что такое
    БД. Вы когда брались с самого начала за mysql, как вы изучали его? Вы читали мануалы, тесты делали? прежде чем уже браться за
    выучите начальные Азы mysql.
     
  17. Jameses

    Jameses Новичок

    С нами с:
    6 май 2013
    Сообщения:
    81
    Симпатии:
    0
    MAN_IFE_ST - тут вопрос в другом был если что,с БД уже разобрались,а вот: WHERE `id`='$_GET[id]' не работает т.е. условие не правильное
     
  18. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.745
    Симпатии:
    1.319
    Адрес:
    Лень
    $id=(($_GET['id'])?$_GET['id']:'not');
    а в запросе оставьте переменную $id
    if($_GET['id'] != 'not'){
    .....
    }
     
  19. Jameses

    Jameses Новичок

    С нами с:
    6 май 2013
    Сообщения:
    81
    Симпатии:
    0
    <?php

    define('INCLUDE_CHECK',true);

    require 'connect.php';
    require 'functions.php';

    session_start();
    $id=(($_GET['id'])?$_GET['id']:'not');
    mysql_query("DELETE FROM `tz_members` WHERE `id`='$_GET[id]'");
    if($_GET['id'] != 'not')
    {
    echo "Вы не имеете права выполнить этот запрос.";
    // header('Location: http://');
    }
    ?>
    Вот так что ли?Я понял как сделать,но вопрос про переменную,как её написать вот как я или иначе?
     
  20. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    нет. у вашего алгоритма отсутствует логика. внимательнее
     
  21. Jameses

    Jameses Новичок

    С нами с:
    6 май 2013
    Сообщения:
    81
    Симпатии:
    0
    а дело в сесси старт?Или в $id=...? Меня код немного смущает,видно что чтото не так,а что?
     
  22. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    я уже сказал что именно не так. логика. перед тем как начинать писать на любом языке нужно сначала понимать алгоритм. понимать что программирование сводится к переводу словесного решения задачи на лексемы определенного языка. у вас нет понимания основ программирования. то что вы делаете дальше это просто метод высоконаучного тыка. я вам могу дать к примеру совет использовать exit(); и вы голову сломаете куда вызов нужно запихнуть. хотя если бы вы "видели" алгоритм то поняли что выход можно не использовать и мой совет банальный троллинг человека который ноль в алгоритмах.

    смотрите:
    $id=(($_GET['id'])?$_GET['id']:'not'); - если в элементе айди массива _гет логически ненулевое значение то присвоить переменной айди это значение. иначе присвоить переменной строку нот

    mysql_query("DELETE FROM `tz_members` WHERE `id`='$_GET[id]'"); - удалить из таблицы тз_мэмбэрс где айди равен значению переменной элемента айди массива _гет. а зачем мы тогда выше тестировали этот элемент и объявляли новую переменную???

    if($_GET['id'] != 'not') - а вот тут мы вдруг (режим телепата включен!) решили таки проверить что же у нас хранится в переменной айди. но только мы промахнулись и ищем это значение в элементе айди массива _гет.
    занавес...
     
  23. Jameses

    Jameses Новичок

    С нами с:
    6 май 2013
    Сообщения:
    81
    Симпатии:
    0
    воу,теперь вдумался,ясно,я тогда подумаю ход решения.
     
  24. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.745
    Симпатии:
    1.319
    Адрес:
    Лень
    как обычно делаю ошибки)

    $id ... not
     
  25. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    норм, мы все опечатываемся. но человек которому этот код назначался сам должен был поправить а не тупо копипастить