САМОУЧИТЕЛЬ PHP 4

         

Пример программы для работы с Cookies - часть 3


    printf("Set-cookie: cook=%s; "

           "expires=Friday,31-Dec-01 23:59:59 GMT", Buf);

    // Òåïåðü ýòî — íîâîå çíà÷åíèå Cookie

    Cook=Buf;

  }

// âûâîäèì ñòðàíèöó ñ ôîðìîé

  printf("Content-type: text/html\n\n");

  printf("<html><body>\n");

// åñëè èìÿ çàäàíî (íå ïóñòàÿ ñòðîêà), ïðèâåòñòâèå

  if(strcmp(Cook, ""))

    printf("<h1>Ïðèâåò, %s!</h1>\n",Cook);

// ïðîäîëæàåì

  printf("<form action=/cgi-bin/script.cgi method=get>\n");

  printf("Âàøå èìÿ: ");

  printf("<input type=text name=name value=’%s’>\n",Cook);

  printf("<input type=submit value=’Îòïðàâèòü’>\n");

  printf("</form>\n");

  printf("</body></html>");

}

Теперь при первом заходе на этот URL пользователь получит форму с пустым полем для ввода имени. Если он что-то туда напечатает и нажмет кнопку отправки, его информация запомнится браузером. Итак, посетив в любое время до 31 декабря 2001 года этот же URL, он увидит то, что напечатал давным-давно в текстовом поле. И, что самое важное, — его информацию "увидит" также и сценарий. Кстати, у злоумышленника нет никаких шансов получить значение Cookie посетителя, потому что оно хранится у него на компьютере, а не на сервере.

И опять я намекаю на то, что использование Си и на этот раз довольно затруднительно. Неудобно URL-декодировать и кодировать при установке Cookies, накладно разбирать их на части, да и вообще наша простая программа получилась слишком длинной. Не правда ли, приятно будет обнаружить, что в PHP все это реализовано автоматически: для работы с Cookies существует всего одна универсальная функция SetCookie(), а получение Cookies от браузера вообще не вызовет никаких проблем, потому что оно ничем не отличается от получения данных формы. Это логично. В самом деле, какая нам разница, какие данные пришли из формы, а какие — из Cookies? С точки зрения сценария — все равно...

Но не буду забегать вперед. Займемся пока теорией авторизации.




Содержание  Назад  Вперед






Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий