今天在服务器上安装oracle11g,是我同事装的。他在安装的时候,处于安全考虑,将密码都更改了。结果安装好后。登录不上去。以致无法导入备份。(不过sqlplus可以正常连接)。他在百度一下说是在安装oracle11g的时候,修改了密码就会这样。(我保留怀疑态度)我和以前折腾半天没搞出来,最后我想了下,直接修改了密码。一切ok
posted @ 2008-11-05 16:57 勒紧皮带向前冲 阅读(990) | 评论 (0)编辑 收藏
 

在使用Oracle过各中经常会遇到密码丢失的时候,本文用两种试来解决这个问题。

一种方法:

sqlplus "/ as sysdba"
            SQL>startup
            SQL>alter user system identified by root123;

如果sqlplus "/ as sysdba"不能进入,让输入密码,我输入原始密码和修改的密码后都不行的话,修改unix环境下:

1. $ORACLE_HOME\network\admin\SQLNET.ORA中为:

SQLNET.AUTHENTICATION_SERVICES=(NTS)

重起数据库/监听服务,就可以用操作系统认证sqlplus "/ as sysdba"了,来进入你的数据库,从而轻而易举的搞定你的数据库了。

2.

sqlplus /nolog
            sql>connect /as sysdba

第二种方法:

详细步骤如下:

一:查询视图V$PWFILE_USERS:select * from V$PWFILE_USERS;记录下拥有 SYSOPER/SYSDBA系统权限的用户信息。

二:关闭数据库 shutdown immediate。

三:删除密码文件,文件路径一般为:ORACLE_HOME\DATABASE,文件名为PWD.ORA。

四:创建密码文件:

ORAPWD FILE=< FILENAME > PASSWORD =< PASSWORD >

五:向密码文件中增加用户:

CONNECT SYS/internal_user_passsword AS SYSDBA;

启动数据库实例并打开数据库; 创建相应用户帐号,对其授权授予 权限:GRANT SYSDBA TO user_name(如果先前数据库只有sys具有sysdba权限,可不做这步)。

六:修改密码文件状态,默认密码文件的状态shared,要将初始化参数里的REMOTE_LOGIN_PASSWORDFILE 设置成EXCLUSIVE。(T006)

posted @ 2008-11-05 16:43 勒紧皮带向前冲 阅读(228) | 评论 (0)编辑 收藏
 

window.open()方法中,窗口控制参数的详细定义:
alwaysLowered innerWidth screenY
alwaysRaised left scrollbars
channelmode location status
dependent menubar titlebar
directories outerWidth toolbar
fullscreen outerHeight top
height menubar width
hotkeys resizable z-lock
innerHeight screenX  


alwaysLowered
  Internet Explorer:不支持

  Navigator:版本 4+

  指定窗口总是保留在堆栈的最下面。换言之,不管新窗口是否激活,总是其他窗口下。

  window.open("alwayslowered.html", "_blank", "alwaysLowered");

alwaysRaised
  Internet Explorer:不支持

  Navigator:版本 4+

  指定窗口总是保留在堆栈的最上面。换言之,不管新窗口是否激活,总是其他窗口上。

  window.open("alwaysraised.html", "_blank", "alwaysRaised");

channelmode
  Internet Explorer:版本 4+

  Navigator:不支持

  指定是否按照剧场模式显示窗口,以及是否显示频道区。

  window.open("channelmode.html", "_blank", "channelmode");

dependent
  Internet Explorer:不支持

  Navigator:版本 4+

  定义是否窗口成为当前打开窗口的依赖子窗口。依赖窗口就是当它的父窗口关闭时,它也随即关闭。在windows平台上,一个依赖窗口不会在任务栏上显示。

  window.open("dependent.html", "_blank", "dependent");

directories
  Internet Explorer:所有版本

  Navigator:所有版本

  指定是否显示目录按钮(比如众所周知的"What's Cool" and "What's New" 按钮)。Internet Explorer将这些目录按钮引用为链接工具栏,Navigator(版本4和以上)称之为个人工具栏。

  window.open("directories.html", "_blank", "directories");

