что значит "предполагаю"? Конкретно ошибка при выполнении запроса какая? что пишет mysqli_error($connect)?
если ничего не пишет, то значит запрос вообще не выполняется
Это ужасный код. Все эти error=none - это совершенно бессмысленный детский лепет. Пользы от него ноль, только мусор в адресной строке. Судя по всему из какого-то дурацкого видео на ютубе.
Почитайте как правильно работать с БД в РНР: https://habr.com/ru/post/662523/
Не воспроизводится.
Это означает, что в $username лежит имя, которого нет в базе. или запускается какой-то другой код, а не этот.
В целом код нормальный, за исключением того что подготовленные выражения надо использовать для всех запросов, а не только для select. Плюс два бессмысленных if-а:
if ($conn->query($sql) === TRUE) { - это ненужный мусор, это никогда не надо писать. Сразу header без всяких условий.
if ($conn->connect_error) вообще не имеет смысла, и будет только каждый раз выдавать ошибку.
Владислав Лысков, заслуженный ответ отметил решением я. А автор скромненько отметил свой.
DragonPro, объясняю последний раз:
Ваш код работает СОВСЕМ не так же, как код Константина.
Если на вашем цыплячьем примере код "работает", это не значит, что он будет работать всегда. Надо смотреть чуть дальше своего носа.
Если в $url будет ';DROP TABLE cars; -- то за такую "работу" будет очень больно.
У вас в коде есть бессмысленное условие, которое дублирует условие в запросе. То есть проблема тут даже не в коде, а в том что вы не понимаете, что пишете. А это важно для программиста.
Ваш код опасный. Через $url вам напихают полную панамку инъекций.
И если уж вам самому всё равно на это, то хотя бы не отмечайте свой ответ решением. "Если кому нужно будет" и он возьмёт ваш код, то поимеет все те же проблемы. То есть это не решение, а западло.
Если бы вы читали то что я написал, а не принялись, по своему выражению, "пуканить", то смогли бы увидеть кейс.
Но в целом ваш лексикон многое объясняет, и в первую очередь - ваши проблемы с технологиями.
ARTIsshoque, поставить нормальную кодировку в БД не пробовали?
Чтобы "сохранить строку с такими символами в MySQL" не нужно вообще никаких телодвижений, тем более таких, кхм, экзотических.
$GLOBALS является глобальной только для текущего скрипта. И про эту переменную надо вообще забыть, она нужна только для говнокода.
Сессии не предназначены для такого использования.
Вам уже сказали - стандартный ответ на этот вопрос - база данных