Я всё пытаюсь да пытаюсь что-то изобрести в свободное время)) Задумка такова , если кукесы пустые происходит инициализация сессии, в куки рандомная строка в базу хэш строки, Ок , ладно ,знаний мне хватило на эти хакиииирьские манипуляции )) c md5 можно поймать колизию , сделал поле primary key. Что теперь делать ? Если id сессии выступает в виде хэша md5, взять в цикл генерировать до тех пор пока не найдется свободный. PHP: $session_id = session_create_id(); $hahs = hash('md5', $session_id); Возникает вопрос теперь, как получить из базы данных этот хэш если он же и есть id, Код (Text): select id from sessions where id = $hash , ок какя-то дичь а не запрос ,походил подумал типа Код (Text): select `id` from sessions выбрал все сесии потом поместил их массив PHP: $s = mysqli_fetch_assoc(mysqli_query($mysqli, "select `id` from `".PREFIX."_sessions`")); Помечтаем не много, вдруг у меня миллион сессии или 20 миллионов, это все 20 миллионов ждать , тоже какая-то дичь . Но пока 4 бота и я 1 Как это всё оптимизировать, чтобы можно было сравнивать или есть такой хэш (он же id) тогда выполнять мне мои задумки дальше генерация перегенерации , сравнивать или совпали не совпали с текущей и т.д и т.п , памагите навести порядок ))
Это не то , мне нужно сообразить поиск по таблице адекватный с моими воображаемыеми 20 миллионами, потому что я передаю не уникальное значение и primary key зря вставил чувствую
Я думал об этом уже типа взять готовую cms ,но на ошибках учатся а не на готовом по этому вопрос стоит как и стоял И вдруг у меня 20 миллионов этих id PHP: $hash = md5($session_id); // выступает в качестве id записи в бд $s = mysqli_fetch_assoc(mysqli_query($mysqli, "select `session_id` as `id` from sessions")); if($hash != $s['id']) // тру код :) Это уже 2-3 месяца прошло, я начал хоть понимать что-то, 3 месяца назад ещё веселей было ))) когда я писал select count(*) в num_rows и на конце limit 1 этот форум этих моментов не застал Типа PHP: if(mysqli_num_rows(mysqli_query($mysqli , "select count(*) from users where email = '{$email}' LIMIT 1" )) > 0)
Я тЕ уже писал в др. теме, что это хрень, и писал, как надо делать. Но ты походу проигнорил. По крайней мере я отклика не получил.
Ну найди свою недавнюю тему, где примерно про то же самое спрашивал. И нафига вообще session_id самому в БД сохранять? Сессии пыха или в файлах хранятся, или ты в конфиге пыха нужное хранилище прописываешь. А поднятая тема актуальна, когда сессии пыха НЕ используются
Для того чтобы когда ты вошёл на сайт ты гость или Вася был в одной сессии , аунтефикацию прошел опередило как пользователя к сессии в бд добавилась id пользователя вышел с аккаунта колоночка в null превратилась, у каждого свои идею, как правильно нету )) Или я тебе в кукесы влеплю 1 и в базу 1 ?)) А вот это $_SESSION вообще не знаю зачем нужно, прочитал что живут до закрытия браузера , на этом и закончил изучение $_SESSION
Разным «гостям» одна общая сессия? Вообще не создавай гостям сессии, т.е.стартуй сессию по условию. Или используй для гостей «анонимные» сессии, т.е. разные, причем создавать такие сессии лучше не по GET'у, т.е. тоже не сразу создавай, а когда они какую-то кнопку тыкнут. А понятно... Доку пыха не осилил. В $_SESSION хранятся данные сессии, загруженные в память. Причем когда ты меняешь эти данные (часто говорят «меняешь сессионные переменные», т.е. элементы этого superglobal-массива), то пых обычно автоматом выписывает обновленные данные в сессионное хранилище. Немного похоже на AR
Ты Вася заходишь ты на сайт чекнул или у тебя куки пустые создал тебе сессию, если не пустые нужно чекать что у тебя в кукесах , так вот чтобы до этого момента дойти я пытаюсь расхлебать вот это потому что записей может быть 20кк но на само деле не будет но всё же ))) PHP: $s = mysqli_fetch_assoc(mysqli_query($mysqli, "select `session_id` as `id` from sessions")); if($hash != $s['id']) Ничего не вижу в этом плохого единственное что будет весить база много но это решаемо по дате последнего посещения Я говорил мне всё равно как работает $_SESSION , он дохнет после закрытия, значит не интересует даже что он может хранить, это популярно во время аунтефикаци для галочки запомнить или нет, да 15 лет я не разу ее пустую так и не оставлял по своему опыту удобно когда запомнил кука в браузер ушла а не долбить каждый раз логин и пароль, решил что мусор не нужный
Не, тогда ты просто стартуешь сессию и «чекаешь» ее содержимое, например: PHP: if (isset($_SESSION['id'])) { // сессия была создана ранее } else { // сессия была создана только что } В сессионной переменной id ($_SESSION['id']) достаточно просто id юзера хранить.
Объясни мне , зачем мне этот мусор? Каждый раз после закрытия долбить логин и пароль в систему? +100к безопасности типа))) У меня пароль от гугл аккаунта на старом телефоне в виде скриена был проблема в том что я вошёл на этом телефоне ещё до того как разбил там экран ну вот 2 года хожу не зная своего пароля , номер привязан к докам а акк к номеру вот яу безопасности надо поменять пароль а мне по фигу там 20+ символов, номер же привязан как всё слетит тогда поменяю ну и телефон как доверенно устройство выступает , не скоро слетит)) а теперь представим была бы эта хрень на сессиях я бы не пользоаался бы даже Гуглом, я туда не собираюсь долбить пароль даже которого я не знаю ))
Не понял. --- Добавлено --- Можно использовать разные сессии для одного юзера. Если реально хочешь разделять сессию между девайсами юзера, тогда правда попробуй без сессий пыха обойтись. Как быстро искать/менять такие записи в БД, писал в др. теме.
Я не конченый дебил, чтобы такие массивы создавать --- Добавлено --- См. приписку к пред. посту. Успехов.
Из Гугла В широком смысле слова — это все запросы, сделанные пользователем в конкретный период времени. В узком смысле «сессия» в веб-аналитике — это серия запросов или переходов с согласованной потребностью пользователя. В Google Аналитике используется понятие «веб-сеанс». Так от в моем представлении может сессия длится 365 дней и после закрытия браузера --- Добавлено --- Себе не хочет а другим советует , вот как раз ты и такой , сам себя так назвал переписка это подтверждает рассказывает учит как правильно а сам же и не хочет на этом правильно писать себе
Будешь борзеть, нах пошлю. Где я тебе советовал создавать стопудовый массив? Ты сам эту хрень придумал. Если потянуло поумничать, лучше разберись в элементарных вещах сам. А коли решил отнимать чужое время, относись с уважением и пытайся вникнуть в то, что тебе пишут. Успехов.
Я придумал сессию которую я увидел клю в куки хэш ключа в бд , Хэш выступает в качестве идентификатора записи, учитывая что у меня опыта мало я задал вопрос как можно решить кукок кода если 20 миллионов записей, не помещать их в массив и по ему искать же , может ещё как-то, ты не понял что происходит начала рассказывать как правильно , ну вот как правильно я считаю я уже придумал, осталось до ума довести , что и пытаюсь Нету как правильно главное чтобы логика была 9×5+5 или 10×5 желательно 10×5 так же проще но мы получаем один и тот же результат в обеих случаях, ну вот я выбрал путь 7×6+8
Реально не можешь мой пост в др. своей теме найти? В токене, который передается на клиент/приходит от клиента, объединяй id и ключ. Это объединение можешь дополнительно и на сервере хранить в отдельном поле, но обычно пакуют/распаковывают «на лету», а в отдельных полях хранят части. --- Добавлено --- Если хочешь разделять сессию между девайсами юзера, то ключ в БД нужно в открытом виде хранить, т.к. тебе понадобится его «распространять» на девайсы юзера.
Нету токена есть сеанс , забудь о токене это совсем другое , токен я свяжу с user_id во время входа после того как ввёл имя пользователя и парольа не изобретать свой велик , а так я решил что-то другое вот моя марка велика )) Ты вошёл первый раз на сайт у тебя нету не id ничего , есть только bin2hex(random_bytes(16)) в кукесах и хэш этой строки в бд , этим ты и завязал сеанс своего клиента с сервером и вот ты 30 миллионный какой-то пользователь теперь пришёл момент идентифицировать твой сеанс что ты это ты а не новый гость или чёрт который долбит куки пихает что попало туда, и тут я начал как может ещё можно оптимизировать мой код а не перебирать все 30кк в массиве , не факт что он и переберет , прелоадер грузится тебя ищет ну договатенько будет мне кажется даже с индексами))
Я выше написал, что здесь проще без сессий пыха обойтись. Не надо смешивать все в одну кучу. Анонимные юзеры не могут несколько своих девайсов объединить одной сессией. А вот id-шники у анонимных пользователей вполне могут быть, почему нет? В общем ладно. Будут конкретные вопросы, спрашивайте. --- Добавлено --- P.S. И, как уже писал, не пытайтесь анонимных сразу авторизовывать. Пускай тыкнут на какуй-нить кнопку сначала.
Конченый дебил всё таки , процетировал тебя пусть будет у меня бан создам новый акк , но я тебе объяснил уже как мог , на мобильном зелёном форуме вап мастеров тебе место там таких хватает кентуриков твоих , наверное знаешь этот форум, где за чирик порешают )))
Да кому ты нужен, чтобы модеры на тебя время тратили. Это только я могу по доброте душевной. Но всему есть предел Успехов.
Напиши мне о чём я тебе говорил пару часов и ты поймёшь что мы о разных вещах говорим , ты заучил как тебе сказали надо а я делаю как я хочу , нету как нада вот так правильно есть лучше вот так но можете и так )) --- Добавлено --- За то что пытаешься помочь спасибо. Хочешь кидай в ЛС телегу объясню как должно всю работать полностью в моем велосипеде, вроде знаний хватает это всё написать но всегда слушаю мнение других часто попадают люди которые показывают как лучше сделать моё правильно)))