fullscreen
  Internet Explorer:版本 4+

  Navigator:不支持

  定义是否按照全屏方式打开浏览器。请小心使用全屏模式,因为在这种模式下,浏览器的标题栏和菜单都被隐藏,所有你应该提供一个按钮或者其他可视的线索来帮助用户关闭这个窗口。当然,使用热键ALT+F4也能关闭窗口。

  window.open("fullscreen.html", "_blank", "fullscreen");

height
  Internet Explorer:所有版本

  Navigator:所有版本

  以象素pixel为单位定义窗口文档显示区域的高度,最小数值是100。如果仅仅定义高度,Internet Explorer使用给定的高度和默认的宽度。对于Navigator,如果不同时指定width或者innerWidth,那么就将忽略这个属性。

  window.open("height.html", "_blank", "height=200,width=300");

hotkeys
  Internet Explorer:不支持

  Navigator:版本 4+

  如果没有定义(或者为0),那么就屏蔽了没有菜单条的新窗口的大部分热键。但是安全以及退出热键仍然保留。

  window.open("hotkeys.html", "_blank", "hotkeys=0,menubar=0");

innerHeight
  Internet Explorer:不支持

  Navigator:版本 4+

  以象素pixel为单位定义窗口文档显示区域的高度,最小数值是100。在Navigator版本4中,这个特征替换height,为得是保持向后兼容。对于Navigator,如果不同时指定width或者innerWidth,那么就将忽略这个属性。

  window.open("innerheight.html", "_blank", "innerHeight=200,innerWidth=300");

innerWidth
  Internet Explorer:不支持

  Navigator:版本 4+

  以象素pixel为单位定义窗口文档显示区域的宽度,最小数值是100。在Navigator版本4中,这个特征替换width,为得是保持向后兼容。对于Navigator,如果不同时指定height或者innerHeight,那么就将忽略这个属性。

  window.open("innerwidth.html", "_blank", "innerHeight=200,innerWidth=300");

left
  Internet Explorer:版本 4+

  Navigator:不支持

  以象素为单位定义窗口的X左标。

  window.open("left.html", "_blank", "left=20");

location
  Internet Explorer:所有版本

  Navigator:所有版本

  定义是否显示浏览器中供地址URL输入的文本域。

  window.open("location.html", "_blank", "location");

menubar
  Internet Explorer:所有版本

  Navigator:所有版本

  定义是否显示菜单条(菜单条位于窗口顶部,包括“文件”和“编辑”等)。

  window.open("menubar.html", "_blank", "menubar");

outerHeight
  Internet Explorer:不支持

  Navigator:版本 4+

  以象素为单位定义窗口(它的外部边界)的总高度,最小数值比100多一些,因为窗口内容区域的高度必须至少是100。如果没有同时定义outerWidth,Navigator将忽视这个特征。

  window.open("outerheight.html", "_blank", "outerHeight=200,outerWidth=300");

outerWidth
  Internet Explorer:不支持

  Navigator:版本 4+

  以象素为单位定义窗口(它的外部边界)的总宽度,最小数值比100多一些,因为窗口内容区域的宽度必须至少是100。如果没有同时定义outerHeight,Navigator将忽视这个特征。

  window.open("outerwidth.html", "_blank", "outerHeight=200,outerWidth=300");

resizable
  Internet Explorer:所有版本

  Navigator:所有版本

  定义是否窗口可以通过它的边界进行大小缩放控制。依赖于平台不同,用户也许还有其他改变窗口大小的方法。

  window.open("resizable.html", "_blank", "resizable");

screenX
  Internet Explorer:不支持

  Navigator:版本 4+

  以象素为单位定义窗口的X坐标。

  window.open("screenx.html", "_blank", "screenX=20");

screenY
  Internet Explorer:不支持

  Navigator:版本 4+

  以象素为单位定义窗口的Y坐标。

  window.open("screeny.html", "_blank", "screenY=20");

scrollbars
  Internet Explorer:所有版本

  Navigator:所有版本

  定义是否激活水平和垂直滚动条。

  window.open("scrollbars.html", "_blank", "scrollbars");

status
  Internet Explorer:所有版本

  Navigator:所有版本

  定义是否在窗口的下部添加状态栏。

  window.open("status.html", "_blank", "status");

