Форум программистов, компьютерный форум, киберфорум
Наши страницы

PHP

Войти
Регистрация
Восстановить пароль
 
 
Лукаа
1 / 1 / 0
Регистрация: 21.12.2014
Сообщений: 195
#1

Сохранение сессий в базе - PHP

29.01.2015, 11:24. Просмотров 755. Ответов 17
Метки нет (Все метки)

Как сохранять сессии в базе MySQL? Хочу создать сессию, которая будет считать количество гостей, вот только результат хочу хранить в базе, как это реализовать, не подскажите?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2015, 11:24
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Сохранение сессий в базе (PHP):

Путь сессий - PHP
Здравствуйте уважаемые! Подскажите пожалуйста, если в php функция которая определяет откуда идет сессия? Просто у меня много php...

Срок сессий в PHP - PHP
Интересно, что происходит с сессиями после того, как пользователь не заходил долго на сайт. Серваку-то не поступает информация о том, что...

Запрет двух сессий с одного ip - PHP
Есть сайт с БД, в которой хранятся данные пользователей (имя, емейл, пасс и т.д.) Как сделать чтобы после входа в одну учетку, в другую с...

Нужно ли прятать папку куда сохраняются файлы сессий - PHP
Здравствуйте друзья. И снова я с вопросами о безопасности. В сети начитался о том что к файлам сайта можно обратиться с помощью скрипта...

Сохранение ссылки на фотографию в базе данных - PHP
Народ, помогите!!! НУЖНА ФОРМА ДЛЯ ЗАГРУЗКИ ФОТОГРАФИИ В ОПРЕДЕЛЕННУЮ ПАПКУ (ЭТО ВРОДЕПОНЯТНО) КАК СДЕЛАТЬ ЧТО БЫ ССЫЛКА (ПУТЬ) НА ЭТУ...

Безопасность сессий - PHP
Если в сессии хранить имя пользователя, ничего же страшного? Это не логин и не емайл.

17
Старец
13 / 13 / 5
Регистрация: 02.04.2014
Сообщений: 82
29.01.2015, 13:04 #2
Внести количество гостей в базу.
PHP
1
2
3
<?php
$countGuests = $_SESSION['countGuests'];
// В зависимости от инструментов для работы с базой данных и структуры таблицы, в которую нужно внести данные, составляем запрос INSERT INTO и т.д.
А если хотите обновлять это количество гостей в базе, по мере увеличения самих гостей, то отпадает смысл вообще использовать сессии. В общем, вы будете делать двойную работу, ради одной цели.
0
BuPy7
Нет ТЗ - давай досвидания
741 / 371 / 37
Регистрация: 01.12.2011
Сообщений: 2,245
29.01.2015, 13:22 #3
Старец, совсем не то вы написали.

Лукаа, вы должны сделать обёртку для $_SESSION. Если самому не хочется, то рекомендую zend-session https://packages.zendframework.com/ В небольшом проекте на Slim Framework я использовал его. Хотя, наверное, вы ничего не поймёте что там. Поэтому пишите свой велосипед, разбирайтесь. =)
0
Лукаа
1 / 1 / 0
Регистрация: 21.12.2014
Сообщений: 195
29.01.2015, 13:35  [ТС] #4
получается, я могу определить session как переменную и ее вставлять в базу?
0
BuPy7
Нет ТЗ - давай досвидания
741 / 371 / 37
Регистрация: 01.12.2011
Сообщений: 2,245
29.01.2015, 13:37 #5
Лукаа, $_SESSION это и есть переменная, которая обращается к файлу, с записанной вами информацией на сервере.
1
Старец
13 / 13 / 5
Регистрация: 02.04.2014
Сообщений: 82
29.01.2015, 15:04 #6
Простите, BuPy7, а что не "то" я написал и что "то" вы написали? Что писать и в чем разбираться?

