开发Web应用程序中Cookie使用的问题
问:我想在一个actionitem中增加cookie,然后sendredirect到另一个actionitem在那里验证cookie,有cookie这显示一个页面,否则返回。但我发现增加完cookie后,如果马上sendredirect则另一个actionitem取不到cookie值(说明cookie增加不成功),若不马上sendredirect而是response.content:=某一页面内容,然后用户点击连结到另一actionitem则可以成功读出cookie。
答:cookie是一个response的头(header)部分,必须在正文之前设置。如果用sendredirect,只有新页面才会传送,sendredirect之前设置的response会取消,导致cookie不能加到新页面的头部分,所以设置cookie不成功!解决办法是:永远不要在设置cookie后再用sendredirect。你所说的问题可以这样解决:在html中可以加入代码自动转到另外一个页面,我们可以在webactionitem的onaction事件中写入:
response.content:=<meta http-equiv="refresh" content="1;+
url=http://chen/dll/chat/chatmain.exe/qtchat">+
<p></p><p align="center">你的回复已经添加到论坛中了+
<br>两秒钟后回到论坛首页</p>;
就可以自动返回url指向的地址了。
问:我先在cookie中设定了一个值,然后想修改它,该如何做?
答:首先删除原来的cookie中的值,方法是将cookie的expires设定为必现在时间早的时间,然后在设定。例如:
//将原来cookie中的记录删除
with response.cookies.add do begin
name := nickname;
value := request.contentfields.values[nickname];
secure := false;
expires := now-1;
end;
//将注册的用户名作为cookie中的内容
with response.cookies.add do begin
name := nickname;
value := request.contentfields.values[nickname];
secure := false;
expires := now+100;
end;
问:如何通过cookie保存临时信息?象一些论坛,在一次浏览过程中。当你第一次发言时,需要输入密码,而以后发言就不需要输入密码。而当断开后再次浏览就还需要输入密码,这样即方便又保证了安全性.
答:设置这样的cookie的方法是不要设定expires。例如:
//设定临时cookies
with response.cookies.add do begin
name := temppassword;
value:=spassword;
end;
另外我们也可以下载一些专用的设定和读取cookie的控件,这些控件支持在web应用程序中加入类似asp的session的功能。下载地址是:http://codecentral.borland.com/
- · 在stringgrid控件中使文字内容在cell中做到上下居中
- · 检测Delphi是否正在运行
- · 一个四舍五入函数
- · 解析IP地址为主机域名。
- · 根据数据库表中记录自动构造一棵结构树的一种高效算法
- · 日历函数单元
- · 在Delphi中如何控制其它应用程序窗口
- · 装扮工具提示条
- · 如何在状态栏中加入图标(或图片),还有动态的时间
- · 利用Delphi编写Windows外壳扩展
- · 利用未公开函数实现Shell操作监视
- · 利用Delphi消息处理建立类似Windows开始菜单
- · Delphi中的图形显示技巧
- · Form产生时的事件次序;
- · Delphi中布尔类型辨析
- · AccesS密码的打击
- · Delphi嵌入式汇编一例
- · 在Delphi中实现任意形状的窗体
- · sql server 2005中的DDL触发器
- · asp.net 2.0下嵌套masterpage页的可视化编辑
- · PHP程序加速探索之缓存输出
- · 用C#代码编写的SN快速输入工具
- · (PHP)模板引擎Smarty介绍
- · 用PHP操纵Oracle的LOB类型的数据
- · C# 2.0中泛型编程初级入门教程
- · asp.net 2.0中加密web.config
- · ADO.NET操纵数据库
- · 关于asp.net c#中对cookie的操作
- · asp.net 2.0里当readonly遇上enableviewstate=false
- · C# 2.0与泛型
- · 让3721也无奈的弹出窗口(代码)
- · 玩透9种网页弹出窗口(精)
- · 网站左右两边浮动广告JS代码
- · 一个IP只提示一次设为首页的代码
- · 常用ASP脚本程序集锦*精(适合初学者)
- · 鼠标自动移动/点击
- · PHP程序加速探索之加速工具软件
- · SQLServer2000数据访问基类
- · 图解MySQL数据库的安装和操作
- · 一些ASP初学者常用的代码
- · ASP经典问答收藏之一
- · 一段防注入的通用脚本
- · 简单的防盗链(代码)
- · PHP窜红:革命尚未成功 Java仍需努力
- · 使用PHP编写基于Web的文件管理系统
- · 理解PHP中的MVC编程之控制器
- · 理解PHP中的MVC编程之MVC框架简介
- · SQL Server Express 数据库自动部署问题及解决
- · 用PHP文件上传的具体思路及实现
- · 回顾与展望PHP 5.0的变化与PHP 6.0展望
- · 一个产生中文累计数的代码片断
- · 在SQL Server 2005中解决死锁
- · 30分钟正则表达式指导
- · 不算不知道 44% 数据库开发者使用MySQL
- · 立即释放.net下的com组件
- · XHTML的目标,规则和细节
- · SQL Server 2005 提供的分页查询支持
- · ASP.NET程序中常用的三十三种代码
- · Sql server存储过程和C#分页类简化你的代码
- · SQL Server 2005新功能-TSQL