titlebar
  Internet Explorer:Version 5+

  Navigator:版本 4+

  定义是否显示窗口的标题栏。在Internet Explorer中,除非调用者是一个HTML应用程序或者一个可信任的对话框,那么这个特征是被屏蔽的。

  window.open("titlebar.html", "_blank", "titlebar=0");

toolbar
  Internet Explorer:所有版本

  Navigator:所有版本

  定义是否显示浏览器的工具栏(位于窗口的上部,包括“后退”和“向前”)。

  window.open("toolbar.html", "_blank", "toolbar");

top
  Internet Explorer:版本 4+

  Navigator:不支持

  以象素为单位定义窗口的纵坐标。

  window.open("top.html", "_blank", "top=20");

width
  Internet Explorer:所有版本

  Navigator:所有版本

  以象素pixel为单位定义窗口文档显示区域的宽度,最小数值是100。如果仅仅定义宽度,Internet Explorer使用给定的宽度和默认的高度。对于Navigator,如果不同时指定height或者innerHeight,那么就将忽略这个属性。

  window.open("width.html", "_blank", "height=200,width=300");

z-lock
  Internet Explorer:不支持

  Navigator:版本 4+

  定义窗口激活时不在堆栈中浮起,就是说,新窗口当被激活时并不能位于其他窗口之上。

  window.open("zlock.html", "_blank", "z-lock");

posted @ 2008-11-04 10:50 勒紧皮带向前冲 阅读(172) | 评论 (0)编辑 收藏
 
在本地计算机上的远程连接的选项卡中

WordPress 中文文档

远程桌面将本地资源复制到远程

From WordPress Chinese

Jump to: navigation, search
服务器之远程桌面的应用专题 远程桌面入门 远程控制的实现 远程管理 远程桌面的一些操作
Telnet远程连接方式 用MMC实现远程管理 远程桌面实用技巧 远程桌面的安全 ★→远程桌面的所有文章



在远程桌面连接成功后就可以进行一些远程桌面连接可以进行的计算机管理了。具体可以进行的远程桌面连接操作如下:






目录

[隐藏]

使用终端服务快捷键

如果没在如图所示对话框“键盘”下拉列表中选择将Windows 键组合应用到远程桌面计算机上,则还可使用终端服务快捷键执行许多相同的功能。



n21926.jpg





重定向打印

打印机重定向将打印作业从终端服务器或“远程桌面”计算机路由到本地计算机(也称为“客户端计算机”)连接的打印机。有两种方法可提供对本地打印机的访问:自动和手动打印机重定向。当在远程计算机上运行的Windows 版本中没有本地打印机所需要的驱动程序时,使用手动重定向。在初次进行手动重定向之后,打印机将在以后的登录过程中自动重定向。



→更多相关内容请参见打印机共享





将本地计算机中的文件复制并粘贴到远程计算机

如果在如图所示对话框中选择了“本地设备”栏下的“磁盘驱动器”复选项,则可以直接在远程桌面窗口中将本地文件粘贴到远程计算机上。方法如下:



n21926.jpg


  • 第1步,单击远程计算机任务栏上的“开始”按钮,然后单击“我的电脑”,或者双击远程计算机桌面上的“我的电脑”图标。打开如图11所示远程桌面我的电脑窗口。


n21970.jpg





在以上“我的电脑”(或资源管理器)窗口会显示本地磁盘,显示的方式就是<computername> 上的 <driveletter>。computername是指“远程桌面连接”分配给本地计算机的计算机名。
  • 第2步,在本地计算机找到希望传送到远程计算机的文件,然后单击右键,然后选择“复制”选项。
  • 第3步,在同一“我的电脑”或资源管理器窗口中,找到要粘帖本地文件的文件夹位置。单击右键,选择“粘贴”即可把从本地计算机上复制的文件复制到远程计算机上了。
如果要将远程计算机的文件复制到本地计算机上,方法一样,只是复制和粘贴的对象不同而已。其实方法与本地计算机上的复制和粘贴一样,不再赘述。
至于其它操作,如在远程计算机上运行计算机程序,方法与在本地计算机上操作完全样,也不再赘述。


→更多相关内容请参见远程桌面连接





结束会话和断开连接

