vdem, "не идеален" - это очень мягко сказано.
- FILTER_SANITIZE_STRING зачем портить логин перед проверкой?
- empty зачем проверять на существование переменную, которую ты объявил строчкой выше?
- $passwordHash = password_hash($password); сразу видно что пароли ты не хэшировал никогда, и как это работает не понимаешь вообще
- try { очередная бессмыслица, чтобы вывести ошибку. мысль о том, что пхп не настолько тупой язык, и сам умеет выводишь ошибки без таких костылей, конечно в голову не приходит
- echo 'Database error: ' . $e->getMessage(); офигенный код для продакшена. Пользователю сайта вот прямо очень интересно почитать, что там у тебя за ошибки БД
- setcookie('user', $user['name'], time() + 3600, '/'); ну и как обычно, адище с куками, когда любой имбецил поставит в куки емейл и авторизуется по любым пользователем.
на самом деле require_once это неудачный выбор вообще для всего.
Это был неизбежный костыль в эпоху до автолоада и композера, который сейчас не нужен примерно никогда.
если ты пытаешься загрузить один и тот же файл два раза - это значит что ты что-то делаешь не так.
ThunderCat, я ж говорю - не надо путать ресурс с путём.
Вместо полного идентификатора ресурса мы указываем только путь. Но путь при этом указываем абсолютный.
Как путь, просто взятый сам по себе, он абсолютный.
Заметь, если бы наш волнистый попугайчик не стал чирикать про домены, то вопрос так и остался бы чисто про пути. Автор и так уже использует путь. Ему всего лишь надо поменять его на абсолютный. Приплетать сюда полный идентификатор вообще незачем. Как и развлекать себя философскими вопросами об относительности. Оставаясь чисто в контексте написания отдельно взятого пути, мы просто меняем относительный на абсолютный.
Ну в общем да, логично.
Учитывая что ты даже корректно сформулированный вопрос понять не можешь, то здесь, когда автор сам не знает, про что спрашивает, ты можешь писать что угодно.
Непонятно только, какую тогда проблему решает твой ответ, но тебя такие мелочи ведь не волнуют.
Главное ответик настрочить.
Прекрасный, кстати, пример того, насколько прав был старик Кнут.
Ну и образчик логики такого рода.
То есть у нас имеется воображаемая проблема с производительностью и мы кидаемся её решать. САМЫМ, разумеется, эффективным способом: запуская array_values(). То есть ПЕРЕБИРАЯ МАССИВ ЛИШНИЙ РАЗ целиком и плюс к тому ещё и ПЕРЕЗАПИСЫВАЯ его - то есть создавая дубль исходного массива целиком с нуля, причем в какой-то момент в памяти будут находиться оба массива - старый и новый, соответственно удваивая размер занимаемой памяти.
И вот исходя из вот этой вот логики foreach нам, разумеется, убивает сервер, а вот array_values - это же совершенно бесплатная функция, она выполняется в пятом измерении квантовыми компьютерами из будущего!
Я использую for, потому что он быстрее, чем foreach
OH MEIN GOTTT.
Последний раз я видел эту чушь лет 8 назад. уже и сайтов в интернете не должно было остаться, которые её повторяют. Откуда ты это выкопала, Анастасия?