当注册成功到登录后进入个人中心,查看和修改自己的资料

第一步:创建个人中心:

<?php
//定义个常量,用来授权调用includes里面的文件
define('IN_TG',true);
//定义个常量,用来指定本页的内容
define('SCRIPT','member');
//引入公共文件
require dirname(__FILE__).'/includes/common.inc.php';
//是否正常登录
if (isset($_COOKIE['username'])) {
//获取数据
$_rows=_fetch_array("SELECT tg_username,tg_sex,tg_face,tg_email,tg_url,tg_qq,tg_level,tg_reg_time FROM tg_user WHERE tg_username='{$_COOKIE['username']}'");
if($_rows){
/* $_username=$_rows['tg_username'];
$_sex=$_rows['tg_sex']; */
$_html=array();
$_html['username']=$_rows['tg_username'];
$_html['sex'] = $_rows['tg_sex'];
$_html['face'] = $_rows['tg_face'];
$_html['email'] = $_rows['tg_email'];
$_html['url'] = $_rows['tg_url'];
$_html['qq'] = $_rows['tg_qq'];
$_html['reg_time'] = $_rows['tg_reg_time'];
switch ($_rows['tg_level']){
case 0:
$_html['level'] = '普通会员';
break;
case 1:
$_html['level'] = '管理员';
break;
default:
$_html['level'] = '不是本地管理员';
}
$_html = _html($_html);
}else{
_alert_back('此用户不存在!');
}
}else{
_alert_back("非法登录!");
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>多用户留言系统--个人用户中心</title>
<?php
require ROOT_PATH.'includes/title.inc.php';
?>
</head>
<body>
<?php
require ROOT_PATH.'includes/header.inc.php';
?>
<div id="member">
<?php
require ROOT_PATH.'includes/member.inc.php';
?>
<div id="member_main">
<h2>会员管理中心</h2>
<dl>
<dd>用户名:<?php echo $_html['username']?></dd>
<dd>性&nbsp;&nbsp;别:<?php echo $_html['sex']?></dd>
<dd>头&nbsp;&nbsp;像:<?php echo $_html['face']?></dd>
<dd>电子邮件:<?php echo $_html['email']?></dd>
<dd>主&nbsp;&nbsp;页:<?php echo $_html['url']?></dd>
<dd>QQ&nbsp;&nbsp;:<?php echo $_html['qq']?></dd>
<dd>注册时间:<?php echo $_html['reg_time']?></dd>
<dd>身&nbsp;&nbsp;份:<?php echo $_html['level']?></dd>
</dl>
</div>
</div>
<?php
require ROOT_PATH.'includes/footer.inc.php';
?> </body>
</html>
 require ROOT_PATH.'includes/member.inc.php'中的代码:
<?php
//防止恶意调用
if (!defined('IN_TG')) {
exit('Access Defined!');
} ?>
<div id="member_sidebar">
<h2>中心导航</h2>
<dl>
<dt>帐号管理</dt>
<dt>
<a href="member.php">个人信息</a>
</dt>
<dt>
<a href="member_modify.php">修改资料</a>
</dt>
</dl>
<dl>
<dt>其他管理</dt>
<dt>
<a href="#">短信查阅</a>
</dt>
<dt>
<a href="#">好友设置</a>
</dt>
<dt>
<a href="#">查询花朵</a>
</dt>
<dt>
<a href="#">个人相册</a>
</dt>
</dl>
</div>

相关的CSS

@CHARSET "UTF-8";
#member {
width:auto;
height:600px;
border:2px solid #ccc;
font-size:12px;
}
#member h2 {
text-indent:;
text-align:center;
height:30px;
line-height:30px;
}
#member #member_sidebar {
width:300px;
height:500px;
margin:15px;
border:1px dashed #999;
float:left;
}
#member #member_sidebar dl {
width:250px;
background:red;
margin:15px auto;
}
#member #member_sidebar dl dt {
height:40px;
line-height:40px;
background:#999;
font-weight:bold;
text-align:center;
color:#fff;
}
#member #member_sidebar dl dd {
height:40px;
line-height:40px;
background:#eee;
font-weight:bold;
text-align:center;
}
#member #member_sidebar dl dd a {
display:block;
color:#333;
text-decoration:none;
}
#member #member_sidebar dl dd a:hover {
background:#ccc;
}
#member #member_main {
width:590px;
height:500px;
margin:15px;
border:1px dashed #999;
float:right;
}
#member #member_main dl {
width:500px;
margin:15px auto;
font-size:14px;
}
#member #member_main dl dd {
padding:10px 0;
border-bottom:1px dashed #999;
}