如果要结束当前会话,断开远程桌面连接,可以直接单击远程桌面窗口右外角的“X”按钮,也可在远程桌面中执行〖开始〗→〖断开〗菜单操作,如图12所示。此时会弹出一个确认对话框,确认断开即可。如果仅是想注意当前远程登录用户,则单击“注销”按钮,重新输入新的登录账户。不过要注意,新账户也一定要有远程桌面连接权限。



n21972.jpg





posted @ 2008-11-04 10:06 勒紧皮带向前冲 阅读(566) | 评论 (0)编辑 收藏
 

这个问题的根源是jvm虚拟机的默认Heap大小是64M,可以通过设置其最大和最小值来实现.设置的方法主要是几个.

1.可以在windows 更改系统环境变量

加上JAVA_OPTS=-Xms64m -Xmx512m

2,如果用的tomcat,在windows下,可以在

C:\tomcat5.5.9\bin\catalina.bat 中加上:

set JAVA_OPTS=-Xms64m -Xmx256m

位置在: rem Guess CATALINA_HOME if not defined 这行的下面加合适.

3.如果是linux系统

Linux 在{tomcat_home}/bin/catalina.sh的前面,加

set JAVA_OPTS='-Xms64 -Xmx512'


使用Java程序从数据库中查询大量的数据时出现异常:java.lang.OutOfMemoryError: Java heap space 在JVM中如果98%的时间是用于GC且可用的 Heap size 不足2%的时候将抛出此异常信息。 JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。例如:java -jar -Xmn16m -Xms64m -Xmx128m MyApp.jar如果Heap Size设置偏小,除了这些异常信息外,还会发现程序的响应速度变慢了。GC占用了更多的时间,而应用分配到的执行时间较少。Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。Heap size的 -Xms -Xmn 设置不要超出物理内存的大小。否则会提示“Error occurred during

posted @ 2008-11-03 15:18 勒紧皮带向前冲 阅读(399) | 评论 (0)编辑 收藏
 
通常在表中设置的日期列,用于存放与信息相关的日期。
在某些时候需要通过日期中的年,月,日等来统计数据,通常我们会将日期取出,再在程序中获取当前日期。进行比较,这样会加大开销。
现在可以通过to_date来截取日期中的年,月,日的来获取数据。
如: to_char(to_date(b_time,'yyyy-mm-dd'),'yyyy')=to_char(to_date(?,'yyyy-mm-dd hh24:mi:ss'),'yyyy')
这样获取的就是年的字符串,就可得到指定年的数据。
月:to_char(to_date(b_time,'yyyy-mm-dd'),'mm')=to_char(to_date(?,'yyyy-mm-dd hh24:mi:ss'),'mm')
日:to_char(to_date(b_time,'yyyy-mm-dd'),'dd')=to_char(to_date(?,'yyyy-mm-dd hh24:mi:ss'),'dd')

posted @ 2008-11-01 14:11 勒紧皮带向前冲 阅读(1774) | 评论 (2)编辑 收藏
 
几个正则表达式:
1.验证用户名和密码:("^[a-zA-Z]\w{5,15}$")正确格式:"[A-Z][a-z]_[0-9]"组成,并且第一个字必须为字母6~16位;
   2.验证电话号码:("^(\d{3.4}-)\d{7,8}$")正确格式:xxx/xxxx-xxxxxxx/xxxxxxxx;
   3.验证身份证号(15位或18位数字):("^\d{15}|\d{18}$");
   4.验证Email地址:("^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$");
   5.只能输入由数字和26个英文字母组成的字符串:("^[A-Za-z0-9]+$") ;
   6.整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$
   7.只能输入数字:"^[0-9]*$"。
   8.只能输入n位的数字:"^\d{n}$"。
   9.只能输入至少n位的数字:"^\d{n,}$"。
   10.只能输入m~n位的数字:。"^\d{m,n}$"
   11.只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。
   12.只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。
   13.只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。
   14.只能输入非零的正整数:"^\+?[1-9][0-9]*$"。
   15.只能输入非零的负整数:"^\-[1-9][]0-9"*$。
   16.只能输入长度为3的字符:"^.{3}$"。
   17.只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。
   18.只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。
   19.只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。
   20.验证是否含有^%&',;=?$\"等字符:"[^%&',;=?$\x22]+"。
   21.只能输入汉字:"^[\u4e00-\u9fa5]{0,}$"
   22.验证URL:"^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$"。
   23.验证一年的12个月:"^(0?[1-9]|1[0-2])$"正确格式为:"01"~"09"和"1"~"12"。
   24.验证一个月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正确格式为;"01"~"09"和"1"~"31"。
     从上面我们可以看到:"^"表示后面紧跟着的字符为开头;与之相对应的式"$"以紧跟前面的字符为结尾.但是要注意的式当"^"位于"[]"里时,表示"非"的意思,例如:[^AZ]表示不能为"AZ"中的任一个字符."[]"表示当中的一个字符."{}"可以取得一个范围,例如"{9}"表示9个,而"{1,9}"表示1到9个字符.
