http://php.ru/manual/function.var-dump.html ну серьёзно. что ты ему передал, чтобы получить ну я понимаю что, я хочу чтобы для себя ответил
вот ответ от mysqli_query Код (Text): object(mysqli_result)#8 (5) { ["current_field"]=> int(0) ["field_count"]=> int(1) ["lengths"]=> NULL ["num_rows"]=> int(0) ["type"]=> int(0) } object(mysqli_result)#7 (5) { ["current_field"]=> int(0) ["field_count"]=> int(1) ["lengths"]=> NULL ["num_rows"]=> int(0) ["type"]=> int(0) } так?))
от - mysqli_fetch_array($user01); Код (Text): NULL NULL $text_keys['login'] Код (Text): NULL ну вот, а дальше что делать?
http://prntscr.com/6256k2 ?? если что я выше при проверке запрашивал число которого нет в бд Добавлено спустя 30 минут 48 секунд: Короче, вот часть кода с движка DLE , там есть и мой код , как теперь правильно сделать что бы после проверки ключ удалялся? Код (PHP): function check_reg($name, $email, $password1, $password2, $sec_code = 1, $sec_code_session = 1) { global $lang, $db, $banned_info, $relates_word, $config; $stop = ""; $elita_keys = isset($_POST['elita_keys']) ? htmlspecialchars($_POST['elita_keys']) : ''; $mysqli = new mysqli("localhost", '', '', ''); if (mysqli_connect_errno()) { printf($stop .= "Ошибка соединения: %s\n", mysqli_connect_error()); exit(); } else { $user01 = mysqli_query($mysqli, "SELECT login FROM kod WHERE login = '$elita_keys'"); $text_keys = mysqli_fetch_array($user01); if (empty($text_keys['login'])) { $stop .= 'Вы ввели не правильный ключ :('; }else { if( $sec_code != $sec_code_session OR !$sec_code_session ) $stop .= $lang['reg_err_19']; if( $password1 != $password2 ) $stop .= $lang['reg_err_1']; if( strlen( $password1 ) < 6 ) $stop .= $lang['reg_err_2']; if( dle_strlen( $name, $config['charset'] ) > 30 OR dle_strlen(trim($name), $config['charset']) < 3) $stop .= $lang['reg_err_3']; if( preg_match( "/[\||\'|\<|\>|\[|\]|\"|\!|\?|\$|\@|\/|\\\|\&\~\*\{\+]/", $name ) ) $stop .= $lang['reg_err_4']; if( empty( $email ) OR strlen( $email ) > 50 OR @count(explode("@", $email)) != 2) $stop .= $lang['reg_err_6']; if (strpos( strtolower ($name) , '.php' ) !== false) $stop .= $lang['reg_err_4']; if( stripos(urlencode ($name), "%AD") !== false ) { $stop .= $lang['reg_err_4']; } } }
подскажите пожалуйста как правильно выполнить запрос на удаление. Код (PHP): $mysqli->query("DELETE login FROM kod") так?
((( Тьфу... ну загугли блин((( тебе в кайф задавать вопросы на которые в интернете есть ответы? Это элементарно.
я уже поискал и сделал так, Код (PHP): $mysqli->query("DELETE FROM kod WHERE login = '$elita_keys'"); но он рано удаляет, скрипт не успевает сравнить ключи
ага спасибо Добавлено спустя 56 минут 53 секунды: так что делать то? они же должны выполняться по порядку, почему он тогда не успевает проверить?
да не нужно фетчить аррей если там что-то есть, то код верный. если там нету, то код не верный. Добавлено спустя 1 минуту 5 секунд: ебать ты не врубаешься пиздец. Это уже десятый раз. Ты до сих пор не понимаешь сути своего запроса в бд?
да не важно когда удалять. важно что если нашел - значит код верный. Хоть сразу удаляй. Если хоть что-то удалилось - значит был верный код. Не важно когда удалять. Важно знать только одно - верный ли был код.
отлично, разобрался, спасибо огромное. На сайте сделаю ссылку на форум в честь благодарности)) сделал так Код (PHP): $text_keys = mysqli_query($mysqli, "SELECT login FROM kod WHERE login = '$elita_keys'"); if ($text_keys < 0) { $stop .= 'Вы ввели не правильный ключ :('; }else { $del_key = $mysqli->query("DELETE FROM kod WHERE login = '$elita_keys'"); mysqli_close(); Добавлено спустя 1 минуту 2 секунды: а тут не будет sql иньекций ? тоесть не смогут ли люди слить ключи?
окей, давай ещё раз. Ты должен смотреть в документации то, что возвращает функция. что по-твоему ты тут сравниваешь с чем? Код (Text): if ($text_keys < 0)
Код (Text): $text_keys = mysqli_query($mysqli, "SELECT login FROM kod WHERE login = '$elita_keys'"); записываем в переменую что получили из бд if ($text_keys < 0) - если число в переменой меньше нуля ошибка, иначе ... все работет, я уже проверял.. Только вот насчет защиты хотел спросить
с чего ты взял что там число? ты читал доку? Что возвращает функция mysqli_query? =) Почему тебя интересует случай, когда некое число меньше нуля?
mysql_query() возвращает дескриптор результата запроса (resource), или FALSE в случае ошибки. Почему тебя интересует случай, когда некое число меньше нуля?[/quote] что бы в код движка было легче втулить