个人中心创建后就是修改个人中心:

<?php
session_start();
//定义个常量,用来授权调用includes里面的文件
define('IN_TG',true);
//定义个常量,用来指定本页的内容
define('SCRIPT','member_modify');
//引入公共文件
require dirname(__FILE__).'/includes/common.inc.php'; //修改资料及服务端的验证函数是调用了注册时使用的register.func.php 来验证
if($_GET['action']=='modify'){
//echo '修改的资料有误,请确认';
_check_code($_POST, $_SESSION['code']);
include ROOT_PATH.'includes/register.func.php';
$_clean=array();
$_clean['password'] = _check_modify_password($_POST['password'],6);
$_clean['sex']=_check_sex($_POST['sex']);
$_clean['face'] = _check_face($_POST['face']);
$_clean['email'] = _check_email($_POST['email'], 6, 40);
$_clean['qq'] = _check_qq($_POST['qq']);
$_clean['url'] = _check_url($_POST['url'], 40);
//修改资料
if (empty($_clean['password'])){
_query("UPDATE tg_user SET
tg_password='{$_clean['password']}',
tg_sex='{$_clean['sex']}',
tg_face='{$_clean['face']}',
tg_email='{$_clean['email']}',
tg_qq='{$_clean['qq']}';
tg_url='{$_clean['url']}'
WHERE
tg_username='{$_COOKIE['username']}'
"); }else{
_query("UPDATE tg_user SET
tg_password='{$_clean['password']}',
tg_sex='{$_clean['sex']}',
tg_face='{$_clean['face']}',
tg_email='{$_clean['email']}',
tg_qq='{$_clean['qq']}',
tg_url='{$_clean['url']}'
WHERE
tg_username='{$_COOKIE['username']}'
");
}
//判断是否修改
if(_affected_rows()==1){
_close();
_session_destroy();
_location('恭喜你,修改成功', 'member.php');
}else{
_close();
_session_destroy();
_location('很遗憾,修改失败', 'member_modify.php');
} }
//是否正常登录
if (isset($_COOKIE['username'])) {
//获取数据
$_rows=_fetch_array("SELECT tg_username,tg_sex,tg_face,tg_email,tg_url,tg_qq FROM tg_user WHERE tg_username='{$_COOKIE['username']}'");
if($_rows){
/* $_username=$_rows['tg_username'];
$_sex=$_rows['tg_sex']; */
$_html=array();
$_html['username']=$_rows['tg_username'];
$_html['sex'] = $_rows['tg_sex'];
$_html['face'] = $_rows['tg_face'];
$_html['email'] = $_rows['tg_email'];
$_html['url'] = $_rows['tg_url'];
$_html['qq'] = $_rows['tg_qq'];
$_html = _html($_html);
//性别选择
if ($_html['sex'] == '男') {
$_html['sex_html'] = '<input type="radio" name="sex" value="男" checked="checked" /> 男 <input type="radio" name="sex" value="女" /> 女';
} elseif ($_html['sex'] == '女') {
$_html['sex_html'] = '<input type="radio" name="sex" value="男" /> 男 <input type="radio" name="sex" value="女" checked="checked" /> 女';
}
//头像选择
$_html['face_html'] = '<select name="face">';
foreach (range(1,9) as $_num) {
$_html['face_html'] .= '<option value="face/m0'.$_num.'.gif">face/m0'.$_num.'.gif</option>';
}
foreach (range(10,64) as $_num) {
$_html['face_html'] .= '<option value="face/m'.$_num.'.gif">face/m'.$_num.'.gif</option>';
}
$_html['face_html'] .= '</select>'; }else{
_alert_back('此用户不存在!');
}
}else{
_alert_back("非法登录!");
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>多用户留言系统--个人用户中心</title>
<?php
require ROOT_PATH.'includes/title.inc.php';
?>
<script type="text/javascript" src="js/code.js"></script>
<script type="text/javascript" src="js/member_modify.js"></script>
</head>
<body>
<?php
require ROOT_PATH.'includes/header.inc.php';
?>
<div id="member">
<?php
require ROOT_PATH.'includes/member.inc.php';
?>
<div id="member_main">
<h2>会员管理中心</h2>
<form method="post" action="?action=modify">
<dl>
<dd>用户名:<?php echo $_html['username']?></dd>
<dd>密 码:<input type="password" class="text" name="password"/>(*留空表示不修改)</dd>
<dd>性&nbsp;&nbsp;别:<?php echo $_html['sex_html']?></dd>
<dd>头&nbsp;&nbsp;像:<?php echo $_html['face_html']?></dd>
<dd>电子邮件:<input type="text" class="text" name="email" value="<?php echo $_html['email']?>" /></dd>
<dd>主&nbsp;&nbsp;页:<input type="text" class="text" name="url" value="<?php echo $_html['url']?>" /></dd>
<dd>QQ&nbsp;&nbsp;:<input type="text" class="text" name="qq" value="<?php echo $_html['qq']?>" /></dd>
<dd>验证码:<input type="text" name="code" class="text yzm" /><img src="code.php" id="code"></img></dd>
<dd><input type="submit" class="submit" value="修改资料" /></dd>
</dl>
</form>
</div>
</div>
<?php
require ROOT_PATH.'includes/footer.inc.php';
?> </body>
</html>

_check_modify_password:

相对应的封装函数:

/**
*
* @param unknown $_string
* @param unknown $_min_num
* @return NULL|string
*/
function _check_modify_password($_string,$_min_num){
//判断密码
if (! empty ( $_string )) {
if (strlen ( $_string ) < $_min_num) {
_alert_back ( '密码不得小于' . $_min_num . '位!' );
}
}else{
return null;
}
return sha1($_string);
}

相关的CSS文件:

@CHARSET "UTF-8";
#member {
width:auto;
height:600px;
border:2px solid #ccc;
font-size:12px;
}
#member h2 {
text-indent:;
text-align:center;
height:30px;
line-height:30px;
}
#member #member_sidebar {
width:300px;
height:500px;
margin:15px;
border:1px dashed #999;
float:left;
}
#member #member_sidebar dl {
width:250px;
background:red;
margin:15px auto;
}
#member #member_sidebar dl dt {
height:40px;
line-height:40px;
background:#999;
font-weight:bold;
text-align:center;
color:#fff;
}
#member #member_sidebar dl dd {
height:40px;
line-height:40px;
background:#eee;
font-weight:bold;
text-align:center;
}
#member #member_sidebar dl dd a {
display:block;
color:#333;
text-decoration:none;
}
#member #member_sidebar dl dd a:hover {
background:#ccc;
}
#member #member_main {
width:590px;
height:500px;
margin:15px;
border:1px dashed #999;
float:right;
}
#member #member_main dl {
width:500px;
margin:15px auto;
font-size:14px;
}
#member #member_main dl dd {
padding:10px 0;
border-bottom:1px dashed #999;
}
#member #member_main dl dd input.text {
width:220px;
height:19px;
border:1px dashed #333;
background:#fff;
}
#member #member_main dl dd input.yzm {
width:60px;
}
#member #member_main dl dd img#code {
position:relative;
top:8px;
cursor:pointer;
}
#member #member_main dl dd input.submit {
width:60px;
height:22px;
border:1px dashed #333;
background:#fff;
cursor:pointer;
}