下面我们看看正则表达式在Asp.Net数据验证中的应用,第一个当然式在服务器验证控件中的应用了,很简单看下面的代码:
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" ControlToValidate="UserName" ValidationExpression="^[a-zA-Z]\w{3,15}$" runat="server" ErrorMessage="用户名格式不正确" ToolTip="用户名格式不正确!">*</asp:RegularExpressionValidator>

转自  http://hi.baidu.com/liuliangzhou/blog/item/1a856e243f31f9308644f958.html
posted @ 2008-11-01 14:00 勒紧皮带向前冲 阅读(242) | 评论 (0)编辑 收藏
 

js 验证表单 js提交验证类

附加:js验证radio是否选择

<script language="javascript">
function checkform(obj)
{
for(i=0;i<obj.oo.length;i++)
         if(obj.oo[i].checked==true) return true;

alert("请选择")
return false;        

}
</script>
<form id="form1" name="form1" method="post" action=""   onsubmit="return checkform(this)">
   <input type="radio" name="oo" value="radiobutton" />
   <input type="radio" name="oo" value="radiobutton" />
   <input type="submit" name="Submit" value="提交" />
</form>

1. 长度限制
<script>
function test()
{
if(document.a.b.value.length>50)
{
alert("不能超过50个字符!");
document.a.b.focus();
return false;
}
}
</script>
<form name=a onsubmit="return test()">
<textarea name="b" cols="40" wrap="VIRTUAL" rows="6"></textarea>
<input type="submit" name="Submit" value="check">
</form>

2. 只能是汉字
<input onkeyup="value="/oblog/value.replace(/[^\u4E00-\u9FA5]/g,'')">

3." 只能是英文
<script language=javascript>
function onlyEng()
{
if(!(event.keyCode>=65&&event.keyCode<=90))
event.returnvalue=false;
}
</script>

<input onkeydown="onlyEng();">

4. 只能是数字
<script language=javascript>
function onlyNum()
{
if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105)))
//考虑小键盘上的数字键
event.returnvalue=false;
}
</script>

<input onkeydown="onlyNum();">

