PHP는 사용자 등록 단계를 거쳐 데이터베이스를 운영합니다.

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

1. 사용자 이름

2. 비밀번호

3. 비밀번호 반복

사용자는 세 가지를 씁니다. 매개변수 다음에 제출을 클릭하면 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. 쓸 데이터를 준비합니다

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

표시되는 데이터는 다음과 같습니다.

变量说明
$_POST['username']用户名
$_POST['password']密码

불필요한 정보가 입력되지 않도록 사용자 이름 양쪽의 공백을 제거해야 합니다.

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

보이지 않는 데이터에는 다음이 포함됩니다.

变量说明
$time用户的注册时间
$_SERVER['REMOTE_ADDR']用户的注册IP


1. 시간에 의해 반환된 unix 타임스탬프

2. REMOTE_ADDR은 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','liwenkaihaha');
//如果有错误,存在错误号
if(mysqli_errno($conn)){
    echo mysqli_error($conn);
    exit;
}
mysqli_select_db($conn,'user');
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;

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

idusernamepasswordcreatetimecreateip
用户编号用户名密码创建时间创建IP

5. 명령문 보내기 및 상태 확인

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

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

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. 데이터베이스 연결을 닫습니다.

리소스 변수를 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', 'liwenkaihaha');

//如果有错误,存在错误号
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);

?>


지속적인 학습
||
<?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', 'liwenkaihaha'); //如果有错误,存在错误号 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); ?>
  • 코스 추천
  • 코스웨어 다운로드
현재 코스웨어를 다운로드할 수 없습니다. 현재 직원들이 정리하고 있습니다. 앞으로도 본 강좌에 많은 관심 부탁드립니다~