им заголовок для создания cookie
printf("Content-type: text/html\r\n");
printf(szCookieHeader);
// Выводим приглашение для первого посещения
printf("Cookie
demo");
printf("Welcome to our page!");
}
else
{
// Получаем значение параметра cookie
// с именем AgainCount
pszMyCookie = findCookie("AgainCount");
if(pszMyCookie != NULL)
{
// Преобразуем это значение в число и увеличиваем
// на единицу при каждом посещении
nCount = atoi(pszMyCookie);
nCount++;
sprintf(szBuf1, "%d", nCount);
// Выводим заголовок для обновления cookie
printf("Content-type: text/html\r\n");
strcpy(szBuf, "Set-Cookie: AgainCount=");
strcat(szBuf, szBuf1);
strcat(szBuf, ";\r\nContent-type: text/html\r\n\r\n");
printf(szBuf);
// Выводим приглашение для повторных посещений
printf("Welcome to our page AGAIN!");
// Выводим счетчик посещений
printf("Access count: %s",szBuf1);
// Вставляем документ HTML с текстом сценария
// JavaScript, который тоже работает с cookie
insertHTML("script.ht", szBuf);
printf(szBuf);
}
}
}
// Удаление cookie
else if(!strcmp(pszQueryString, "clear"))
{
// Выводим заголовок для удаления cookie
printf("Content-type: text/html\r\n");
printf(szCookieRemoveHeader);
// Выводим сообщение об успешном удалении cookie
printf(" Cookie demo");
printf("Cookie Removed");
}
printf("");
}
// -----------------------------------------------
// findCookie
// Получение значение параметра cookie по его
// имени
// -----------------------------------------------
char *findCookie(char * szName)
{
char * pszCookie;
char * pszBegin;
char * pszEnd;
char szBuf[4096];
// Получаем текстовую строку cookie
pszCookie = getenv("HTTP_COOKIE");
if(pszCookie != NULL)
{
// Копируем ее в рабочий буфер
strcpy(szBuf, pszCookie);
// Ищем в строке имя параметра
pszBegin = strstr(szBuf, szName);
if(pszBegin == NULL)
return NULL;
else
{
// Пропускаем символ равенства
pszBegin += strlen(szName) + 1;
// Ищем символ ; и заменяем его на
// двоичный нуль
pszEnd = strstr(pszBegin, ";");
if(pszEnd != NULL)
*pszEnd = 0;
// Возвр
|