사용자 등록 기능 구현

가장 간단한 등록 페이지를 만들어드립니다. 등록 페이지에는 세 가지 매개변수가 있습니다:

1. 사용자 이름

2. 비밀번호

사용자가 세 가지를 작성한 후 매개변수, 제출을 클릭하면 POST 레코드가 connect.php 페이지로 전달됩니다.

POST 레코드를 처리하여 MySQL 데이터베이스에 기록하면 사용자 등록이 완료됩니다.

코드는 다음과 같습니다.

<form action="connect.php" method="post">
    用户名:<input type="text" name="username"><br />
    密码:<input type="password" name="password"><br />
    重复密码:<input type="password" name="repassword"><br />
    <input type="submit" value="提交">
</form>

더 빠른 성능을 달성하기 위해 코드 인터페이스를 미화하지 않았습니다. 최대한 빠르게 사용자 등록을 안내해 드리겠습니다.

1. 비밀번호 중복 여부 판단 비밀번호 반복으로 인해 사용자가 두 번 입력한 비밀번호가 일치하지 않는 경우 다음 단계로 진행되지 않았습니다.

웹페이지의 여러 곳에서는 여전히 반복되는 비밀번호가 사용되고 있습니다. 사용자가 실수할 것이라는 두려움 때문입니다. 비밀번호가 잘못 입력되었습니다.

사용자는 비밀번호 입력 시 왼쪽과 오른쪽에 두 개의 공백을 더 입력할 수 있습니다. 따라서 우리는 Trim을 사용하여 비밀번호와 반복되는 비밀번호의 양쪽 공백을 제거하겠습니다.

if(trim($_POST['password']) != trim($_POST['repassword'])){
    exit('两次密码不一致,请返回上一页');
}

2. 쓸 데이터를 준비합니다사용자 입력 데이터와 숨겨진 데이터를 모두 데이터베이스에 써야 합니다.

표시되는 데이터

에는 다음이 포함됩니다.

QQ截图20161010095013.png1. 불필요한 입력을 피하기 위해 사용자 이름 양쪽의 공백을 제거해야 합니다. 이 정보.

2. mysql 장에서 사용자의 비밀번호는 회사 내부자를 포함한 누구에게도 공개되어서는 안 된다고 언급했습니다. 비밀번호는 되돌릴 수 없는지 확인하세요. 초기 단계에서는 MD5만 배우세요. 앞으로는 다른 암호화 방법을 가르쳐 드리겠습니다.

보이지 않는 데이터

에는 다음이 포함됩니다.

QQ截图20161010095025.png1. 시간별로 반환되는 Unix 타임스탬프

2. IP 주소를 ip2long을 사용하여 정수 저장소로 변환할 수 있습니다.

$username = trim($_POST['username']);
$password = md5(trim($_POST['password']));
$time = time();
$ip = ip2long($_SERVER['REMOTE_ADDR']);

3. 데이터베이스 연결, 오류 판단, 라이브러리 및 문자 집합 선택1. mysqli_connect를 사용하여 데이터베이스에 연결합니다. 섬기는 사람.

2. 오류가 있으면 mysqli_errno를 사용하여 오류 번호를 가져옵니다

3. 오류가 있으면 mysqli_error는 모든 오류를 인쇄하고 프로그램 실행을 종료합니다

4. 데이터베이스를 선택하고 문자 집합을 utf8로 설정합니다.

//데이터베이스에 연결

$conn = mysqli_connect('localhost','root','123456789');

//오류가 있으면 오류 번호가 있습니다

if(mysqli_errno($conn)){
    echo mysqli_error($conn);
    exit;
}
mysqli_select_db($conn,'book');
mysqli_set_charset($conn,'utf8');

4. 결합 SQL 문 얻은 정보를 데이터베이스에 기록해야 합니다. 사용자 이름, 비밀번호, 생성 시간 및 IP.

SQL 문에 해당 변수를 삽입하면 됩니다. 결합된 SQL 문은 다음과 같습니다.

$sql = "insert into user(username,password,createtime,createip) values('" . $username . "','" . $password . "','" . $time . "','" . $ip . "')";

그리고 테이블을 생성하는 명령문은 다음과 같습니다.

CREATE TABLE IF NOT EXISTS user (
 id int(11) NOT NULL,
 username varchar(30) NOT NULL,
 password char(32) NOT NULL,
 createtime int(11) NOT NULL,
 createip int(11) DEFAULT NULL
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

테이블 형식(필드 해당 설명):

QQ截图20161010095041.png

QQ截图20161010095055.png

5. 명령문을 보내고 상태를 확인합니다.

mysqli_query 위에서 말했듯이 두 개의 매개변수가 전달되어야 합니다.

1. 연결된 리소스, 여기서 해당 변수는 $conn입니다.

2. SQL 문이 전송되었습니다. $sql은 위에서 이미 준비되어 있습니다.

mysqli_query를 통해 SQL문을 MySQL 서버로 보낼 수 있습니다. $result는 성공적으로 전송되면 true입니다. 그렇지 않으면 거짓입니다.

성공하면 사용자에게 등록이 성공했다는 메시지를 표시할 수 있습니다.

어떤 경우에는 mysqli_insert_id()를 사용해야 할 수도 있습니다. 여기에 자동 증가된 기본 키 ID를 인쇄하세요.

앞으로 필요할 때 잊지 않도록 이 지식 포인트를 기억해 두시기 바랍니다.

mysqli_insert_id 애플리케이션 시나리오: 새로 추가된 데이터 행. 이 ID 값을 다른 테이블에 삽입할 때 자동으로 증가하는 ID 값을 가져와야 합니다. 이 기능을 사용해야 합니다.

$result = mysqli_query($conn,$sql);
if($result){
    echo '注册成功';
}else{
    echo '注册失败';
}
echo '当前用户插入的ID为'.mysqli_insert_id($conn);

5. 데이터베이스 연결을 닫습니다.

resource 변수를 mysqli_close 함수에 전달합니다.

mysqli_close($conn);

사용자 등록을 위한 기본 구현 코드가 작성되었습니다. 위에서 이야기한 내용은 코드 조각입니다.

우리가 구현한 connect.php 코드는 다음과 같습니다.

<?php
if (trim($_POST['password']) != trim($_POST['repassword'])) {
    exit('两次密码不一致,请返回上一页');
}
$username = trim($_POST['username']);
$password = md5(trim($_POST['password']));
$time = time();
$ip = $_SERVER['REMOTE_ADDR'];
$conn = mysqli_connect('localhost', 'root', '123456789');
//如果有错误,存在错误号
if (mysqli_errno($conn)) { 
    echo mysqli_error($conn);
    exit;
}
mysqli_select_db($conn, 'book');
mysqli_set_charset($conn, 'utf8');
$sql = "insert into user(username,password,createtime,createip) values('" . $username . "','" . $password . "','" . $time . "','" . $ip . "')";
$result = mysqli_query($conn, $sql);
if ($result) {
    echo '成功';
} else {
    echo '失败';
}
echo '当前用户插入的ID为' . mysqli_insert_id($conn);
mysqli_close($conn);
?>


지속적인 학습
||
<form action="connect.php" method="post"> 用户名:<input type="text" name="username"><br /> 密码:<input type="password" name="password"><br /> 重复密码:<input type="password" name="repassword"><br /> <input type="submit" value="提交"> </form>
  • 코스 추천
  • 코스웨어 다운로드
현재 코스웨어를 다운로드할 수 없습니다. 현재 직원들이 정리하고 있습니다. 앞으로도 본 강좌에 많은 관심 부탁드립니다~