사용자 등록의 주요 기능은 앞서 소개되었습니다. 이 페이지에서는 이러한 기능을 PHP 코드를 통해 구현합니다.
POST 메소드를 사용하여 데이터를 얻습니다.
<?php $username = $_POST['username']; //注册的用户名 $password = $_POST['password']; //注册密码 $confirm = $_POST['confirm']; //确认密码 $email = $_POST['email']; //邮箱 $code = $_POST['code']; //验证码 ?>
우리가 생성한 데이터베이스와 테이블에 계속 연결하세요
<?php $link = mysqli_connect('localhost','root','root','test'); if (!$link) { die("连接失败:".mysqli_connect_error()); } $sql = "select * from login"; $result = mysqli_query($link, $sql); $rows = mysqli_fetch_array($result); ?>
입력한 사용자 이름과 이메일 주소를 정규화해야 합니다
<?php if ((strlen($username) < 3)||(!preg_match('/^\w+$/i', $username))) { echo "<script>alert('用户名至少3位且不含非法字符!重新填写');window.location.href='zhuce'</script>"; //判断用户名长度和非法字符 } if (!preg_match('/^[\w\.]+@\w+\.\w+$/i', $email)) { echo "<script>alert('邮箱不合法!重新填写');window.location.href='zhuce.html'</script>"; //判断邮箱格式是否合法 } ?>
여기서 사용자 로그인과 가장 큰 차이점은 해당 사용자 이름을 다른 사용자가 등록한 경우에는 로그인할 수 없습니다. 이 사용자 이름을 사용하세요.
먼저 데이터베이스에 이미 존재하는 사용자 이름 데이터를 읽어보고 판단해야 합니다.
<?php if(mysqli_fetch_array(mysqli_query($link,"select * from login where username = '$username'"))) { echo "<script>alert('用户名已存在');window.location.href='zhuce.html'</script>"; // 判断用户名是否已经被注册 } ?>
완전한 zhuce.php 파일 코드:
<?php session_start(); header("Content-type:text/html;charset=utf-8"); $link = mysqli_connect('localhost','root','root','test'); if (!$link) { die("连接失败:".mysqli_connect_error()); } $username = $_POST['username']; $password = $_POST['password']; $confirm = $_POST['confirm']; $email = $_POST['email']; $code = $_POST['code']; if($username == "" || $password == "" || $confirm == "" || $email == "" || $code == "") { echo "<script>alert('信息不能为空!重新填写');window.location.href='zhuce.html'</script>"; } elseif ((strlen($username) < 3)||(!preg_match('/^\w+$/i', $username))) { echo "<script>alert('用户名至少3位且不含非法字符!重新填写');window.location.href='zhuce'</script>"; //判断用户名长度 }elseif(strlen($password) < 5){ echo "<script>alert('密码至少5位!重新填写');window.location.href='zhuce.html'</script>"; //判断密码长度 }elseif($password != $confirm) { echo "<script>alert('两次密码不相同!重新填写');window.location.href='zhuce.html'</script>"; //检测两次输入密码是否相同 } elseif (!preg_match('/^[\w\.]+@\w+\.\w+$/i', $email)) { echo "<script>alert('邮箱不合法!重新填写');window.location.href='zhuce.html'</script>"; //判断邮箱格式是否合法 } elseif($code != $_SESSION['authcode']) { echo "<script>alert('验证码错误!重新填写');window.location.href='zhuce.html'</script>"; //判断验证码是否填写正确 } elseif(mysqli_fetch_array(mysqli_query($link,"select * from login where username = '$username'"))){ echo "<script>alert('用户名已存在');window.location.href='zhuce.html'</script>"; } else{ $sql= "insert into login(username, password, confirm, email)values('$username','$password','$confirm','$email')"; //插入数据库 if(!(mysqli_query($link,$sql))){ echo "<script>alert('数据插入失败');window.location.href='zhuce.html'</script>"; }else{ echo "<script>alert('注册成功!)</script>"; } } ?>
등록 페이지에 들어가 올바른 데이터를 모두 입력한 다음 데이터베이스를 열면 방금 추가한 데이터가 이미 존재하는 것을 확인할 수 있습니다.
예: 여기서는 사용자 이름 Sell, 비밀번호, 확인 비밀번호 12345, 이메일 주소 123@www.com을 가진 사용자를 추가합니다.
참고: 이 강좌는 단순한 사용자 등록 데모일 뿐입니다. 해당 코드는 학습 참조용일 뿐이며 프로젝트에 직접 사용할 수 없습니다.
다음 섹션