客户端验证:

调用了register.js 的代码

window.onload=function(){
code();
//表单验证,客户端
var fm=document.getElementsByTagName('form')[0];
fm.onsubmit=function(){
//密码验证
if(fm.password.value=''){
if (fm.password.value.length < 6) {
alert('密码不得小于6位');
fm.password.value = ''; //清空
fm.password.focus(); //将焦点以至表单字段
return false;
}
}
//邮箱验证
if (!/^[\w\-\.]+@[\w\-\.]+(\.\w+)+$/.test(fm.email.value)) {
alert('邮件格式不正确');
fm.email.value = ''; //清空
fm.email.focus(); //将焦点以至表单字段
return false;
}
//QQ号码
if (fm.qq.value != '') {
if (!/^[1-9]{1}[\d]{4,9}$/.test(fm.qq.value)) {
alert('QQ号码不正确');
fm.qq.value = ''; //清空
fm.qq.focus(); //将焦点以至表单字段
return false;
}
} //网址
if (fm.url.value != '') {
if (!/^https?:\/\/(\w+\.)?[\w\-\.]+(\.\w+)+$/.test(fm.url.value)) {
alert('网址不合法');
fm.url.value = ''; //清空
fm.url.focus(); //将焦点以至表单字段
return false;
}
}
//验证码验证
if (fm.code.value.length != 4) {
alert('验证码必须是4位');
fm.code.value = ''; //清空
fm.code.focus(); //将焦点以至表单字段
return false;
}
};
};
 

