Sultan
|
|
1 | |
Как можно заставить работать переменную Session?15.03.2007, 15:41. Показов 2241. Ответов 12
Метки нет Все метки)
(
Как можно заставить работать переменную Session? Мне нужно что бы за каждым посетителем, который заполняет формы на разных страницах закреплялся уникальный номер. И при отправке конечной формы этот номер должен записываться в БД.
В конечной форме я ввел следующий элемент: <input type='hidden' name='OrderID' value='<%= Session('OrderID') %>'> При отправке формы строка OrderID остается пустой. Как заставить переменную Session генерировать номер? |
|
15.03.2007, 15:41 | |
Ответы с готовыми решениями:
12
можно ли создать переменную Session из страницы .aspx, чтобы с ней можно было работать в .asp ? Как прекратить Session переменную? Как зашпандорить в переменную Session? Как создать переменную Session в JS ? |
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 |
19.03.2007, 17:52 | |
Помогаю со студенческими работами здесь
13
как работать с session Как перезаписать переменную в сессию при переходе на некоторые из страниц на Session('Town')=2 ? Что твориться с сессиями ? (strListingID = Session('ListingID'); strAccountID = Session('AccountID'); strActive = Session('Active'); ) Почему session('aaa') обнуляется при session.Abandon, а session.sessionid остается таким же ? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |