Надо было тоже валидатор поставить, которым форму регистрации проверяю (если код мой смотрел), но это всё на скорую руку было.
нет, еще не смотрел код, потерял где в каком месте наткнулся, я полностью этот пост не читал, только начало, ну и когда сам стал принимать участие. сейчас ищу, пока не нашел, а посмотреть код интересно!
https://github.com/77Alleksandr77/Adjustment_task/blob/master/handler.php#L4 if($_SESSION['user_name']) забыл заменить на if($_SESSION['user_id']) поэтому это условие ==фолс, а срабатывает header находящийся в конце файла, потом исправлю
Лучше isset(...), чтоб не было нотиса, пока юзверь ещё не вошёл --- Добавлено --- https://github.com/77Alleksandr77/Adjustment_task/blob/master/handler.php#L33 Не, вот так не надо делать 0 - нормальный пароль, несмотря на то, что php считает его empty(). Просто написать свою функцию проверки, что-то типа PHP: function fulled($str) { return $str !== null && $str !== ""; } if (!fulled($_POST["password"] ?? "") { echo "Вы не ввели пароль"; } Если только вы не пишите что-то действительно сверхсекретное, типа webmoney, то пароль должен пропускаться любой
согласен, какой пароль пожелает, такой пусть и вводит, и ника это тоже касается. хочет быть 0, пусть будет нулём, и к этому надо быть готовым, что кто то решит назвать себя "0" --- Добавлено --- например? я просто не все моменты еще понимаю, а какой "нотис" может быть?
Ты не проверяешь есть или нет, ты проверяешь истина записана в $_SESSION["user_id"] или ложь. Если в $_SESSION не будет user_id, то условие сработает, но будет нотис. Поэтому делается проверка PHP: if (isset($_SESSION["user_id"]))
исправил, проверил, работает! из БД удалю, чтобы не занимать "уникальный" ник. тоже разберусь, исправлю. !
за авторизацию отвечает эта функция PHP: function enterance( $user_name, $user_password, $connect) /* вход в аккаунт */ { $table = 'counter'; $user_name = mysqli_real_escape_string($connect, $user_name); $result_set = mysqli_query ($connect, " SELECT `id`, `pass` FROM `$table` WHERE `name`='$user_name' "); if( $received_pass_array = $result_set->fetch_assoc() ) { $pass = $received_pass_array ['pass']; if (password_verify($user_password, $pass)) { return $received_pass_array ['id']; } else { return false; } } else { return false; } } мое мнение, что она вернет либо false либо user_id я обычный человек и могу ошибаться, как и каждый из нас, и готов услышать, что мое мнение не верно так как не учтено ..., она может вернуть не user_id ? и в каком случае такое может произойти?
заменить строку на PHP: if (isset($_SESSION["user_id"])) это проще простого! Взял, да и заменил, а вот разобраться в причинах возникновения этого "нотиса" когда вроде все выполнено что бы он не возник! И где, на каком участке кода он "Нотис" может возникнуть! То что в этой строке может произойти "Нотис" я услышал, а на каком участке кода в переменную $user_id может попасть не user_id ? Или так делается просто для перестраховки, так, на всякий случай, вдруг что то в коде упустил из виду,! Это в данном задании кода не так и много, а бывает и больше! или для перестраховки добавить строки в PHP: if (password_verify($user_password, $pass)) { $id = $received_pass_array ['id']; // if ( $id ) { return $id; } else { return false; } else { return false; } ? --- Добавлено --- --- Добавлено --- Может я зануда? но фраза "надо заменить на..." и аргументированная тем, что может возникнуть "нотис" меня ...! Так как я не специалист, то это для меня еще это не аргумент, можно довериться авторитету и просто заменить без лишних вопросов, но тогда я и не научусь ничему! если не разобравшись возьму и просто поменяю
Ну если ты на 100 процентов уверен, что при заходе к этой точке у тебя будет заполнен элемент $_SESSION["user_id"], то да, можешь и так оставить Я настолько в код не вникал
@mkramer и @Fell-x27 благодарю за конструктивную критику! она была мне только на пользу,! --- Добавлено --- не одно замечание не было мною проигнорировано! всем ! добра !
Привет всем)) я начал общаться и не представился даже)) В общем зовут меня Алексей, работаю в сфере ИТ можно сказать всю жизнь, работал и сервисе, и в продажах, последние лет 5-7 являюсь вебмастером, есть несколько своих проектов. В связи с этим начал что то писать на пхп, до этого что то писал на FoxPro (еще в школе), как все что то мастерил на бейсике, паскале, чуть чуть работал с C++ очень давно.. и реально чуть чуть)) Последние два года активно занимаюсь поддержкой движка simplemachines.. в общем все подряд делаю)) моды, обновления, шаблоны перерабатываю, в общем кастомизирую) Последние несколько месяцев задумываюсь немного расширить сферу деятельности.. очень хочется поработать в команде, набраться опыта.. Выкладываю свой проект)) сначала начал мастерить MVC каркаc.. сейчас потихоньку разбираюсь с YII2 да и вообще хочу вникнуть в ООП поглубже.. но потом посмотрел что для такой задачи вроде слишком избыточно будет использовать ООП ради ООП)) поэтому сделал так как мне привычно)) https://github.com/kak2z7702/test_php_ru кидайте тапками)) --- Добавлено --- и да)) еще)) для работы с базой я последнее время использую только функции движка с которым работаю.. так что это мой первый опыт работы с mysqli )) так то с мускулом я дружу)) а вот mysqli не использовал.. как то PDO почему то показалось мне удобнее чем mysqli
https://github.com/kak2z7702/test_php_ru/blob/master/func.php#L34 - надо не отдавать другую страницу, а редирект делать на другой URL. Это для SEO имеет значение, да и вообще нехорошо, когда один и тот же урл отдаёт разное https://github.com/kak2z7702/test_php_ru/blob/master/func.php#L67 - зачем? Проверки корректности даты нету, только проверка возраста. А если 31 февраля 2011 года выберут? empty не пропустит вполне себе нормальные логин и пароль 0. Хотя меня тоже, несмотря на опыт, на этом подловили https://github.com/kak2z7702/test_php_ru/blob/master/func.php#L201 - тоже самое. Лучше создать отдельный маршрут для логина. Это, правда, лично моё мнение. Ну пока у меня всё. MVC на функциях мне понравился
для СЕО - поисковики видят только как гости.. а так то да.. редирект лучше поставить)) согласен)) думал про это.. но потом как то не сделал.. согласен.. надо будет сделать проверку.. да.. в этом случае надо было isset.. спасибо)) в задаче стояло что на главной должен быть логин)) поэтому я сделал так)) изначально у меня была отдельная страница аутентификации)) ну а как вообще код?? я просто впервые показал свой код кому то)) всегда как то было неудобно)) казалось что совсем по колхозному пишу))
ну вроде как лучше когда для логина ограничены символы.. мне так нравится)) --- Добавлено --- сделал правки некоторые) исправил проблему с паролем ноль и сделал проверку даты..
Автор привет, надеюсь ты еще тут, специально зарегился я для того чтобы тебе написать. Хочу заниматься программированием, и найти фриланс, опыта почти нет, создал сайт с РЕГИСТРАЦИЕЙ (PHP), хочу чтобы мастер заценил (близко к твоему заданию) и посоветовал как найти работодателя и куда двигаться вообще. Если дождусь ответа, скину сайт в личку. Заранее спасибо. Надеюсь, не обидел, перейдя на ТЫ.
))) переживал, вдруг мастера сайт завалят инекциями или админ забанит. Вот оно детище - http://mostop.ru @Fell-x27