PHP自练项目中个人中心创建,修改,验证(服务器端和客户端验证)

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

第一步:创建个人中心:

<?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:0;
    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:0;
    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\-\.][email protected][\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;
    }
    };
};
 
时间: 2024-11-03 22:45:45

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

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

情景:SharePoint项目(其他类型的项目道理也一样),数据库是用EF(版本:6.0.0.0)创建的,生产环境已经使用,所以后续修改数据库,只能通过更新来实现. 下面是具体的操作方式: 1.visual studio 打开项目,打开“程序包管理控制台”. 操作方式:视图--其他窗口--程序包管理控制台 2.项目“引用”中 EntityFramework.SqlServer.dll 和 EntityFramework.dll 这两个文件的属性要复制到本地 操作方式:选中文件--按F4--属性对

Android项目中包名的修改

通常修改包名时会造成R文件错误,并且有时带有原因不明的Manifest文件中多处文本混乱. 所以,将目前认为最为简洁方便的修改包名流程记录如下: 假设我们目前的包名为com.pepper.util,我们将要把包名修改为com.pp.util 1.点击项目右击-->Android Tools-->rename application package:修改好包名-->点击OK-->点击finish:Launch configuration update-->点击Yes 2.假设你

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

这个问题纠结很久,一样的写的为啥有的页面就可以,有的就不行: 后来才发现: 先说一下怎么设置: 先定义customClass一个属性,用来写class属性值: 之后还需要修改一下组件里style标签的scoped,并且写对应的css. 这是修改好的,修改之前是这样的. 之后就可以啦,就这样.记得修改一下组件里style标签的scoped 关于这个style标签的scoped意思是局部css的意思, https://blog.csdn.net/weixin_33708432/article/det

在linux服务器centos上使用svn同步代码到项目中

一.需求 1.在多人开发过程中代码的管理以及版本的控制是一个很重要的问题,因为在开发过程中我们可能会同时更改过某个文件或者更改过多个文件, 这会导致我们很容易发生错误.所以我们需要一个方式去管理我们的代码. 二.解决方案 1.使用svn管理代码 2.使用git管理代码 这两种代码管理方式的差异性我看过的这个文章写的很详细http://blog.csdn.net/jackjia2015/article/details/50607408,有兴趣可以看看,这里就不不 谈他们的差异性了,毕竟本文章的是讲

C#.NET常见问题(FAQ)-程序如何把窗体文件从从一个项目中复制到另一个项目

一个窗体有三个文件,全部拷贝到新的项目中 ? 在新的项目中点击显示所有文件,然后右击导入的文件,点击包括在项目中,会自动修改颜色(此时还没有被识别为窗体) ? 重启这个项目,三个文件已经被识别出来了 ? ? 更多教学视频和资料下载,欢迎关注以下信息: 我的优酷空间: http://i.youku.com/acetaohai123 ? 我的在线论坛: http://csrobot.gz01.bdysite.com/ ? 问题交流: QQ:910358960 邮箱:[email protected]

web项目中解决post乱码和get乱码的方法

前提复习编码问题产生的原因: 1.  什么是URL编码. URL编码是一种浏览器用来打包表单输入的格式,浏览器从表单中获取所有的name和其对应的value,将他们以name/value编码方式作为URL的一部分或者分离的发送到服务器上. 2.  URL编码规则. 每对name/value由&分开,每对来自表单的name/value用=分开.如果用户没有输入值的那个name依旧会出现不过就是没有值. URL编码是在字符ASCII码的十六进制数的前面加上%.例如\(她的十六进制数表示为5c)的UR

关于在项目中多个类继承FragmentPagerAdapter时,改变getCount(),FC的问题解决

在贸易通项目,报以下FC 08-21 09:56:21.515: E/AndroidRuntime(1629): java.lang.IllegalStateException: The application's PagerAdapter changed the adapter's contents without calling PagerAdapter#notifyDataSetChanged! Expected adapter item count: 2, found: 50000 Pa

在Spring Boot项目中使用Redis集群

Redis安装 Mac 系统安装Redis brew方式安装 在命令汗执行命令 brew install redis 安装完成之后的提示信息 ==> Downloading https://homebrew.bintray.com/bottles/redis-5.0.2.mojave.bottle.tar.gz ######################################################################## 100.0% ==> Pouring

idea 中利用maven创建java web 项目

转自:http://www.linuxidc.com/Linux/2014-04/99687.htm 本文主要使用图解介绍了使用IntelliJ IDEA 12创建Maven管理的Java Web项目的过程. IntelliJ IDEA 的详细介绍:请点这里IntelliJ IDEA 的下载地址:请点这里 相关阅读: IntelliJ IDEA: 字体美化(anti-aliased)和字体添加 http://www.linuxidc.com/Linux/2013-11/92609.htm Int