사용자 등록을 구현하는 PH...LOGIN

사용자 등록을 구현하는 PHP 개발 기본 튜토리얼

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

  • 사용자 이름

  • 비밀번호

  • 중복 비밀번호

사용자가 세 가지 매개변수를 작성한 후 제출을 클릭하면 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'] 
密码    

설명<🎜> < br/>
$_POST['사용자 이름'] <🎜>
사용자 이름 <🎜>
$_POST['password'] <🎜>< br/>비밀번호<🎜> <🎜>
  • 불필요한 정보를 입력하지 않으려면 사용자 이름 양쪽의 공백을 제거해야 합니다.

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

보이지 않는 데이터는 다음과 같습니다:


< td style="word-break: break-all; border-width: 1px; border-style: solid;" width="193" valign="top"> $_SERVER['REMOTE_ADDR'] <🎜>
변수
变量
说明
$time
用户的注册时间
$_SERVER['REMOTE_ADDR'] 
用户的注册IP   
설명<🎜>
$time<🎜>사용자 등록 시간<🎜>
사용자가 등록한 IP
  • 시간별로 반환된 unix 타임스탬프

  • REMOTE_ADDR은 IP 주소를 반환하며, ip2long을 사용하여 정수 저장소로 변환할 수 있습니다.

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

3. 데이터베이스에 연결하고, 오류를 판단하고, 라이브러리 및 문자 집합을 선택합니다

  • mysqli_connect를 사용하여 데이터베이스 서버에 연결합니다.

  • 오류가 발생하면 mysqli_errno를 사용하여 오류 번호를 가져옵니다.

  • 오류가 발생하면 mysqli_error는 모든 오류를 인쇄하고 종료합니다. 프로그램 실행

  • 데이터베이스를 선택하고 문자셋을 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;

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

< tbody>< td width=" 193" valign="top">사용자 이름<🎜>
ID
id
username
password
createtime
createip
用户编号
用户名 
  密码  
创建时间

创建IP         


비밀번호<🎜>
생성 시간<🎜>
createip<🎜>
사용자 번호< 🎜>
사용자 이름 <🎜>
< /td>
비밀번호 <🎜>
생성 시간<🎜>
<🎜>IP 생성 <🎜> <🎜><🎜>< /td>
<…

연결된 리소스, 여기서 해당 변수는 $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);

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

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', '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);
?>

다음 섹션
<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>
코스웨어