啊?使用ASP语言》?天啊,懂不懂啊

解决方案 »

  1.   

    ISAPI的Cookie不难,关键要掌握原理
      

  2.   

    BCB与Delphi中用ISAPI对Cookie的存取:
            [注:Delphi用 .代替BCB的->]    与JavaScript不同的是,ISAPI是运行在Web服务器端的程序,
    它也可以读取与存入Cookie变量:    假设处理用户提交的方法如下: 
    void __fastcall TWebModule1::WebModule1Action(TObject *Sender, 
    TWebRequest *Request, TWebResponse *Response, bool &Handled)     1>从客户机中读取Cookie:  
        Request->CookieFields是个串数组TStrings *,如果不为
    空,每一行都将是如下形式:
                    Cookie变量名=值
    共有Request->CookieFields->Count个变量,
    变量名为Request->CookieFields->Names[i];  (i>=0)
    Reauest->CookieFields->Values["变量名"]就是对应的值;
    请注意: 客户首次访问网页时,客户机中并不存在你将要设的
    Cookie变量,所以第一次Request->CookieFields将是空的;     2>将Cookie变量保存客户机中:
           TCookie *pNewCookie = Response->Cookies->Add();
           pNewCookie->Name="变量名1";
           pNewCookie->Value="值1";
           pNewCookie->Expires = Now()+366;  // 保存一年
    就可设定Cookie变量的新值,并不改变未作修改的原有其它变量;举一例:利用两个Cookie变量计数,并显示给用户,当向网页服务器提交
    .DLL后,每刷新一次浏览器,将看到计数值将变化一次:void __fastcall TWebModule1::WebModule1WebActionItem1Action(
          TObject *Sender, TWebRequest *Request, TWebResponse *Response,
          bool &Handled)
    {
         TStrings *cookies=Request->CookieFields;
         String oldvalue1=cookies->Values["count1"];  // 取count1旧值
         String oldvalue2=cookies->Values["count2"];     String newvalue1=oldvalue1.ToIntDef(0)+1;    // 算新值
         String newvalue2=oldvalue2.ToIntDef(0)+100;     TCookie *pNewCookie1 = Response->Cookies->Add();
         pNewCookie1->Name="count1";                 //更新Cookie
         pNewCookie1->Value=newvalue1;
         pNewCookie1->Expires = Now()+366;           // 保存一年     TCookie *pNewCookie2 = Response->Cookies->Add();
         pNewCookie2->Name="count2";                //更新Cookie   
         pNewCookie2->Value=newvalue2;
         pNewCookie2->Expires = Now()+31;           // 保存一月     // 向客户显示Cookie的值
         String h0="<html><head></head><body>";
         String h1="</body></html>";
         String s1="计数值1="+newvalue1+"<br>";
         String s2="计数值2="+newvalue2+"<br>";     Response->Content=h0+s1+"  <br>"+
                              s2+"  <br>"+ h1;
    }     
      

  3.   

    其实,Cookie很简单:投票时,客户第一次提交后,某一Cookie变量是不存在的,
    你在ISAPI中给它回送一个Cookie变量,若他第二次再投票,就可测试到上次的
    Cookie 变量了
       当然,这种办法也有问题,高手可以实现清除你的Cookie,再次提交,甚至
    编出象自动灌水机一样的自动投票机 
      

  4.   

    Request.CookieFields 中存放的是客户提交来的所有Cookie变量,
    实是个 Strings