@igordata я так делал) Я не правильно описал проблему свою))) Как скрыть от гостя информацию, а если гость авторизовался то показать ее? Например, ссылка на авторизацию и регистрацию видна, до того момента, пока гость не авторизуется, если он авторизовался прячем ссылки авторизации и регистрации и показываем защищенный контент.
PHP: if (empty($_SESSION['user'])) { echo 'Это инфа для любого неавторизованного посетителя'; }else{ echo 'Это секретная инфа только для авторизованных'; }
@igordata Не поверишь я и так делал, но в первой примере у тебя перед empty стоит знак ! для чего он? А как мне вскрыть блок регистрации и авторизации, если юзер зашел под своим логином? И еще вопрос: от куда ты берешь $_SESSION['user'] из сессии? или это для общего вида показываешь? И мне надо туда поставить то ли логин то ли id пользователя?
он делает наоборот значит "не empty(...)" --- Добавлено --- его нужно тудой покласть, когда юзер прислал логин, пароль, ты слазил в базу и сделал https://php.ru/manual/function.password-verify.html
это абсолютно бессмысленно сначала запрос в бд по логину, потом password_verify(пароль, хеш из бд) зачем? если выбрал юзера из бд и пароль прокатил - значит пиши айдишник в сессию и всё. вот тут как раз надо экранировать. Только при выводе. И каждый раз. PHP: <div>Вы успешно вошли в систему: '.htmlspecialchars($_SESSION['login']).' все урлы надо вести на одну точку входа. Тогда будет удобно. Можешь заюзать мой движок. Он простой. Но доку читай на англ =) я русскую пока подзабросил http://pinpie.ru/en/manual/start Тебе подойдет standalone вариант --- Добавлено --- вот сессию надо стартовать как раз в index.php например, на который все запросы идут.
@igordata И при регистрации это бессмысленно? PHP: $login = htmlspecialchars($_POST['login']); $password = htmlspecialchars($_POST['pass']); То есть проверили в бд логин и пароль и записывать id пользователя PHP: $_SESSION['user_id'] = $user_id; //вот так $_SESSION['user_id'] = $rows[0]['user_id'];// Или так А как правильней? все урлы надо вести на одну точку входа. Тогда будет удобно. А как так создать одну точку входа? И на счет шаблона подскажите его лучше поделить на три файла то-есть head content foot? Или сделать одним единым, для всех страниц?
@_ne_scaju_ "для удобства" - это слишком общее понятие. Вот смотри, например у тебя сайт на котором 50 страниц. И на всех 50 страницах выводятся абсолютно одинаковые шапка, меню и подвал. Поэтому ты их оформляешь один раз и подключаешь ко все страницам. Если через пол года ты захочешь добавить пункт меню, то тебе не надо будет редактировать все 50 страниц, а достаточно отредактировать один подключаемый файл. Понял теперь?
@TeslaFeo Короче поделю на 4 файла, и дальше буду отталкиваться от них. И с блоками спрятать или показать разобрался, просто надо было сессию создать забыл за нее))) Думал почему не выводит)))
@romach Всем привет, доброго времени суток помогите пожалуйста... Я почти разобрался с сессиями но не как не могу понять одно... Вот смотрите: PHP: //Если я записываю в сессию данные вот так, я могу вывести id пользователя но логин не могу. $_SESSION['user_id'] = $rows[0]['user_id']; //А если я в сессии пишу так вообще не чего не выводит. $_SESSION['user_id'] = $user_id; //А вот если я добавлю эту строку то логин у меня получается вывести $_SESSION['login'] = $rows[0]['login']; или так $_SESSION['login'] = $_POST['login']; echo '$_SESSION['login']'; Как же правильно эту сессию создавать?
А как же единая точка входа? В таком случае получится всего 1 файл, в котором уже подключены, либо так описаны все элементы (Шапка,меню, контент, футер). --- Добавлено --- Тебе уже говорили про дебаг. Что у тебя в $rows[0]['user_id'], $user_id? Судя по тому что ты описал, у тебя в $user_id пусто. а в $rows[0]['user_id'] - твой id.
@SamyRed Так мне описали что это не правильно так делать. Ну а так что делать? оставлять rows[0]['user_id'] или в моем случае можно что то по другому сделать? А как же единый вход, создам отдельный файл в нем подключу шапку меню контент футер, и сразу же в нем буду запускать сессию. Думаю такой вариант хороший)
Всем привет, создаю личный кабинет, ну или пробую создать, появились некие проблемы а собственно загрузка изображения, и ресайз его) Посоветуйте хороший примерчик для этого дела. Надеюсь будут какие либо предложения.
@SamyRed Спасибо, гуглом умею пользоваться но у меня получается ошибки смотрим на скрине: Не пойму у меня так и называется директория но файл грузится не хочет почему то. В базу имя записывается и путь а в папку не чего не попадает. В чем может быть проблема? Все уже делал, ошибка да ошибка, уже должно загрузится было давно, но почему то все да не как не выходит. Вот код с оф сайта мануала использую его: PHP: $uploaddir = '/images/avatar/'; $uploadfile = $uploaddir . basename($_FILES['userfile']['name']); echo '<pre>'; if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { echo "Файл корректен и был успешно загружен.\n"; } else { echo "Возможная атака с помощью файловой загрузки!\n"; } echo 'Некоторая отладочная информация:'; print_r($_FILES); print "</pre>";
Когда убираю путь из переменной $uploaddir то ошибки исчезают но файл не грузится аааааа. И при этом имя в базу записывается. В форме я указываю enctype="multipart/form-data" я не знаю почему файлы не создаются(((
Эта папка где? Какой у неё полный путь? По ошибке не понятно куда грузит, а если домыслить путь то должен в C:/images/avatar/
@denis01 Ну если смотреть так то полный путь будет такой: D:\openserver\domains\vk.local\images\avatar А толку мне от полного пути? Даже когда я указываю полный путь меня предупреждают что файл загружен, но в папку не чего не сохраняется, я и хочу понять почему, не чего не сохраняется в папку?