php使用者註冊登入系統之註冊...LOGIN

php使用者註冊登入系統之註冊處理頁面

註冊處理頁面

流程圖如下:

第二版注册.png

#詳細程式碼如下:
  • <?php  
    session_start();
    //注册处理界面 regcheck.php
        if(isset($_POST["hidden"]) && $_POST["hidden"] == "hidden")  
        {  
            $user = trim($_POST["username"]);//trim()函数移除字符串两侧的空白字符
            $psw = md5(trim($_POST["userpwd"]));  
            $psw_confirm = md5(trim($_POST["confirm"])); 
            $code = $_POST["code"];
            if($user == "" || $psw == "" || $psw_confirm == "")  
            {  
                echo "<script>alert('请确认信息完整性!'); history.go(-1);</script>";  
            }
            else if($code != $_SESSION[' ver_code']){
                echo "<script>alert('验证码不正确,请重新输入!'); history.go(-1);</script>";
            }  
            else   
            {  
                if($psw == $psw_confirm)  
                {  
                    $conn = mysqli_connect("localhost","root","root");   //连接数据库,帐号密码为自己数据库的帐号密码  
                    if(mysqli_errno($conn)){
                        echo mysqli_error($conn);
                        exit;
                    }
                    mysqli_select_db($conn,"userdb");  //选择数据库  
                    mysqli_set_charset($conn,'utf8'); //设定字符集  
                    $sql = "select username from user where username = '$user'"; //SQL语句
                    $result = mysqli_query($conn,$sql);    //执行SQL语句  
                    $num = mysqli_num_rows($result); //统计执行结果影响的行数  
                    
                    if($num)    //如果已经存在该用户  
                    {  
                        echo "<script>alert('用户名已存在'); history.go(-1);</script>";  
                    }  
                    else    //不存在当前注册用户名称  
                    {   
                        $ip=ip2long($_SERVER['REMOTE_ADDR']); // 把ip地址转换成整型
                        $time=time();
                        $sql_insert = "insert into `user` (`username`,`userpwd`,`createtime`,`createip`) values('" . $user . "','" . $psw ."','".$time."','".$ip."')"; 
                        $res_insert = mysqli_query($conn,$sql_insert);  
                        if($res_insert)  
                        {  
                            echo "<script>alert('注册成功!');window.location.href='login.php';</script>";  
                        }  
                        else  
                        {  
                            echo "<script>alert('系统繁忙,请稍候!'); history.go(-1);</script>";  
                        }  
                    }  
                }  
                else  
                {  
                    echo "<script>alert('密码不一致!'); history.go(-1);</script>";  
                }  
            }  
        }  
        else  
        {  
            echo "<script>alert('提交未成功!');</script>";  
        }  
    ?>

    程式碼解釋:
  • 當在註冊頁面點擊註冊時進入註冊處理頁面
  • 判斷post方式傳過來的$_POST["hidden"]是否存在,不存在則提示提交未成功,返回註冊介面,存在則繼續。

  • 將傳過來的值取得到(利用trim()函數過濾空白字符,密碼使用md5()函數加密),然後判斷是否為空,為空則彈出提示,傳回註冊介面,不為空則繼續
  • 判斷post方式傳遞過來的驗證碼值與先前存在session裡面的驗證碼值是否相等,不相等則提示驗證碼不正確,返回註冊頁面,相等則繼續執行
  • 判斷傳過來的密碼和確認密碼是否相等,不相等則提示密碼不一致,相等則繼續
  • 連接資料庫、選擇我們建立的資料庫、設定字元集、透過使用者名稱查詢資料庫,有結果則提示使用者名稱存在,返回註冊頁面,沒有結果則執行資料庫插入語句,插入資料(插入資料庫的欄位增加了註冊時間以及註冊是使用的ip號)


透過插入語句的回傳值,判斷是否插入成功,不成功則傳回註冊頁面重新註冊,成功則提示註冊成功,跳到登入頁面##################下一節
<?php session_start(); //注册处理界面 regcheck.php if(isset($_POST["hidden"]) && $_POST["hidden"] == "hidden") { $user = trim($_POST["username"]);//trim()函数移除字符串两侧的空白字符 $psw = md5(trim($_POST["userpwd"])); $psw_confirm = md5(trim($_POST["confirm"])); $code = $_POST["code"]; if($user == "" || $psw == "" || $psw_confirm == "") { echo "<script>alert('请确认信息完整性!'); history.go(-1);</script>"; } else if($code != $_SESSION[' ver_code']){ echo "<script>alert('验证码不正确,请重新输入!'); history.go(-1);</script>"; } else { if($psw == $psw_confirm) { $conn = mysqli_connect("localhost","root","root"); //连接数据库,帐号密码为自己数据库的帐号密码 if(mysqli_errno($conn)){ echo mysqli_error($conn); exit; } mysqli_select_db($conn,"userdb"); //选择数据库 mysqli_set_charset($conn,'utf8'); //设定字符集 $sql = "select username from user where username = '$user'"; //SQL语句 $result = mysqli_query($conn,$sql); //执行SQL语句 $num = mysqli_num_rows($result); //统计执行结果影响的行数 if($num) //如果已经存在该用户 { echo "<script>alert('用户名已存在'); history.go(-1);</script>"; } else //不存在当前注册用户名称 { $ip=ip2long($_SERVER['REMOTE_ADDR']); // 把ip地址转换成整型 $time=time(); $sql_insert = "insert into `user` (`username`,`userpwd`,`createtime`,`createip`) values('" . $user . "','" . $psw ."','".$time."','".$ip."')"; $res_insert = mysqli_query($conn,$sql_insert); if($res_insert) { echo "<script>alert('注册成功!');window.location.href='login.php';</script>"; } else { echo "<script>alert('系统繁忙,请稍候!'); history.go(-1);</script>"; } } } else { echo "<script>alert('密码不一致!'); history.go(-1);</script>"; } } } else { echo "<script>alert('提交未成功!');</script>"; } ?>
章節課件