5. 只能是英文字符和数字
<input onkeyup="value="/oblog/value.replace(/[\W]/g,"'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))">

6. 验证油箱格式
<SCRIPT LANGUAGE=javascript RUNAT=Server>
function isEmail(strEmail) {
if (strEmail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
return true;
else
alert("oh");
}
</SCRIPT>
<input type=text onblur=isEmail(this.value)>

7. 屏蔽关键字(这里屏蔽***和****)
<script language="javascript1.2">
function test() {
if((a.b.value.indexOf ("***") == 0)||(a.b.value.indexOf ("****") == 0)){
alert("");
a.b.focus();
return false;}
}
</script>
<form name=a onsubmit="return test()">
<input type=text name=b>
<input type="submit" name="Submit" value="check">
</form>

8. 两次输入密码是否相同
<FORM METHOD=POST ACTION="">
<input type="password" id="input1">
<input type="password" id="input2">
<input type="button" value="test" onclick="check()">
</FORM>
<script>
function check()
{
with(document.all){
if(input1.value!=input2.value)
{
alert("false")
input1.value = "";
input2.value = "";
}
else document.forms[0].submit();
}
}
</script>
够了吧
屏蔽右键 很酷
oncontextmenu="return false" ondragstart="return false" onselectstart="return false"
加在body中




2.1     表单项不能为空

<script     language="javascript">
<!--
function     CheckForm()
{  
if     (document.form.name.value.length     ==     0)     {  
alert("请输入您姓名!");
document.form.name.focus();
return     false;
}
return     true;
}
-->
</script>

2.2     比较两个表单项的值是否相同

<script     language="javascript">
<!--
function     CheckForm()
if     (document.form.PWD.value     !=     document.form.PWD_Again.value)     {  
alert("您两次输入的密码不一样!请重新输入.");
document.ADDUser.PWD.focus();
return     false;
}
return     true;
}
-->
</script>

2.3     表单项只能为数字和"_",用于电话/银行帐号验证上,可扩展到域名注册等

<script     language="javascript">
<!--
function     isNumber(String)
{  
var     Letters     =     "1234567890-";     //可以自己增加可输入值
var     i;
var     c;
if(String.charAt(     0     )=='-')
return     false;
if(     String.charAt(     String.length     -     1     )     ==     '-'     )
return     false;
for(     i     =     0;     i     <     String.length;     i     ++     )
{  
c     =     String.charAt(     i     );
if     (Letters.indexOf(     c     )     <     0)
return     false;
}
return     true;
}
function     CheckForm()
{  
if(!     isNumber(document.form.TEL.value))     {  
alert("您的电话号码不合法!");
document.form.TEL.focus();
return     false;
}
return     true;
}
-->
</script>


2.4     表单项输入数值/长度限定

<script     language="javascript">
<!--
function     CheckForm()  
{  
if     (document.form.count.value     >     100     ||     document.form.count.value     <     1)
{  
alert("输入数值不能小于零大于100!");
document.form.count.focus();
return     false;
}
if     (document.form.MESSAGE.value.length<10)
{  
alert("输入文字小于10!");
document.form.MESSAGE.focus();
return     false;
}
return     true;
}
//-->
</script>

2.5     中文/英文/数字/邮件地址合法性判断

<SCRIPT     LANGUAGE="javascript">
<!--

function     isEnglish(name)     //英文值检测
{  
if(name.length     ==     0)
return     false;
for(i     =     0;     i     <     name.length;     i++)     {  
if(name.charCodeAt(i)     >     128)
return     false;
}
return     true;
}

function     isChinese(name)     //中文值检测
{  
if(name.length     ==     0)
return     false;
for(i     =     0;     i     <     name.length;     i++)     {  
if(name.charCodeAt(i)     >     128)
return     true;
}
return     false;
}

function     isMail(name)     //     E-mail值检测
{  
if(!     isEnglish(name))
return     false;
i     =     name.indexOf("     at     ");
j     =     name     dot     lastIndexOf("     at     ");
if(i     ==     -1)
return     false;
if(i     !=     j)
return     false;
if(i     ==     name     dot     length)
return     false;
return     true;
}

function     isNumber(name)     //数值检测
{  
if(name.length     ==     0)
return     false;
for(i     =     0;     i     <     name.length;     i++)     {  
if(name.charAt(i)     <     "0"     ||     name.charAt(i)     >     "9")
return     false;
}
return     true;
}

function     CheckForm()
{  
if(!     isMail(form.Email.value))     {  
alert("您的电子邮件不合法!");
form.Email.focus();
return     false;
}
if(!     isEnglish(form.name.value))     {  
alert("英文名不合法!");
form.name.focus();
return     false;
}
if(!     isChinese(form.cnname.value))     {  
alert("中文名不合法!");
form.cnname.focus();
return     false;
}
if(!     isNumber(form.PublicZipCode.value))     {  
alert("邮政编码不合法!");
form.PublicZipCode.focus();
return     false;
}
return     true;
}
//-->
</SCRIPT>

2.6     限定表单项不能输入的字符

<script     language="javascript">
<!--

function     contain(str,charset)//     字符串包含测试函数
{  
var     i;
for(i=0;i<charset.length;i++)
if(str.indexOf(charset.charAt(i))>=0)
return     true;
return     false;
}

function     CheckForm()
{  
if     ((contain(document.form.NAME.value,     "%\(\)><"))     ||     (contain(document.form.MESSAGE.value,     "%\(\)><")))
{  
alert("输入了非法字符");
document.form.NAME.focus();
return     false;
}
return     true;
}
//-->
</script>  





转自  http://www.cnblogs.com/zwl12549/archive/2008/01/07/1028701.html
posted @ 2008-11-01 13:58 勒紧皮带向前冲 阅读(2081) | 评论 (1)编辑 收藏
 

这里只说一下对sp提供的移动通道的接口调用的方法。希望能给一些没有涉及这些内容的朋友提供一些帮助。

首先说一下用户上行,上行就是指手机用户编辑短信到指定的号码的过程,我们在web开发中针对用户上行内容的处理流程是这样:
 手机用户编辑短信到指定的号码--------------》(传输到移动网关)------->移动网关在收到这条信息,并处理完后把处理结果返回到合作方(一般这里是sp)的网关------->sp的网关收到这条上行处理后再把结果传输到我们最下层的合作方-------》到这里我们就可以写出我们的处理接口实现对应的数据处理或者短信下发。

其次是实现下行,下行就是我们通过移动网关向指定的移动用户发送用户选择的内容,比如图片铃声等。其流程是这样:

web开发员------》调用sp的移动下发接口,(一般是进行事前的数据处理,然后再配置下发的参数)-----》调用sp的接口后,sp的接口会进行响应的数据记录,然后把内容提交到移动的网关------》移动网关再把内容下发给用户----》下发操作执行后,移动网关将相应的状态报告再回发给sp的接口------》sp的接口再通知我们的响应处理接口。

流程基本上是以上的内容。在实际操作的过程中还会出现掉包的情况,毕竟数据通过几个中转,大数据量并发的状态下肯定会掉包,所以也有个掉包率的概念。另外web开发者需要与sp的技术中心进行一些协调,比如我们需要从sp那边获取sp为我们分配的业务编号,以及指令和地址码这类信息,以及我们还需要提供给sp一些我们的响应接口(响应接口的开发需按照的sp的开发手册来进行开发,每家的sp在这里会有一些不同),比如用户上行后,sp的网关收到这个报告后,就需要绑定一个我们的响应接口,来对上行内容进行一些操作。

注意:
移动增值类的业务主要分为三个,点播,按条定制,包月定制。
点播:就是用户上行一条信息,扣一次钱。另外针对点播业务,用户上行后会产生一个随机的linkid,当我们给用户下发的时候必须以这个linkid来为这个手机号下发内容,负责用户上性的这条信息就不会扣钱,也就是说只有我们通过这个产生的linkid,并为用户下发了内容以后,移动才能够收取手机用户的钱。

按条定制:当用户订制了这个业务时,系统将会每天自动会用户下发几条内容,每下发成功就会扣一条信息的钱。现在有很多手机交费的网站就会采用这个业务,当用户发送了订制指令后,sp的通道就会为用户下发指定条数的信息,以此来收取费用,下发30条,就收你30块。

包月定制:这个大家都比较熟悉了,这里就不介绍了。

下面为大家简单介绍一个类似的通道调用(具体的sp接口每家都有些不同,但基本是大同小异)

下发接口(以短信下发接口为例):
http://www.xxxx.com/sms/sendsms.asp?serviceid==xxx&to==xxx&from=xxx&linkid=xxx&msg=xxx

参数注释:
serviceid为业务id 由sp提供
to :接受方手机
from:发送方号码,由sp提供 比如 1861
linkid: 用户上行后产生的linkid,可以从用户上行的短信中,或者从sso接口获得。(linkid是有有效期的,超过有效期将会失效)
msg:为我们下发的手机内容。

如果我们要下发的图片铃声等资源,一般这类接口还会提供一个pushurl
pushurl: 用来告诉移动网关我们要给手机用户下载的资源地址。

其它的接口就不一一举例了。关键是掌握这些流程,和原理。


转自  http://blog.csdn.net/rehearts/archive/2006/09/01/1155362.aspx

posted @ 2008-10-30 17:03 勒紧皮带向前冲 阅读(271) | 评论 (0)编辑 收藏
 
     摘要: Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->  1 <html xmlns="http://www.w3.org/1999/xhtml">   2 &l...  阅读全文
posted @ 2008-10-15 09:20 勒紧皮带向前冲 阅读(1810) | 评论 (2)编辑 收藏
仅列出标题
共14页: First 上一页 6 7 8 9 10 11 12 13 14 下一页