Ребят не первый день работаю с php, но эта проблема поставила вообще в ступор. Вроде стандартная программа(файл прикрепил и вот такая выскакивает ошибка. Не пойму в чем проблема, уже неделю мучаюсь с этим. Стоит WAMP на компьютере, вроде все как надо установил, но аутентификация все равно правильно не работает.
1) Не выкладывай текст в виде скриншотов. Не надо. 2) Не первый день в PHP, а не знаешь, что пробел в ключе массива тоже считается. У тебя в пятой строке ключ с пробела начинается. 3) Раз уж не первый день в PHP, то начинай кодить не в блокноте, а в IDE настоящей.
1) На этом форуме впервые. А как надо загружать? 2) Да, действительно, есть ошибка ее исправил, теперь все равно коректнj не работает, вот что выдает:
Все разобрался, всем спасибо. Дело действительно оказалось в кодировке, только работал в Editra, там непонятно как устанавливать эту кодировку, скачал Notepad - все заработало!
Спасибо! Кстати рано обрадовался, теперь часть else не работает почему-то. То есть вне зависимости того, что введено в форму, срабатывает только echo в блоке if. Вот код: <?php if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) { echo "Добро пожаловать, пользователь: " . $_SERVER['PHP_AUTH_USER'] . " , имеющий пароль: " . $_SERVER['PHP_AUTH_PW']; } else { header('WWW-Authenticate: Basic realm=\"Restricted Section\"'); header(' HTTP/1.0 401 Unauthorized'); die("Пожалуйста, введите имя пользователя и пароль"); } ?>
ща вот он должен выйти, сказать: "Пожалуйста, но все равно не работает". PHP: BB code - это вот о чем Вас просили, выложите сюда код формы и обработчика формы. Что за переменная такая PHP_AUTH_USER от массива SERVER
почему нажал. Всмысле не гарантирует? Я так это понимаю: если что-то введено в поля имя пользователя и пароль, то должно вывести приветствие, а если нет, то код в else ТО есть вы хотите сказать, что код else вообще не сработает?
... пользователь имеющий пароль, как эпично звучит, я тоже так хочу Samir, а Вы случайно массив $_SERVER и $_POST не перепутали?
Что за переменная такая PHP_AUTH_USER от массива SERVER -это переменная, нет, не перепутал. и я не говорил: "пользователь, имеющий пароль" --- Добавлено --- Возможно не совсем понимаю как тут else работает. Если можешь, объясни пожалуйста
У вас в первом сообщение на скрине 2 есть запись Notice: Undefined index: PHP_AUTH_USER in .... что она значит?
Возможно не совсем пон она значит, что я случайно допустил отступ при выводе этой переменной в ее написании, вот вылезла такая ошибка. С ней уже справился, сейчас не понимаю как работает else
Эта ошибка значит, что интерпретатор встрел неопределенный индекс, понимаете что это такое? Это значит что он не был создан, а Вы к нему пытаетесь обратиться. Попробуйте добавить в свой код Код (Text): echo '<pre>'; print_r($_SERVER ); echo '</pre>'; echo '<pre>'; print_r($_POST); echo '</pre>'; первая строка покажет Вам все, что есть в массиве $_SERVER; вторая все - что есть в массиве $_POST; поищите там данные из формы
@Samir Я думаю примерно надо было написать так тебе, вместо $_SERVER написать $_POST, как и выше обсуждали ребята. Которые так и не дождались от тебя ответа и ихний вопрос, на счет $_SERVER от куда берешь значения которые подставляешь в переменную $_SERVER, надеюсь это из полей из формы!!! Да я тоже повторюсь оформляй код правильно, с верху есть полоса с выбором всяких инструментов, ну так вот нажми на: </> и выбирай код пункт который надо, то ли php или html. PHP: <?php $err = []; if(isset($_POST['submit'])) { if (empty($_POST['PHP_AUTH_USER'])) { if(empty($_POST['PHP_AUTH_PW'])) { echo "Добро пожаловать, пользователь: " . $_POST['PHP_AUTH_USER'] ." , имеющий пароль: " . $_POST['PHP_AUTH_PW']; } $err['PHP_AUTH_USER'] = 'Введите имя пользователя'; } $err['PHP_AUTH_PW'] = 'Введите пароль пользователя'; }
Ребят, спасибо большое! @_ne_scaju_я вроде так и оформлял как надо, честно говоря не знаю почему в неправильной форме отправился)
@Samir Да не чего бывает у всех, проблемы с которыми нужна помощь, у профессионалов php тоже они есть, но редко) и нужно задавать вопросы тем кто знает ответ на этот вопрос.
В данном случае массив $_SERVER[''] играет роль массива $_POST[''], то есть массив на сервере грубо говоря. Почему то все зациклились на этом, но вопрос не в этом был совсем)
ООО. пришли люди, которые нифига не разобравшись, советуют. @_ne_scaju_, @karmay - ТС базовую аутентификацию пытается сделать. https://php.ru/manual/features.http-auth.html Это когда браузер окошко выводит @Samir, пустые строки - они тоже isset, если что. Если тебе всё равно, какой пароль, проверяй empty, а не isset