Лукаа, как заметил BuPy7 $_SESSION и есть переменная, просто для комфортности поддержки скрипта я бы поместил её значение в переменную с "говорящим" названием, как в моем примере. А потом делаете с ней что захотите, хоть в базу её значение вносите. Смотря что конкретно Вам требуется сделать.
0
BarbosLV
363 / 401 / 119
Регистрация: 29.05.2014
Сообщений: 1,494
29.01.2015, 15:22 #7
Цитата Сообщение от Старец Посмотреть сообщение
Простите, BuPy7, а что не "то" я написал
Хрень ты написал.
Сессия по умолчанию не способна определить количество гостей. Что бы в сессионном массиве оказалось это самое количество его туда сначала надо внести.
Цитата Сообщение от Лукаа Посмотреть сообщение
Как сохранять сессии в базе MySQL? Хочу создать сессию, которая будет считать количество гостей, вот только результат хочу хранить в базе, как это реализовать, не подскажите?
НЕ ВОЗМОЖНО СОЗДАТЬ СЕССИЮ КОТОРАЯ БУДЕТ СЧИТАТЬ ХОТЬ ЧТО ЛИБО!!! В сессии можно хранить какие либо данные и извлекать их, но для начала их нужно туда положить! А положить можно только из БД. Соответственно вопрос лишён смысла.
0
Jodah
Эксперт PHP
2696 / 2368 / 845
Регистрация: 01.08.2012
Сообщений: 8,385
29.01.2015, 16:11 #8
Лукаа, не совсем ясна суть задачи. Вам нужно просто считать количество просмотров страницы? Тогда сессии здесь не нужны.
PHP
1
2
3
4
if(isset($_GET['product_id'])){
    $query = "UPDATE `products` SET views = views + 1 WHERE id = " . (int) $_GET['product_id'];
    mysql_query($query) or die(mysql_error());
}
0
Старец
13 / 13 / 5
Регистрация: 02.04.2014
Сообщений: 82
29.01.2015, 16:32 #9
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
BarbosLV, прочтите внимательно вопрос автора и хоть немножко пошевелите тем, что у вас имеется внутри вашего черепа.
Цитата Сообщение от Лукаа Посмотреть сообщение
Как сохранять сессии в базе MySQL? Хочу создать сессию, которая будет считать количество гостей, вот только результат хочу хранить в базе, как это реализовать, не подскажите?
Автор задает четкий вопрос о том, "как хранить сессии в базе данных" и уточняет, что это значение сессии будут динамическое. Я не слова не написал о том, что сессия "сама определяет количество гостей". Но по вашему посту видно, что вы не больше чем тролль, который сюда пришел не решать вопросы, а просто обсуждает комментарии, так что я не в обиде.

Добавлено через 5 минут
Цитата Сообщение от BarbosLV Посмотреть сообщение
В сессии можно хранить какие либо данные и извлекать их, но для начала их нужно туда положить! А положить можно только из БД. Соответственно вопрос лишён смысла.
И вот еще что, не обязательно в сессию что-либо класть только из базы данных, есть и другие источники откуда может придти информация и её с легкостью можно внести как значение глобальное переменной $_SESSION. Это так, для новичков информация, так что почитайте про сессии на досуге, чтобы в следующий раз вы смогли быть более полезны.

Добавлено через 6 минут
Jodah, помогло бы, только если бы счетчики уже были внесены в базу. Например при подсчете гостей на главной странице будут уже совсем другие запросы, так что, как вы и заметили, всё зависит от сути задачи. Потому что он может хочет просто раз в 6 часов вносить в базу количество посетителей и потом анализировать эту информацию.
0
BarbosLV
363 / 401 / 119
Регистрация: 29.05.2014
Сообщений: 1,494
29.01.2015, 17:12 #10
Цитата Сообщение от Старец Посмотреть сообщение
И вот еще что, не обязательно в сессию что-либо класть только из базы данных, есть и другие источники откуда может придти информация и её с легкостью можно внести как значение глобальное переменной $_SESSION. Это так, для новичков информация, так что почитайте про сессии на досуге, чтобы в следующий раз вы смогли быть более полезны.
Речь не идёт о чём либо, речь про количество гостей. А такую статистику можно получить только из БАЗЫ! И не важно какая это база: SQL текстовый файл, лог сервера либо ещё какая.
Это всё равно если бы ТС спросил:
Как из автомобиля отнести груз на склад? Хочу купить автомобиль, чтобы он создавал груз, вот только груз хочу хранить дома, как перенести груз домой?
И вот когда на такой вопрос отвечают в ключе:
Открой багажник авто => возьми груз => подними груз => передвигай ноги в сторону дома, пока в нём не окажешься => положи груз => вуаля твоя проблема решена.
Я называю это:
Цитата Сообщение от BarbosLV;
Хрень ты написал.
Человеку надо объяснить:
1)что автомобиль не генерирует груз!!!
2) что груз могут изначально привезти и разгрузить прямо ему домой.
3) автомобиль не предназначен для перевозки крупнотоннажных грузов.
0
Старец
13 / 13 / 5
Регистрация: 02.04.2014
Сообщений: 82
29.01.2015, 18:26 #11
BarbosLV, Вы просто придираетесь к сокращенному изложению мысли, и в этом случае необходимо проявить понимание и вникание в суть вопроса, для того, чтобы помочь решить озвученный вопрос, а не учить человека изложению мыли. Это его дело как он её излагает, и мое дело писать так как я хочу, а осуждать это - замечать свои недостатки в других.
Количество гостей можно получить не только из базы, можно подсчитать количество открытых сессий и на их основании выводить информацию о количество гостей. Ведь понятие "гость" относительное, сейчас он есть, а потом его нет или же "общее количество гостей когда-либо посетивших страницу", тогда проще будет назвать это "посещения", а они уже делятся на уникальность и так далее. А сессия "администратора" будет хранить эти данные и по необходимости мы будем отправлять их в базу.

