如何检索' Expires' ASP cookie的属性?

时间:2016-04-24 16:48:26

标签: cookies vbscript asp-classic

我在ASP中创建了一个名为language的cookie,它被设置为字符串"VBScript"。我已将Expires属性附加到#May 1,2016#的值<% response.write("Cookie: " & Request.Cookies("language")) ' outputs 'VBScript' response.write("Expiration Date: " & Request.Cookies("language").Expires) ' possible line of error %> 。我能够检索cookie的值,但是我在检索到期日期时遇到了问题。这是ASP代码:

#include <stdio.h>

#define STRSIZE 20

/* Structure definitions   */
typedef struct {
        int     month,
                day,
                year;
} date_t;

typedef struct {
        double  capacity,
                current;
} tank_t;

typedef struct {
        char    make[STRSIZE],
                model[STRSIZE];
        int     odometer;
        date_t  manuf,
                purch;
        tank_t  tank;
} auto_t;

/* Function prototypes   */


/* 
int scan_date(date_t *date);
int scan_tank(tank_t *tank); 
*/

int scan_auto(auto_t *vehicle, FILE *inp); 

/*
void print_date(date_t date);
void print_tank(tank_t tank);
*/

void print_auto(auto_t vehicle); 

int main()
{
    auto_t      vehicle;
    int         number=0,
                i=0,
                status=1;

    FILE *inp = fopen("autos.txt","r");                /* defining file input    */

    /* Check to make sure input file is found and readable.  */
    if(inp==NULL){
        printf("Error: Input file - autos.txt - not found!\n");

        getch();
        return 0;
    }

    printf("Vehicle   Vehicle  Odometer  Date        Date          Tank       Current\n");
    printf("Make      Model    Reading   Purchased   Manufactured  Capacity   Fuel Level\n");
    printf("\n----------------------------------------------------------------------------\n\n");

 /*******************COMMENTED OUT*************************************
    while(status>0){
         status=fscanf(inp, "%s%s%d%d%d%d%d%d%d%lf%lf", vehicle.make,
                                                        vehicle.model,
                                                        &vehicle.odometer,
                                                        &vehicle.manuf.month,
                                                        &vehicle.manuf.day,
                                                        &vehicle.manuf.year,
                                                        &vehicle.purch.month,
                                                        &vehicle.purch.day,
                                                        &vehicle.purch.year,
                                                        &vehicle.tank.capacity,
                                                        &vehicle.tank.current);

    if(status==11){
         printf("%-10s%-9s%-10d%2d/%d/%-6d%2d/%d/%-8d%-11.1lf%.1lf\n", vehicle.make,
                                                                    vehicle.model,
                                                                    vehicle.odometer,
                                                                    vehicle.manuf.month,
                                                                    vehicle.manuf.day,
                                                                    vehicle.manuf.year,
                                                                    vehicle.purch.month,
                                                                    vehicle.purch.day,
                                                                    vehicle.purch.year,
                                                                    vehicle.tank.capacity,
                                                                    vehicle.tank.current);
         i++;}

     else if(status <11 && status>0){
         printf("\nInvalid Input - The next line of data is corrupt.\n");
     }                                              
     }                                                  
******************************************************************************/ 




    scan_auto(&vehicle, inp);
    print_auto(vehicle);

    /*

    print_auto(vehicle);


    */

    getch();
    return 0;
}

/*********************************************************************************/   
int scan_date(date_t *date)
{
    int result;

    result=scanf("%d%d%d", &(*date).month, 
                           &(*date).day,
                           &(*date).year);

    if (result==3)
        result=1;

    else if(result !=EOF)
        result=0;

    return (result);  

}    

/*********************************************************************************/   
double scan_tank(tank_t *tank)
{
    int result;

    result=scanf("%lf%lf", &(*tank).capacity, 
                           &(*tank).current);

    if (result==2)
        result=1;

    else if(result !=EOF)
        result=0;

    return (result);  

} 
/*********************************************************************************/
int scan_auto(auto_t *vehicle, FILE *inp)
{
    int result;

    result=fscanf(inp, "%s%s%d", (*vehicle).make, 
                                (*vehicle).model,
                                &(*vehicle).odometer);

    if (result==3)
        result=1;

    else if(result !=EOF)
        result=0;

    return (result);  

}
/*********************************************************************************/
void print_auto(auto_t vehicle)
{
    printf("%-10s%-9s%-10d", vehicle.make,
                             vehicle.model,
                             vehicle.odometer);
}     

当我运行此代码时,在cookie的值旁边,它显示“处理URL时出错”。请联系系统管理员。如果您是系统管理员,请单击此处以了解有关此错误的更多信息。&#39;这里&#39; part是微软网站的链接。我可以考虑删除可能的错误行,但有没有办法在这种情况下检索cookie的过期日期?

更新

删除可能的错误行&#39;刚刚删除了错误消息,只显示了cookie的值。

1 个答案:

答案 0 :(得分:2)

来自:Response.Cookies Collection

  

过期
  只写。 Cookie过期的日期。这个日期   必须设置,以便将Cookie存储在客户端的磁盘上   会议结束后。如果此属性未设置为超出日期   当前日期,Cookie会话结束时到期。

这是一个只写值,无法从中读取。

Request.Cookies集合没有名为Expires的密钥。