PHP 사용자 등록 로그인 시스템 등록 처리 페이지
등록 처리 페이지
플로우 차트는 다음과 같습니다.
상세 코드는 다음과 같습니다.
<?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 메소드에 의해 전달된 인증 코드 값이 이전에 세션에 존재했던 인증 코드 값과 동일한지 여부를 판단합니다. 동일하면 인증코드가 잘못되었다는 메시지가 표시되고 동일하면 계속 실행하세요.
전달된 비밀번호와 확인된 비밀번호가 동일하지 않은지 확인하세요. 비밀번호가 일치하지 않는다는 메시지가 표시됩니다.
데이터베이스에 연결하고, 생성한 데이터베이스를 선택하고, 문자 집합을 설정하고, 사용자 이름으로 데이터베이스를 쿼리하고, 결과가 있으면 사용자 이름이 존재한다는 메시지가 표시되고 등록 페이지로 돌아가서 결과가 없으면 데이터베이스 삽입 문을 실행하고 데이터를 삽입하세요(데이터베이스에 삽입된 필드에는 등록 시간과 등록에 사용된 IP 번호가 추가됩니다)
삽입 문의 반환 값을 사용하여 삽입 성공 여부를 확인한 다음 등록 페이지로 돌아가서 다시 등록하면 등록이 성공했다는 메시지가 표시되고 로그인 페이지로 이동합니다