Asp phpsessid непостижимость court - IT Новости
Progress28.ru

IT Новости


09ae9cb0
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Asp phpsessid непостижимость court

Asp phpsess >

Объект Session может быть использован для хранения сведений о сеансе конкретного пользователя. Переменные, хранимые в объекте Session, не уничтожаются при переходе пользователя с одной страницы приложения на другую; значения этих переменных сохраняются на протяжении всего времени сеанса пользователя.

Веб-сервер автоматически создает объект Session, когда веб-страница из приложения запрашивается пользователем, еще не начавшим сеанс. Сервер уничтожает объект Session по истечению срока действия сеанса или при завершении сеанса.

Наиболее часто объект Session используется для хранения предпочтений пользователя. Например, если пользователь показывает, что он не хочет просматривать графику, эти сведения могут быть сохранены в объекте Session. Дополнительные сведения об использовании объекта Session см. в подразделе Управление сеансами раздела «Приложения ASP».

Примечание. Состояние сеанса сохраняется только для обозревателей, поддерживающих модули настройки.

Синтаксис

Семейства

ContentsСодержит элементы, добавленные к сеансу командами сценария.
StaticObjectsСодержит объекты, созданные с помощью тега и имеющие сеанс областью определения.

Свойства

CodePageКодовая страница, используемая для сопоставления символов.
LCIDЛокальный идентификатор.
SessionIDВозвращает идентификатор сеанса для пользователя.
TimeoutВремя ожидания для состояния сеанса данного приложения (в минутах).

Методы

AbandonЭтот метод уничтожает объект Session и освобождает его ресурсы.
Contents.RemoveЭтот метод удаляет элемент из семейства Contents.
Contents.RemoveAllЭтот метод удаляет все элементы из семейства Contents.

События

Сценарии для всех перечисленных выше событий описываются в файле Global.asa.

Дополнительные сведения об этих событиях и файле Global.asa см. в Справочнике Global.asa.

Примечания

Можно хранить значения в объекте Session. Сведения, хранимые в объекте Session, доступны во время сеанса и имеют сеанс в качестве области определения. Приведенный ниже сценарий демонстрирует хранение двух типов переменных.

Однако если объект хранится в объекте Session и основным языком сценария является VBScript, необходимо использовать ключевое слово Set. Это иллюстрируется приведенным ниже сценарием.

На последующих веб-страницах можно использовать методы и свойства, присущие MyComponent.class1 , используя приведенную ниже синтаксическую конструкцию.

Или извлекая локальную копию объекта и используя приведенный ниже фрагмент сценария.

Set MyLocalObj1 = Session(«Obj1»)

Другой способ создания объекта, имеющего в качестве области определения приложение, состоит в использовании тегов в файле Global.asa.

Встроенные объекты, однако, не могут быть сохранены в объекте Session. Например, каждая из приведенных ниже строк будет возвращать ошибку.

Set Session(«var1») = Session

Set Session(«var2») = Request

Set Session(«var3») = Response

Set Session(«var4») = Server

Set Session(«var5») = Application

Перед сохранением объекта в объекте Session следует узнать потоковую модель, используемую им. Только объекты, имеющие двойную потоковую модель, могут быть сохранены в объекте Session, не замыкая сеанс в один поток. Дополнительные сведения см. в пакете SDK операционной системы.

Если массив хранится в объекте Session, не следует пытаться непосредственно изменить элементы хранимого массива. Например, следующий сценарий не будет работать:

Это происходит из-за того, что объект Session реализован как семейство. Элемент массива StoredArray(3) не получает нового значения. Вместо этого значение индексируется в семействе, перезаписывая любую информацию, хранящуюся в этом месте.

При хранении массива в объекте Session настоятельно рекомендуется извлекать копию массива перед извлечением или изменением любых элементов массива. Когда изменение массива закончено, следует снова сохранить массив в объекте Session, чтобы сохранить все внесенные изменения. Это показано в приведенном ниже примере:

‘Creating and initializing the array

MyArray(1) = «some other string»

‘Storing the array in the Session object.

‘Retrieving the array from the Session Object

‘and modifying its second element.

‘Printing out the string «hello there.»

‘Re-storing the array in the Session object.

‘This overwrites the values in StoredArray with the new values.

