//5-1.php
1 <?
error_reporting(E_ALL ^ E_NOTICE);
if ($_COOKIE['username']!="") {
echo "欢迎!"."<br/>";
echo "用户名:".$_COOKIE['username']."<br/>";
echo "电话:".$_COOKIE['phone']."<br/>";
} else{
echo '
<html>
<head>
<title>用户注册</title>
</head>
<body>
<form method="post" action="5-2.php">
<p><font size="18">用户注册</p>
<table border="1" > <tr><td>用户名:</td>
<td><input name="xm" type="text" size="12"></td>
<td><font color="red">*6-12个字符(数字字母下划线)</font></td>
</tr> <tr><td>密码:</td>
<td><input name="pwd1" type="password" size="16"></td>
<td><font color="red">*6-16个数字</font></td>
</tr> <tr><td>确认密码:</td>
<td><input name="pwd2" type="password" size="16"></td>
<td><font color="red">*必须和密码一致</font></td>
</tr> <tr><td>电话:</td>
<td><input name="phone" type="text" size="11"></td>
<td><font color="red">*11位数字,第一位为1</font></td>
</tr> <tr><td colspan="3"><input type="submit" value="注册">
<input type="reset" value="取消">
</td>
</tr> </table>
</form>
</body>
</html>';}
?>
 //5-2.php
1 <?
if( strlen($_POST["xm"])<6 || strlen($_POST["xm"])>12 ){
echo "<script>alert('用户名长度错误');location.href='5-1.php';</script>";
}
else if ( strpos($_POST["xm"], "_")==false) {
echo "<script>alert('用户名中应存在下划线');location.href='5-1.php';</script>";
}
else if ( preg_match('/[a-zA-Z]/', $_POST["xm"])==false) {
echo "<script>alert('用户名中应存在英文字母');location.href='5-1.php';</script>";
}
else if ( preg_match('/[0-9]/', $_POST["xm"])==false) {
echo "<script>alert('用户名中应存在数字');location.href='5-1.php';</script>";
}
else if ( strlen($_POST["pwd1"])<6 || strlen($_POST["pwd1"])>16 ) {
echo "<script>alert('密码长度错误');location.href='5-1.php';</script>";
}
else if ($_POST["pwd1"]!=$_POST["pwd2"]) {
echo "<script>alert('两次密码不一致');location.href='5-1.php';</script>";
}
else if (strlen($_POST["phone"])!=11) {
echo "<script>alert('电话长度错误');location.href='5-1.php';</script>";
}
else if (substr($_POST["phone"],0,1)!="1") {
echo "<script>alert('电话第一位应该为1');location.href='5-1.php';</script>";
}
else if ( strpos($_POST["phone"], "_")) {
echo "<script>alert('电话中不应该存在下划线');location.href='5-1.php';</script>";
}
else if ( preg_match('/[a-zA-Z]/', $_POST["phone"])==true) {
echo "<script>alert('电话中不应该存在英文字母');location.href='5-1.php';</script>";
}
else{
setcookie("username",$_POST["xm"],time()+600);
setcookie("password",$_POST["pwd1"],time()+600);
setcookie("phone",$_POST["phone"],time()+600);
echo "注册成功"."<br/>";
echo "用户名:".$_POST["xm"]."<br/>";
echo "电话:".$_POST["phone"]."<br/>";
}
?>

PHP之cookies小练习的更多相关文章

  1. py

    import httplib,urllib import re import random def Login(userid,password): params=urllib.urlencode({' ...

  2. Cookie的基本使用

    1, 如何创建cookie <?php //创建cookie信息 //这个函数用于保存cookie //第一个参数,表示cookie一个key,第二个表示val,第三个表示cookie值,在客户 ...

  3. IndexedDB:浏览器里内置的数据库(转)

    出处;http://www.webhek.com/indexeddb/ IndexedDB是HTML5规范里新出现的浏览器里内置的数据库.对于在浏览器里存储数据,你可以使用cookies或local ...

  4. 英语发音规则---字母组合oo的发音规律

    英语发音规则---字母组合oo的发音规律 一.总结 一句话总结:在英语单词中,字母组合oo多数读长音/u:/,少数读短音/ʊ/.另外,还有极少数的特殊情况读/ʌ/, 在英语单词中,字母组合oo多数读长 ...

  5. HTML5本地存储——Web SQL Database与indexedDB

    虽然在HTML5 WebStorage介绍了html5本地存储的Local Storage和Session Storage,这两个是以键值对存储的解决方案,存储少量数据结构很有用,但是对于大量结构化数 ...

  6. 关于web浏览器的Web SQL和IndexedDB

    虽然在HTML5 WebStorage介绍了html5本地存储的Local Storage和Session Storage,这两个是以键值对存储的解决方案,存储少量数据结构很有用,但是对于大量结构化数 ...

  7. Web SQL与indexedDB

    虽然在HTML5 WebStorage介绍了html5本地存储的Local Storage和Session Storage,这两个是以键值对存储的解决方案,存储少量数据结构很有用,但是对于大量结构化数 ...

  8. JS操作Cookies的小例子

    这篇文章介绍了JS操作Cookies的小例子,有需要的朋友可以参考一下. 您可能感兴趣的文章:js 保存与获取cookie的代码javascript cookie操作实例详解javascript co ...

  9. 小文本——Cookies

    http协议的无状态性导致在需要会话的场景下寸步难行,例如一个网站为了方便用户,在一段时间内登录过改网站的浏览器客户端实现自动登录,为实现这种客户端与服务器之间的会话机制需要额外的一些标识,http头 ...

随机推荐

  1. C++中const的实现细节介绍(C,C#同理)

    via:http://www.jb51.net/article/45755.htm 本篇文章主要是对C++中const的实现细节进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助 1.什么 ...

  2. Material Design之CoordinatorLayout+AppBarLayout实现上滑隐藏ToolBar

    ok,今天继续更新Material Design系列!!! 废话不说,先看看效果图吧: 好了,现在来讲讲上图是怎么实现的吧!讲之前先讲讲几个控件: CoordinatorLayout  该控件也是De ...

  3. OC语言(四)

    二十八.id类型(万能指针) 可以指向任何id对象(本身就是指针,不用*) id相当于NSObject *,类似于一种多态. 二十九.重写构造方法 new方法的实质:分配空间+alloc 和 初始化- ...

  4. UML之时序图

            时序图,英文名曰:Sequence Diagram,也称顺序图和序列图,是一种行为图,她通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作.她可以表示用例的行为顺序,当执行一 ...

  5. netstat 的10个基本用法(转)

    本文转载自一译作. *注:netstat即network state缩写. Netstat 简介 Netstat 是一款命令行工具,可用于列出系统上所有的网络套接字连接情况,包括 tcp, udp 以 ...

  6. BP 神经网络

    BP(Back Propagation)网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一.BP ...

  7. java--加强之 类加载器,动态代理

    转载请申明出处:http://blog.csdn.net/xmxkf/article/details/9944561 ***************************************** ...

  8. Oracle12c(12.1)中性能优化&amp;功能增强之通过参数THREADED_EXECTION使用多线程模型

    1.   后台 UNIX/Linux系统上,oracle用多进程模型.例如:linux上一个常规安装的数据库会有如下进程列: $ ps -ef | grep [o]ra_ oracle  15356  ...

  9. getContext在谷歌浏览器中,使用时要先加载canvas对象,否则会提示'getContext is null'

    <body> <canvas id=" style="border:1px solid #c3c3c3;"> Your browser does ...

  10. miniui 给表格行添加监听事件的几种方法以及点击某列列名数据不能排序的问题

    最近在使用miniui框架做开发,在做表格行的点击监听事件中发现了几个属性,都可以起到监听效果但是执行的结果却大有不同.好了废话不多说,直接上代码. <div id="pageGrid ...