Sultan
1

Как можно заставить работать переменную Session?

15.03.2007, 15:41. Показов 2241. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как можно заставить работать переменную Session? Мне нужно что бы за каждым посетителем, который заполняет формы на разных страницах закреплялся уникальный номер. И при отправке конечной формы этот номер должен записываться в БД.
В конечной форме я ввел следующий элемент: <input type='hidden' name='OrderID' value='<%= Session('OrderID') %>'>

При отправке формы строка OrderID остается пустой. Как заставить переменную Session генерировать номер?
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.03.2007, 15:41
Ответы с готовыми решениями:

можно ли создать переменную Session из страницы .aspx, чтобы с ней можно было работать в .asp ?
можно ли создать переменную Session из страницы .aspx, чтобы с ней можно было работать в .asp ?

Как прекратить Session переменную?
Можно ли прекратить принудительно конкретную Session переменную? Например имеется SessionID:...

Как зашпандорить в переменную Session?
Как зашпандорить в переменную Session некое значение при событии на странице, т.е &lt;SELECT...

Как создать переменную Session в JS ?
Kak sdelat' 4tob JS uznaval peremennie Session iz ASP ?

12
0 / 2 / 3
Регистрация: 27.03.2012
15.03.2007, 15:44 2
Все формы записывают в БД или только последняя?
0
Sultan
15.03.2007, 15:55 3
Скажем так, существует страницы 1.asp, 2.asp, 3.asp. В 1.asp есть форма, которая передает значения 2.asp. В 2.asp в свою очередь записи из БД таблицы №1. Записи залинкованы на 3.asp. После клика на определенную запись ее значения прикрепляются к значениям из формы 1.asp и отправляются по УРЛ в 3.asp. В итоге из двух предыдущих страниц я собрал значения в строке УРЛ. После этого я вытаскиваю типом hidden в форму и все вместе отправляю в БД - таблицу №2.
В том числе с вышеприведенной строкой OrderID.
0 / 2 / 3
Регистрация: 27.03.2012
15.03.2007, 16:45 4
Ну так зачем тебе вообще генерировать OrderID? Им может быть ID записи в таблице БД... Если это Access к примеру, то он делает по-умолч. первое поле ID-'cчетчик', первичный ключ. Номер заказа и будет значение этого поля.
0
0 / 0 / 0
Регистрация: 07.11.2006
Сообщений: 15
15.03.2007, 16:55 5
Знаешь... может мне просто показалось, но ты немного не понимаешь что такое объект Session... он всего лишь определяет область храниения переменных, если ты сам в него чего-нибудь не положишь, то нечего не сможешь вывести...
Тебе либо его нжно самому генерировать, либо воспользоваться свойством объекта SessionID.
Но это тебе не гарантирует уникальности.
0
Sultan
15.03.2007, 17:03 6
Запись ID в таблице мне не очень подходит, а вот что касается Session, то Фох прав, я только сейчас узнал, что этот объект не генерирует данные. Тогда подскажите мне как можно сгенерировать данные (которые, как я понял, потом можно хранить в объекте Session, пока посетитель не покинет страницы сайта)? Каким образом использовать объект SessionID?
PS Напоминаю: я не программер, я только учусь
Sultan
15.03.2007, 17:06 7
...да, еще забыл добавить, данные обязательно должны быть уникальными, иначе теряется смысл затеи...
0 / 0 / 0
Регистрация: 07.11.2006
Сообщений: 15
15.03.2007, 17:21 8
Ну твой пример нужно вот так вот изменить...
<input type='hidden' name='OrderID' value='<%= Session.SessionID %>'>
Это свойство генерируется web-сервером... и после его перезапуска обнуляется. А сгенерировать уникальное значение вне базы данных без проверкиуже существующих в ней значений я не вижу никаких путей... Проще чтобы база данных сама этим занималась..
0
Sultan
15.03.2007, 17:30 9
Спасибо большое Фох!
0 / 0 / 0
Регистрация: 19.03.2007
Сообщений: 15
19.03.2007, 14:05 10
Привет !
Уникальный Id можно сделать так :

первые цифры ID состовояет дата на сервере включая минуты.
Например
200101231746
,плюс еще
добавляешь
число рнд к тому что есть
например 3245
в итоге получается
2001012317463245

Пример на асп
data=replace(now,chr(32),'')
data=replace(data,'.','')
data=replace(data,':','')
randomize
rand=rnd
rand=replace(rand,',','')
rand=replace(rand,'E-','')
temp_id=data&rand

здесь нужное уникальное значение переменная
temp_id

PS можно для пущей неповторимости еше ip втыкнуть
0
Sultan
19.03.2007, 17:17 11
Пожалуй, Dim прав, дата и плюс еще какое-нибудь значение и уникальность обеспечена. Я вот тут попробовал Session.SessionID у меня генерируется какое-то цифровое значение. Причем на дату это не похоже. Кто мне объяснит каким образом Session.SessionID генерирует значения? На основе чего?
Sergik
19.03.2007, 17:32 12
Когда пользователь первый раз выполняет запрос ASP страницы, т.е. начинает свою сессию, то, чтобы отличать его от других, ему присваивается SessionID, присваивается он так, что пользователя, чья сессия с таким же ID нету. Т.е. после того, как твоя сессия закончилась, твой старый номер может быть легко присвоен очередному пользователю, так что для уникального значения SessionID не подходит.
Sultan
19.03.2007, 17:52 13
Понятно, спасибочки. Значит получается самый лучший способ сгенерировать уникальное значение - это приписать к дате Сессию.

time = Str(Now)
time = Replace(time, '/', '')
time = Replace(time, '.', '')
time = Replace(time, ':', '')
time = Replace(time, ' ', '')
UnID = Session.SessionID&time
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.03.2007, 17:52
Помогаю со студенческими работами здесь

как работать с session
Подскажите что не так делаю. В Page_Load делаю Session.Add(&quot;1&quot;, &quot;1&quot;); затем в Button_Click ...

Как перезаписать переменную в сессию при переходе на некоторые из страниц на Session('Town')=2 ?
Вечер добрый! Если я прописываю Session('Town')=1 в global.asa, т.е. для большинства страниц...

Что твориться с сессиями ? (strListingID = Session('ListingID'); strAccountID = Session('AccountID'); strActive = Session('Active'); )
-----------------------page1.asp-------------------------- Basicrs =...

Почему session('aaa') обнуляется при session.Abandon, а session.sessionid остается таким же ?
Народ помогите &lt;% response.write(session.sessionid) response.write(session('aaa'))...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru