zoukankan      html  css  js  c++  java
  • PHP 用户注册

    注册页面

    reg.html 负责收集用户填写的注册信息。教程里只列出关键的代码片段,完整的代码附在本节最后。

    注册表单

    <fieldset>
    <legend>用户注册</legend>
    <form name="RegForm" method="post" action="reg.php" onSubmit="return InputCheck(this)">
    <p>
    <label for="username" class="label">用户名:</label>
    <input id="username" name="username" type="text" class="input" />
    <span>(必填,3-15字符长度,支持汉字、字母、数字及_)</span>
    <p/>
    <p>
    <label for="password" class="label">密 码:</label>
    <input id="password" name="password" type="password" class="input" />
    <span>(必填,不得少于6位)</span>
    <p/>
    <p>
    <label for="repass" class="label">重复密码:</label>
    <input id="repass" name="repass" type="password" class="input" />
    <p/>
    <p>
    <label for="email" class="label">电子邮箱:</label>
    <input id="email" name="email" type="text" class="input" />
    <span>(必填)</span>
    <p/>
    <p>
    <input type="submit" name="submit" value="  提交注册  " class="left" />
    </p>
    </form>
    </fieldset>
    

    javascript 检测代码

    <script language=JavaScript>
    <!--
    
    function InputCheck(RegForm)
    {
      if (RegForm.username.value == "")
      {
        alert("用户名不可为空!");
        RegForm.username.focus();
        return (false);
      }
      if (RegForm.password.value == "")
      {
        alert("必须设定登录密码!");
        RegForm.password.focus();
        return (false);
      }
      if (RegForm.repass.value != RegForm.password.value)
      {
        alert("两次密码不一致!");
        RegForm.repass.focus();
        return (false);
      }
      if (RegForm.email.value == "")
      {
        alert("电子邮箱不可为空!");
        RegForm.email.focus();
        return (false);
      }
    }
    
    //-->
    </script>
    

    CSS 样式

    <style type="text/css">
        html{font-size:12px;}
        fieldset{520px; margin: 0 auto;}
        legend{font-weight:bold; font-size:14px;}
        label{float:left; 70px; margin-left:10px;}
        .left{margin-left:80px;}
        .input{150px;}
        span{color: #666666;}
    </style>
    

    注册表单效果图:

    注册表单效果图

    数据库连接

    <?php
    $conn = @mysql_connect("localhost","root","root123");
    if (!$conn){
        die("连接数据库失败:" . mysql_error());
    }
    mysql_select_db("test", $conn);
    //字符转换,读库
    mysql_query("set character set 'gbk'");
    //写库
    mysql_query("set names 'gbk'");
    ?>
    

    注册处理

    reg.php 负责处理用户注册信息。

    注册检测

    if(!isset($_POST['submit'])){
        exit('非法访问!');
    }
    $username = $_POST['username'];
    $password = $_POST['password'];
    $email = $_POST['email'];
    //注册信息判断
    if(!preg_match('/^[wx80-xff]{3,15}$/', $username)){
        exit('错误:用户名不符合规定。<a href="javascript:history.back(-1);">返回</a>');
    }
    if(strlen($password) < 6){
        exit('错误:密码长度不符合规定。<a href="javascript:history.back(-1);">返回</a>');
    }
    if(!preg_match('/^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$/', $email)){
        exit('错误:电子邮箱格式错误。<a href="javascript:history.back(-1);">返回</a>');
    }
    

    本段代码首先检测是否 POST 提交访问该页,接下来根据注册要求(用户名 3-15 字符长度,支持汉字、字母、数字及_;密码不得少于 6 位)对用户提交的注册信息进行检测。在检测用户名和电子邮箱时采用了正则检测,关于正则表达式更所信息请参看《PHP 正则表达式》。

    数据库交互

    //包含数据库连接文件
    include('conn.php');
    //检测用户名是否已经存在
    $check_query = mysql_query("select uid from user where username='$username' limit 1");
    if(mysql_fetch_array($check_query)){
        echo '错误:用户名 ',$username,' 已存在。<a href="javascript:history.back(-1);">返回</a>';
        exit;
    }
    //写入数据
    $password = MD5($password);
    $regdate = time();
    $sql = "INSERT INTO user(username,password,email,regdate)VALUES('$username','$password','$email',
    $regdate)";
    if(mysql_query($sql,$conn)){
        exit('用户注册成功!点击此处 <a href="login.html">登录</a>');
    } else {
        echo '抱歉!添加数据失败:',mysql_error(),'<br />';
        echo '点击此处 <a href="javascript:history.back(-1);">返回</a> 重试';
    }
    

    该段代码首先检测用户名是否已经存在,如果存在则输出提示信息并立即终止程序执行。如果用户名不存在则把注册信息写入数据库,并输出对应提示信息。 

  • 相关阅读:
    scala java 混合编译配置
    hadoop自带RPC的使用 代码demo
    《Java多线程设计模式》学习
    b+tree(mongoDB索引,mysql 索引) LSM树(hbase ) Elasticsearch索引
    java jvm虚拟机类加载器
    java jvm虚拟机类加载过程
    凉拌麻辣鸡丝
    C#与C++区别-------转载自博客园-Wei_java
    2019.1.17-我不选ABCD,我选E
    2019.1.1-考研总结and如果二战怎么办
  • 原文地址:https://www.cnblogs.com/wang1204/p/5569912.html
Copyright © 2011-2022 走看看