Пример

Приведенная ниже программа назначает строку MyName переменной сеанса name , назначает значение переменной сеанса year и назначает экземпляр компонента some.Obj переменной с именем myObj .

Set Session(«myObj») = Server.CreateObject(«someObj»)

Дополнительные сведения см. в разделе Управление сеансами.

I’ve started ASP a few months ago, having come from a few years of PHP.

In PHP, I used a combination of cookies PHP sessions, cookies and storing the Session ID in the database.

When a person logs in, the Session Id is written to the cookie and saved in a column in the database. If the person logs off, the cookie is deleted, if the person forgets, that’s okay since the cookie only lives for 72 hours.

Upon visiting the site, I check for a cookie. If it exists, I see if the Session ID exists in the database. If so, we have a match and the person can continue their session. If no match the cookie is deleted, as it was probably forgery.

If no cookie, the person must login. An old value for Session ID stored in the database is simply updated.

Now, with ASP, it seems there are more options. From this article: http://msdn.microsoft.com/en-us/library/ms178581.aspx

I’ll probably stick to my Session+cookie+database system for now, but what of these other things mentioned here? They seem mysterious to me. Is a further combination possible to make things even more secure, or would that just be overkill?

Читать еще:  Productinfo php id c

My main concern is that possible, the system of Session+Cookie+Database which I use, might have a flaw in it.

2 Answers 2

We use DNN (ASP based CMS) and develop modules. We use ViewState a lot for storing little things, like row id’s. View state doesn’t require that cookies are enabled on the browser, but for large objects like datasets, reading and writing and transferring can get heavy. So we store the row id and requery the table when the postback happens.

The query string is really the thing when you are directing users between different pages. For the most part, we are encrypting this now with a utility built into DNN. I would recommend that to stop users that tweak the query string for kicks.

Caching is your scalability thing. It takes a bit more programming work (you always have to be ready to reload), and using it too much puts a memory load on your IIS server, but for data lists that are used a lot, it can really speed things up. I rarely use it for user-specific data.

All in all, these constructs are heavier than you are used to in php, but they will make your programming life much easier.

Using Session (either in memory or via a database) and Cookies for handling and persisting authentication and user details is usually the standard approach in an ASP.NET website.

Application state and Caching provide similar functionality in that it allows you to store data that is accessible to the whole application, not just a specific session, at any time however Caching is the preferred approach as it give you some extra features that allows you to control when the data is refreshed via the CacheDependency object and prioritise its lifetime in the event of memory running low. If you have some data that is expensive to retrieve from a database and relevant to all users of your site then you would store it here i.e. a list of values for a drop down list.

Viewstate persists page data between requests and is typically used to hold your web control values however custom values can be added if desired and relevant. The caveat with this is that these values are encrypted and sent a part of the page response and returned via the request to this can add a large amount of overhead to your page size if you are not careful.

Нередко для обработки запроса требуется информация о контексте запроса: какой у пользователя браузер, ip-адрес, с какой страницы или сайта пользователь попал к нам. И ASP.NET MVC позволяет получить всю эту информацию, используя объект HttpContext.

Хотя в контроллере мы также можем обратиться к объекту ControllerContext , который имеет свойство HttpContext и по сути предоставляет доступ к той же функциональности и информации. Но в то же время между ними есть некоторые различия. Объект HttpContext описывает данные конкретного http-запроса, который обрабатывается приложением. А ControllerContext описывает данные http-запроса непосредственно по отношению к данному контроллеру.

Вся информация о контексте запроса доступна нам через свойства объекта HttpContext. Так, все данные запроса содержится в свойстве Request . HttpContext.Request представляет объект класса, унаследованного от HttpRequestBase , и поэтому содержит все его свойства. Рассмотрим некоторые из них:

Получение браузера пользователя: HttpContext.Request.Browser

Иногда просто браузера недостаточно, тогда можно обратиться к агенту пользователя: HttpContext.Request.UserAgent

Получение url запроса: HttpContext.Request.RawUrl

Получение IP-адреса пользователя: HttpContext.Request.UserHostAddress

Получение реферера: HttpContext.Request.UrlReferrer == null ? «» : HttpContext.Request.UrlReferrer.AbsoluteUri Так как реферер может быть не определен, то сначала смотрим, не равен ли он null