Добавлено через 11 минут
Единственное это то, что я действительно не "то" написал. Нужно подсчитывать "посещения" не применяя сессий, как сказал Jodah. Главное - какие посещения будем считать или действительно нужны гости и тогда их нужно будет и добавлять и удалять из базы, если считаем только активных.
0
BarbosLV
363 / 401 / 119
Регистрация: 29.05.2014
Сообщений: 1,494
29.01.2015, 18:27 #12
Цитата Сообщение от Старец Посмотреть сообщение
Количество гостей можно получить не только из базы, можно подсчитать количество открытых сессий и на их основании выводить информацию о количество гостей.
Ну ка, НУ КА приведи в пример код.
0
Старец
13 / 13 / 5
Регистрация: 02.04.2014
Сообщений: 82
29.01.2015, 18:33 #13
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
function CountOpenedSessions() {
    $dir=opendir(session_save_path());
    $c=0;
    while($file=readdir($dir)){
        $arr[$c]=$file;
        ++$c;
    }
    closedir($dir);
    return count($arr);
}
 
echo CountOpenedSessions();
P.S. Пример не мой, не стал изобретать велосипед.
0
BarbosLV
363 / 401 / 119
Регистрация: 29.05.2014
Сообщений: 1,494
29.01.2015, 18:42 #14
В данном случае ты считываешь внешнии данные то бишь считаешь количество файлов в директории сессий. Чем это не БД? Если в скрипте данных нет, то ты вытягиваешь их с внешнего источника, это попадает под определение БД.
Цитата Сообщение от BarbosLV Посмотреть сообщение
И не важно какая это база: SQL, текстовый файл, лог сервера либо ещё какая.
0
Старец
13 / 13 / 5
Регистрация: 02.04.2014
Сообщений: 82
29.01.2015, 18:44 #15
Тем, что есть определенное понятие БД и относительное, в относительном смысле слова БД можно назвать любую сущность в нашем мире. В данном случае я не использую временную папку для сессий на сервере как БД. Но пользуюсь количеством файлов, которые в ней хранятся. То есть это место хранения файлов, а не данных о чем-либо, в широком смысле слова. А то снова придеретесь, что ОС это одна большая БД, которая хранит информацию информации о файлах с информацией.
0
29.01.2015, 18:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.01.2015, 18:44
Привет! Вот еще темы с ответами:

Безопасность сессий - PHP
Здравствуйте, Знаю что нужно проверять данные которые могут прийти от пользователя. Например нужно проверять данные куки...

Использование сессий в php - PHP
Всем привет. Я написал код регистрации, авторизации на php с использованием бд. Вот теперь стал вопрос над тем, чтобы после авторизации...

Время жизни сессий - PHP
Как установить время жизни сессии на условно-вечное? И надёжно ли это? И ещё: есть ли способ защитить сессию от удаления дополнительно?

Сохранение данных в базе - C#
Здравствуйте, пытаюсь сделать базу данных интерфейс для неё через C# и столкнулся с проблемой, что мои базы в C# не сохраняют данные,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru