Альфа где угодно: как я могу проверить, существуют ли куки? - PullRequest
0 голосов
/ 15 октября 2019

Я хочу проверить, существуют ли файлы cookie или нет. Поэтому я использую приведенный ниже код, полученный из документации A5.

dim _temp_cookie as c

        if Context.Request.HasCookie(_temp_cookie) then
            js = Context.Request.GetCookie(_temp_cookie)
        else
            dim newCookie as System::Web::HttpCookie = new System::Web::HttpCookie(_temp_cookie)
            sql = <<%sql%
                DECLARE @id INT
                DECLARE @tempin VARCHAR(14)
                EXEC dbo.bfcm_sp_create_order_pin @id = @id OUTPUT, 
                @tempin = @tempin OUTPUT;
                SELECT @tempin      
                %sql%

            conn.Execute(sql)
            rs = conn.ResultSet

            newCookie.HttpOnly = .t.
            newCookie.Value= rs.data(1)
            Context.Response.AppendCookie(newCookie)
            js = newCookie.Value
        end if

conn.Close()
e.javascript = "{Dialog.object}.setValue('tempid',"+js+");"

Я выполняю этот код на серверных событиях onDialogInitialize , но каждый раз, когда я обновляю страницу, я получаюновый номер куки. Что я понимаю в отношении файлов cookie, так это то, что их значение изменится только по истечении срока действия или если мы удалим файлы cookie в браузере. У меня есть оператор IF для проверки if context.request.Hascookie(_temp_cookie), но я думаю, что что-то не так в моем коде, что он читает else каждый раз, когда я обновляю страницу. Мне нужны глаза орла, чтобы проверить мой код.

1 Ответ

0 голосов
/ 15 октября 2019

Я забыл инициализировать _temp_cookie. Я объявил его типом c, но я должен сказать, что это пустая переменная. Проблема решена с помощью:

dim _temp_cookie as c = "_temp_cookie"

или имя может быть изменено на другое имя с кавычками " "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...