Отправка ответа

Если HttpContext.Request содержит информацию о запросе, то свойство HttpContext.Response управляет ответом. Оно представляет объект HttpResponse , который передает на сторону клиента некоторые значения: куки, служебные заголовки, сам ответ в виде кода html. Например, установим кодировку ответа: HttpContext.Response.Charset = «iso-8859-2»;

Методы объекта HttpResponse позволяют управлять ответом. Например, метод AddHeader позволяет добавить к ответу дополнительный заголовок.

Кроме того, нам необязательно вызывать метод View в действия контроллера, чтобы отправить клиенту ответ запроса. Мы вполне можем воспользоваться методом HttpContext.Response.Write :

Метод HttpContext.Response.Write здесь добавляет в поток определенное содержимое, переданное в качестве параметра. Но в реальности, конечно, проще использовать методы, генерирующие объекты ActionResult, например, представления.

Определение пользователя

Также объект HttpContext содержит информацию о пользователе в свойстве HttpContext.User :

Подробнее об идентификации пользователя можно узнать в главе про аутентификацию и авторизацию.

Работа с куки

Чтобы получить куки, нам надо воспользоваться свойством HttpContext.Request.Cookies :

В данном случае, если у нас установлена на стороне клиента куки «id», то мы получим ее значение.

Однако прежде чем получать значения куки, их естественно надо установить. Для установки значения куки мы можем использовать свойство HttpContext.Response . Например, установим в куки значение «id»:

Сессии

Сессии также, как и куки, используются для хранения некоторых данных, которые можно получить в любом месте приложения. Для работы с ними используется объект Session . Например, установим в одном методе контроллера мы можем установить значение сессии:

Читать еще:  Защита ввода с клавиатуры

А получить можно в другом методе:

Если мы хотим удалить значение сессии для ключа name, мы можем просто присвоить значение null: Session[«name»]=null;

Asp phpsessid непостижимость court

Здесь могла бы быть ваша реклама

Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006
Откуда: Israel

Секрет
Теперь, когда вы уже наверняка второпях отправили свой запрос,
я расскажу вам простой секрет, который сэкономит вам уйму ожиданий,
даже если первый ответ по теме последуем сразу же.

Само собой я знаю что ответят мне тут же, и если я посмотрю
на сообщения на форуме, то пойму что в общем то я и не ошибаюсь.
Но еще я точно замечу, что очень мало тем, в которых всего два ответа :
вопрос автора и еще два сообщение вида Ответ + Спасибо

После этого приходится начинать уточнять этим неграмотным что мне надо.
Они что, сами читать не умеют? А уточнять приходится.
И иногда пока они переварят то что я им скажу проходит и не одна ночь..

Уверен что если бы я им сказал что у меня есть
фиолетовый квадрат, и нужно превратить его в синий треугольник
и я пытался взять кисточку, макнуть в банку и поводить ей по квадрату
но почему то кисточка не принимала цвет краски в банке,
то на мой вопрос — где взять правильные банки мне бы ответили гораздо быстрее
предложив её открыть, а не тратить еще стольник на жестянку.

Поэтому с тех пор я строю свои вопросы по проверенной давным давно схеме:
Что есть
Что нужно получить
Как я пытался
Почему или что у меня не получилось.

На последок как оно происходит на форумах

Новичок: Подскажите пожалуста самый крепкий сорт дерева! Весь инет перерыл, поиском пользовался!
Старожил: Объясни, зачем тебе понадобилось дерево? Сейчас оно в строительстве практически не используется.
Новичок: Я небоскрёб собираюсь строить. Хочу узнать, из какого дерева делать перекрытия между этажами!
Старожил: Какое дерево? Ты вообще соображаешь, что говоришь?
Новичок: Чем мне нравиться этот форум — из двух ответов ниодного конкретного. Одни вопросы неподелу!
Старожил: Не нравится — тебя здесь никто не держит. Но если ты не соображаешь, что из дерева небоскрёбы не строят, то лучше бы тебе сначала школу закончить.
Новичок: Не знаите — лучше молчите! У меня дедушка в деревянном доме живёт! У НЕГО НИЧЕГО НЕ ЛОМАЕТСЯ.
Но у него дом из сосны, а я понимаю, что для небоскрёба нужно дерево прочнее! Поэтому и спрашиваю. А от вас нормального ответа недождёшся.
Прохожий: Самое крепкое дерево — дуб. Вот тебе технология вымачивания дуба в солёной воде, она придаёт дубу особую прочность:
Новичок: Спасибо, братан! То что нужно.