PHP自练项目中个人中心创建,修改,验证(服务器端和客户端验证)的更多相关文章

  1. visual studio 项目中使用EF创建的数据库,后续更新数据库操作(生产已经部署,不能删除数据库重新创建)

    情景:SharePoint项目(其他类型的项目道理也一样),数据库是用EF(版本:6.0.0.0)创建的,生产环境已经使用,所以后续修改数据库,只能通过更新来实现. 下面是具体的操作方式: 1.vis ...

  2. node.js中express模块创建服务器和http模块客户端发请求

    首先下载express模块,命令行输入 npm install express 1.node.js中express模块创建服务端 在js代码同文件位置新建一个文件夹(www_root),里面存放网页文 ...

  3. Android项目中包名的修改

    通常修改包名时会造成R文件错误,并且有时带有原因不明的Manifest文件中多处文本混乱. 所以,将目前认为最为简洁方便的修改包名流程记录如下: 假设我们目前的包名为com.pepper.util,我 ...

  4. react项目中使用less并修改antd主题样式

    一.react项目中使用less 1. 安装配置 npm i -D less less-loader 2. 查看webpack配置 npm run eject 此操作不可逆,生成新的目录. 3. 修改 ...

  5. springboot项目中使用shiro实现用户登录以及权限的验证

    欢迎大家加入我的社区:http://t.csdn.cn/Q52km 社区中不定时发红包 更加高级的验证用户权限:用户表.角色表.权限表.多表联合:https://blog.csdn.net/weixi ...

  6. jetty项目中静态文件不能修改问题

    修改web.xml 在web.xml中加入如下代码: <servlet> <servlet-name>default</servlet-name> <serv ...

  7. Element中(Notification)通知组件字体修改(Vue项目中Element的Notification修改字体)

    这个问题纠结很久,一样的写的为啥有的页面就可以,有的就不行: 后来才发现: 先说一下怎么设置: 先定义customClass一个属性,用来写class属性值: 之后还需要修改一下组件里style标签的 ...

  8. 170925_1 Python socket 创建TCP的服务器端和客户端

    [Python版本]3.6 [遇到的问题] 客户端和服务器端都遇到:TypeError: a bytes-like object is required, not 'str' [解决方案] 参考:ht ...

  9. 170925_2 Python socket 创建UDP的服务器端和客户端

    [python版本]3.6 UDP服务器端: from socket import * from time import ctime host = '' port = 21567 buf_size = ...

随机推荐

  1. protel99与win7兼容问题的解决方案

    一些用户大概都已经把自己的 PC 从 winXP 换到了 win7,在 win7 给我们带来的视觉上的冲击和功能上的更换.也不时的带来了各方面的软件兼容问题 ,而一般上的兼容都可以在 win7 的自动 ...

  2. 飘逸的python - 用urlparse从url中抽离出想要的信息

    最近有个需求,要检测配置中的那些url的域名是否都正常,即是否都能ping通. 不过配置中url格式是这样的 http://www.something.com:1234/ . 要ping的是www.s ...

  3. 启用Spring quartz定时器,导致tomcat服务器自动停止

    在项目中添加了一个定时功能,基于Spring quartz: 设置好执行时间后(如:每天14:00) 当程序执行完后,就会出现以下信息: 2013-7-22 11:36:02 org.apache.c ...

  4. Linux进程间通信总结

    刚请完婚假,请假期间做了些技术总结,其中一个就是Linux进程间通信方式的总结. Linux提供了多种进程间通信的方式,列举如下: PIPE(管道) FIFO(先进先出,也称为有名管道) domain ...

  5. BootStrap 智能表单系列 八 表单配置json详解

    本章属于该系列的高级部分,将介绍表单中一些列的配置 1.config列的配置: 主要用于控制布局 :config:{autoLayout:true|'1,2,2,4'} true:根据配置项最里层的数 ...

  6. 初步认识ExtJS

    最近因为项目,需要去学习ExtJS的相关内容. 现在对于ExtJS完全是小白一枚. 目前使用的是ExtJS4.2的版本,官网上现在最新版本是6的. 第一个方法:Ext.onReady() Ext.on ...

  7. Lucence.Net学习+盘古分词

    创建索引库          //读取文件,存储到索引库           public string CreateDatebase()         {         //获取索引库的路径   ...

  8. MicroStrategy笔试

    1. coding判定二叉树是否是有序二叉树 2. 一个有序数组A(buffer足够大),和一个有序数组B,设计算法,merge两个数组后有序,不使用任何额外的内存空间 3. 100个点灯问题,初始状 ...

  9. qt 国际化(翻译时会触发changeEvent)

    1. 修改工程文件 .pro ,加入翻译源文件 hello_world.ts: TRANSLATIONS += \        Resource/translations/hello_world.t ...

  10. Microsoft 收购 Apiphany

    StevenMartinMS 2013 年 10 月 23 日上午 10:00 今天,我高兴地宣布我们收购了业界领先的 API 管理交付平台 - Apiphany. 应用程序可扩展性已经不算什么新鲜事 ...