Отредактировано модератором: Uchkuma, 26 Апреля, 2011 — 10:21:12

ASP — Объект Session

Объект Session может быть использован для хранения сведений о сеансе конкретного пользователя. Переменные, хранимые в объекте Session, не уничтожаются при переходе пользователя с одной страницы приложения на другую; значения этих переменных сохраняются на протяжении всего времени сеанса пользователя.

Веб-сервер автоматически создает объект Session, когда веб-страница из приложения запрашивается пользователем, еще не начавшим сеанс. Сервер уничтожает объект Session по истечению срока действия сеанса или при завершении сеанса.

Наиболее часто объект Session используется для хранения предпочтений пользователя. Например, если пользователь показывает, что он не хочет просматривать графику, эти сведения могут быть сохранены в объекте Session. Дополнительные сведения об использовании объекта Session см. в подразделе Управление сеансами раздела «Приложения ASP».

Примечание. Состояние сеанса сохраняется только для обозревателей, поддерживающих модули настройки.

Синтаксис

Семейства

ContentsСодержит элементы, добавленные к сеансу командами сценария.
StaticObjectsСодержит объекты, созданные с помощью тега и имеющие сеанс областью определения.

Свойства

CodePageКодовая страница, используемая для сопоставления символов.
LCIDЛокальный идентификатор.
SessionIDВозвращает идентификатор сеанса для пользователя.
TimeoutВремя ожидания для состояния сеанса данного приложения (в минутах).

Методы

AbandonЭтот метод уничтожает объект Session и освобождает его ресурсы.
Contents.RemoveЭтот метод удаляет элемент из семейства Contents.
Contents.RemoveAllЭтот метод удаляет все элементы из семейства Contents.

События

Сценарии для всех перечисленных выше событий описываются в файле Global.asa.

Дополнительные сведения об этих событиях и файле Global.asa см. в Справочнике Global.asa.

Примечания

Можно хранить значения в объекте Session. Сведения, хранимые в объекте Session, доступны во время сеанса и имеют сеанс в качестве области определения. Приведенный ниже сценарий демонстрирует хранение двух типов переменных.

Однако если объект хранится в объекте Session и основным языком сценария является VBScript, необходимо использовать ключевое слово Set. Это иллюстрируется приведенным ниже сценарием.

На последующих веб-страницах можно использовать методы и свойства, присущие MyComponent.class1 , используя приведенную ниже синтаксическую конструкцию.

Или извлекая локальную копию объекта и используя приведенный ниже фрагмент сценария.

Set MyLocalObj1 = Session(«Obj1»)

Другой способ создания объекта, имеющего в качестве области определения приложение, состоит в использовании тегов в файле Global.asa.

Читать еще:  Ldap search php

Встроенные объекты, однако, не могут быть сохранены в объекте Session. Например, каждая из приведенных ниже строк будет возвращать ошибку.

Set Session(«var1») = Session

Set Session(«var2») = Request

Set Session(«var3») = Response

Set Session(«var4») = Server

Set Session(«var5») = Application

Перед сохранением объекта в объекте Session следует узнать потоковую модель, используемую им. Только объекты, имеющие двойную потоковую модель, могут быть сохранены в объекте Session, не замыкая сеанс в один поток. Дополнительные сведения см. в пакете SDK операционной системы.

Если массив хранится в объекте Session, не следует пытаться непосредственно изменить элементы хранимого массива. Например, следующий сценарий не будет работать:

Это происходит из-за того, что объект Session реализован как семейство. Элемент массива StoredArray(3) не получает нового значения. Вместо этого значение индексируется в семействе, перезаписывая любую информацию, хранящуюся в этом месте.

При хранении массива в объекте Session настоятельно рекомендуется извлекать копию массива перед извлечением или изменением любых элементов массива. Когда изменение массива закончено, следует снова сохранить массив в объекте Session, чтобы сохранить все внесенные изменения. Это показано в приведенном ниже примере:

‘Creating and initializing the array

MyArray(1) = «some other string»

‘Storing the array in the Session object.

‘Retrieving the array from the Session Object

‘and modifying its second element.

‘Printing out the string «hello there.»

‘Re-storing the array in the Session object.

‘This overwrites the values in StoredArray with the new values.

Пример

Приведенная ниже программа назначает строку MyName переменной сеанса name , назначает значение переменной сеанса year и назначает экземпляр компонента some.Obj переменной с именем myObj .

Set Session(«myObj») = Server.CreateObject(«someObj»)

Дополнительные сведения см. в разделе Управление сеансами.

if( isset($_SESSION[‘logget_user’]) ) не работает

Тема в разделе «PHP для новичков», создана пользователем gryllus, 26 окт 2017 .

. здесь вроде всё работает.

«Долго ли ждать перемен к лучшему? — Если ждать — то долго!»

Так работает или не работает?
И зачем каждую строку в предыдущем коде оборачивать в php-теги?

Не знаю это у автора было я в php очень не силён. пока(надеюсь).

С поправочкой, что это работает только в php 7+.
Как раз будет повод перейти, если еще не сделал этого

13:40.
Чтобы не мучиться с проверкой мы просто поставим собачку @.
— Добавлено —
$data = $_POST;

зачем создавать новую переменную когда существует ГЛОБАЛЬНАЯ переменная с входными пост данными ?

ну и session_start() никто не отменял, кроме автора поста

session_start() присутствует в файле db.php)))

. не могу с вами не согласиться, что ГОВНО! И что перепечатываю ХЗ — тоже согласен. Многие говорят, что это не так, это не эдак. Вам всем легко говорить, так как вы с опытом. И для вас — это тема общения. В школе все с прописи палочек начинали, а потом буквы.
Мне чем-то напоминает высказывания Навального, критики много, но при этом сам ни чего не предлагает одним словом всех абасрал, да да именно абасрал, а самого спросили какой он выход видит — «#».
Посоветуйте мне кто-нибудь как мне регистрацию написать, самому хотя бы для начала самую простую. Изучая при этом сам язык php. Если я даже не знаю как правильно вопрос задать(((. Подскажите пожалуйста господа программисты. Как писать регистрацию и понимать то, как пишешь и для чего пишешь, и, что делаешь, как это работает.

С Наилучшими пожеланиями.

«Там, где кончается терпение, начинается выносливость.»

еще внимательность никто не отменял:
$_SESSION[‘logged_user’] и $_SESSION[‘logget_user’]

Спасибо огромное! Всё равно не работает, ну и хрен, с ним. Буду стараться сам писать регистрацию.

Кто даст полезный совет спасибо большое.

почитай про отладку . выводи в начале print_r($_SESSION); хоть увидишь чего у тебя там творится

. в начале чего, извините и где увижу)))

«Если ты ненавидишь — значит тебя победили.»

Для начала изучить основы PHP. Изучить, а не на видео посмотреть на них. Понять, как работают сессии. Понять, как работает БД.
Потом, на листочке, карандашом ли, ручкой ли, попытаться описать алгоритм. Просто русским языком.

Сначала абстрактно:
1) Человек открыл страницу.
2) Человек ввел данные в форму.
3) Человек нажал кнопку.
4) Произошла регистрация.

Потом подробнее расписать каждый пункт. Ведь он состоит еще из пачки подзадач.
Потом еще каждую подзадачу расписать для себя. Что, куда, как. Черкать, пересматривать, рисовать кружочки, стрелочки для себя, если так удобнее.

В конечном счете ты получишь большой список простейших действий, которые надо реализовать. А в сумме они будут решать Одно Сложное Дело.

По мере набирания опыта сможешь держать все больше и больше в голове и будешь все меньше брать в руки листочек. Это само придет. Не надо форсировать. Все, что не можешь в мозгу удержать или построить, выноси оттуда на бумагу или в текстовый файлик, куда угодно. Проверено, работает.

Это научит тебя правильно думать.

Все так делали или делают. И я, в том числе, когда сталкиваюсь с чем-то новым для себя, или слишком сложным, чтобы сходу правильно структурировать в голове.

Ссылка на основную публикацию