백엔드 개발 PHP 튜토리얼 PHP 개발 스킬: 사용자 등록 SMS 확인 기능 구현 방법

PHP 개발 스킬: 사용자 등록 SMS 확인 기능 구현 방법

Sep 21, 2023 pm 02:37 PM
PHP 개발 사용자 등록 SMS 확인 PHP 개발 스킬

PHP 개발 스킬: 사용자 등록 SMS 확인 기능 구현 방법

PHP 개발 기술: 사용자 등록 SMS 확인 기능 구현 방법

인터넷 시대에 사용자 등록은 웹사이트와 애플리케이션에서 일반적인 동작이 되었습니다. 사용자의 계정 보안을 보호하고 악의적인 등록을 방지하기 위해 많은 회사에서는 SMS 인증 기능을 활성화했습니다. 사용자는 본인 여부와 유효성을 확인하기 위해 등록 시 휴대폰 번호를 입력하고 SMS 인증 코드를 받아야 합니다. 이 기사에서는 PHP 언어를 사용하여 사용자 등록 SMS 확인 기능을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다.

1단계: 개발 환경 준비

먼저 MySQL과 같은 PHP 파서와 데이터베이스가 설치되어 있는지 확인하세요. 또한 사용 가능한 SMS 플랫폼도 필요합니다. 이 예에서는 Alibaba Cloud SMS 서비스(Aliyun SMS)를 사용합니다. Alibaba Cloud에 계정을 등록하고 설명서에 따라 API 키를 구성하고 획득해야 합니다.

2단계: 데이터베이스 만들기

"users"라는 데이터베이스를 만들고 데이터베이스에 "users"라는 테이블을 만듭니다. 테이블의 구조는 다음과 같습니다:

CREATE TABLE users (
  id INT AUTO_INCREMENT PRIMARY KEY,
  username VARCHAR(255) NOT NULL,
  password VARCHAR(255) NOT NULL,
  mobile VARCHAR(20) UNIQUE NOT NULL,
  status TINYINT(1) DEFAULT 0,
  verification_code VARCHAR(6) DEFAULT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
로그인 후 복사

이 테이블에는 사용자 이름, 비밀번호, 휴대폰 번호, 사용자 상태, 인증 코드 및 생성 시간을 포함한 사용자 정보가 저장됩니다.

3단계: SMS 인증코드 보내기

다음으로 SMS 인증코드를 보내는 PHP 함수를 작성하겠습니다. 이 함수에서는 Alibaba Cloud의 SMS API를 호출하고 휴대폰 번호와 인증 코드를 매개변수로 전달해야 합니다.

function sendSMS($mobile, $verificationCode) {
  $accessKeyId = '<Your Access Key Id>';
  $accessSecret = '<Your Access Key Secret>';
  $params = [
    'PhoneNumbers' => $mobile,
    'SignName' => '<Your Sign Name>',
    'TemplateCode' => '<Your Template Code>',
    'TemplateParam' => json_encode(['code' => $verificationCode])
  ];
  $client = new GuzzleHttpClient();
  $response = $client->request('POST', 'https://dysmsapi.aliyuncs.com/', [
    'query' => array_merge($params, ['AccessKeyId' => $accessKeyId]),
    'headers' => ['x-sdk-client' => 'php/2.0.0']
  ]);
  return $response->getBody();
}
로그인 후 복사

이 기능에서는 <Your Access Key Id><Your Access Key Secret>替换为你在阿里云获取的API密钥信息。同时,你还需要将<Your Sign Name><Your Template Code>를 Alibaba Cloud에서 설정한 SMS 서명 및 SMS 템플릿 코드로 바꿔야 합니다.

4단계: 등록 요청 처리

사용자가 등록 요청을 제출하면 해당 휴대폰 번호가 이미 등록되어 있는지 확인해야 합니다. 등록되지 않은 경우 무작위로 6자리 인증 코드를 생성하여 데이터베이스에 저장합니다.

function registerUser($username, $password, $mobile) {
  // 检查手机号码是否已被注册
  if (checkMobileExists($mobile)) {
    return '手机号码已被注册';
  }
  // 生成随机验证码
  $verificationCode = rand(100000, 999999);
  // 保存验证码到数据库
  saveVerificationCode($mobile, $verificationCode);
  // 发送短信验证码
  $response = sendSMS($mobile, $verificationCode);
  return '短信验证码已发送';
}

function checkMobileExists($mobile) {
  // 连接数据库
  $conn = new mysqli('localhost', 'root', 'password', 'users');
  // 检查手机号码是否已存在
  $sql = "SELECT * FROM users WHERE mobile = '{$mobile}'";
  $result = $conn->query($sql);
  return $result->num_rows > 0;
}

function saveVerificationCode($mobile, $verificationCode) {
  // 连接数据库
  $conn = new mysqli('localhost', 'root', 'password', 'users');
  // 保存验证码到数据库
  $sql = "UPDATE users SET verification_code = '{$verificationCode}' WHERE mobile = '{$mobile}'";
  $conn->query($sql);
}
로그인 후 복사

이 샘플 코드에서는 먼저 휴대폰 번호가 등록되었는지 확인합니다. 휴대폰 번호가 이미 존재하는 경우 오류 메시지가 반환됩니다. 그렇지 않으면 무작위 6자리 인증 코드가 생성되어 데이터베이스에 저장됩니다.

5단계: 인증 코드 확인

사용자가 수신된 SMS 인증 코드를 입력한 후 인증 코드가 올바른지 확인해야 합니다. 인증 코드가 정확하면 사용자 상태를 "인증됨"으로 업데이트하여 사용자가 휴대폰 번호로 인증되었음을 나타냅니다.

function verifyCode($mobile, $verificationCode) {
  // 检查验证码是否正确
  if (checkVerificationCode($mobile, $verificationCode)) {
    // 更新用户状态
    updateStatus($mobile);
    return '手机号码验证成功';
  }
  return '验证码错误';
}

function checkVerificationCode($mobile, $verificationCode) {
  // 连接数据库
  $conn = new mysqli('localhost', 'root', 'password', 'users');
  // 检查验证码是否正确
  $sql = "SELECT * FROM users WHERE mobile = '{$mobile}' AND verification_code = '{$verificationCode}'";
  $result = $conn->query($sql);
  return $result->num_rows > 0;
}

function updateStatus($mobile) {
  // 连接数据库
  $conn = new mysqli('localhost', 'root', 'password', 'users');
  // 更新用户状态为已验证
  $sql = "UPDATE users SET status = 1 WHERE mobile = '{$mobile}'";
  $conn->query($sql);
}
로그인 후 복사

이 코드에서는 먼저 인증 코드가 올바른지 확인합니다. 인증 코드가 정확하면 사용자 상태를 1로 업데이트하여 사용자가 휴대폰 번호로 인증되었음을 나타냅니다.

요약:

위 단계를 거쳐 사용자 등록 SMS 인증 기능을 성공적으로 구현했습니다. 사용자는 등록 시 문자 메시지 인증 코드를 받게 됩니다. 올바른 인증 코드를 입력하면 휴대폰 번호의 진위와 유효성이 보장됩니다. 이 SMS 확인 기능은 사용자 계정의 보안을 효과적으로 향상시키고 악의적인 등록 및 계정 도난을 방지할 수 있습니다.

위 코드는 단순한 예시일 뿐이며 실제 프로젝트에서는 기타 보안 조치 및 검증 프로세스의 개선이 필요할 수 있다는 점에 유의하시기 바랍니다. 하지만 이 예를 통해 PHP 언어와 Alibaba Cloud SMS 서비스를 사용하여 사용자 등록 SMS 확인 기능을 구현하는 방법을 배울 수 있습니다.

참조:

  • [Alibaba Cloud SMS API 문서](https://help.aliyun.com/document_detail/55284.html?spm=a2c4g.11186623.6.624.649a645e4YmxKU)

위 내용은 PHP 개발 스킬: 사용자 등록 SMS 확인 기능 구현 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

철도 12306 이메일 주소 등록 방법 철도 12306 이메일 주소 등록 방법 Apr 30, 2024 am 11:33 AM

Railway 12306 이메일 주소를 등록하는 단계는 다음과 같습니다. 12306 웹사이트를 방문하여 "등록"을 클릭하고 "이메일 등록"을 선택한 후 이메일, 이름, 휴대폰 및 기타 정보를 입력하고 비밀번호를 설정하세요. 메시지가 나타나면 확인 정보를 위해 이메일 확인 코드와 휴대폰 확인 코드를 입력하고 "등록 완료"를 클릭하세요.

왜 Bitget Wallet 거래소에 등록할 수 없나요? 왜 Bitget Wallet 거래소에 등록할 수 없나요? Sep 06, 2024 pm 03:34 PM

BitgetWallet 거래소에 등록할 수 없는 이유는 계정 제한, 지원되지 않는 지역, 네트워크 문제, 시스템 유지 관리 및 기술적인 장애 등 다양한 이유가 있습니다. BitgetWallet 거래소에 등록하려면 공식 웹사이트를 방문하여 정보를 입력하고 약관에 동의한 후 등록을 완료하고 신원을 확인하세요.

Gate.io Open Sesame 신규 사용자 등록 및 충전 튜토리얼 Gate.io Open Sesame 신규 사용자 등록 및 충전 튜토리얼 Apr 25, 2024 pm 04:53 PM

Gate.io 계정 등록 및 충전 방법: 1. Gate.io 공식 웹사이트를 방문하여 "등록"을 클릭하세요. 2. 가입방법(이메일 또는 휴대폰)을 선택하고 비밀번호를 설정한 후 약관에 동의합니다. 3. 귀하의 계정에 로그인하고 "충전"을 클릭하세요. 4. 충전할 법정화폐 또는 암호화폐를 선택하고 금액을 입력한 후 충전방법을 선택하세요. 5. 충전 주소를 확보하고 외부 지갑이나 거래소에서 자금을 이체합니다.

Douyin은 왜 두 개의 계정을 가지고 있나요? 휴대폰에 두 개의 TikTok을 설치하는 방법은 무엇입니까? Douyin은 왜 두 개의 계정을 가지고 있나요? 휴대폰에 두 개의 TikTok을 설치하는 방법은 무엇입니까? May 06, 2024 pm 09:28 PM

디지털 시대에 소셜 미디어는 사람들의 삶에 필수적인 부분이 되었습니다. Douyin은 중국에서 가장 인기 있는 단편 동영상 플랫폼 중 하나로 많은 사용자를 확보하고 있습니다. 일부 사용자는 두 개의 계정을 등록하기도 했습니다. 그러면 Douyin은 왜 두 개의 계정을 가지고 있습니까? 이 기사에서는 이 질문에 답하고 휴대폰에 두 개의 Douyin 계정을 설치하는 방법을 설명합니다. 1. Douyin에는 왜 두 개의 계정이 있나요? 기능적 차별화: 일부 사용자는 콘텐츠 유형이나 기능에 따라 계정을 차별화합니다. 예를 들어 한 계정은 일상 생활을 공유하는 데 사용되고 다른 계정은 전문 기술을 보여주는 데 사용됩니다. 2. 개인정보 보호: 일부 사용자는 생활과 업무를 분리한 두 개의 계정을 통해 개인정보를 보호하고 정보 유출을 방지하기를 희망합니다. 3. 상호 작용 요구 사항: 일부 사용자는 상호 작용 요구 사항으로 인해 두 개를 등록할 수 있습니다.

Douyin에서 여러 계정 연결을 닫는 방법은 무엇입니까? 계정연결의 역할은 무엇인가요? Douyin에서 여러 계정 연결을 닫는 방법은 무엇입니까? 계정연결의 역할은 무엇인가요? Apr 20, 2024 pm 05:58 PM

현재 가장 인기 있는 단편 비디오 플랫폼인 Douyin은 수많은 사용자가 등록하고 공유하도록 유도하고 있습니다. 일부 사용자는 다양한 목적으로 여러 Douyin 계정을 등록할 수 있습니다. Douyin을 사용하면 사용자가 여러 계정을 연결하여 쉽게 관리할 수 있습니다. 그러나 때로는 사용자가 계정 연결을 해제해야 할 수도 있습니다. 이 글에서는 "Douyin에서 여러 계정의 연결을 닫는 방법"에 중점을 두고 계정 연결을 닫는 방법과 계정 연결의 역할을 자세히 소개합니다. 1. Douyin에서 여러 계정 연결을 종료하는 방법은 무엇입니까? 1. Douyin 앱을 열고 "나" 개인 홈페이지에 들어갑니다. 2. 오른쪽 상단에 있는 "세 줄" 아이콘을 클릭하여 기능 메뉴를 엽니다. 3. 기능 메뉴에서 "설정" 옵션을 찾아 클릭하여 들어갑니다. 4. 설정 페이지에서 "계정 및 보안" 옵션을 찾아 클릭하여 들어갑니다.

외국 usdt 교환 외국 usdt 교환 Apr 19, 2024 pm 04:01 PM

해외 USDT 거래소는 USDT를 중심으로 해외에 등록되어 운영되는 디지털 화폐 거래 플랫폼입니다. 주요 기능에는 USDT 거래 지원, 글로벌 서비스, 높은 유동성, 다중 통화 지원 및 법정 통화 입출금 채널이 포함됩니다. 해외 USDT 거래소를 선택할 때 보안, 거래 수수료, 통화 지원, 법정화폐 입출금, 고객 서비스 지원을 고려해야 합니다. 잘 알려진 거래소로는 Binance, Huobi, Oyi 및 Coinbase가 있습니다.

Douyin의 불꽃 색상 변경 규칙에 대한 자세한 설명은 무엇입니까? 다양한 스파크 색상이 조건을 충족합니다. Douyin의 불꽃 색상 변경 규칙에 대한 자세한 설명은 무엇입니까? 다양한 스파크 색상이 조건을 충족합니다. May 04, 2024 am 09:31 AM

사용자 상호 작용을 향상하고 사용자 경험을 개선하기 위해 Douyin 플랫폼은 흥미로운 상호 작용 메커니즘인 Spark를 출시했습니다. 사용자는 Douyin에서 일련의 작업을 통해 스파크를 활성화하고 업그레이드할 수 있습니다. 다양한 색상은 다양한 업적과 명예를 나타냅니다. Douyin Spark의 색상 변경 규칙을 이해하면 사용자가 더 잘 참여하고 상호 작용하며 Douyin이 제공하는 사회적 즐거움을 즐기는 데 도움이 됩니다. 1. Douyin의 불꽃 색상 변경 규칙에 대한 자세한 설명은 무엇입니까? 1. 행동은 좋아요, 댓글, 공유 등과 같은 사용자의 상호 작용 행동을 활성화하여 스파크를 활성화할 수 있습니다. 2. 레벨 개선 사용자의 상호 작용 행동이 증가함에 따라 스파크가 점차 업그레이드되고 그에 따라 색상이 변경됩니다. 3. 색상 변경 스파크의 색상 변경은 일반적으로 사용자의 상호 작용 빈도, 상호 작용 품질 및 활동 참여에 대한 열정과 관련이 있습니다. 4. 작업이 완료되었습니다

DeepSeek 공식 웹 사이트 입구 및 최신 홍보 활동 DeepSeek 공식 웹 사이트 입구 및 최신 홍보 활동 Feb 19, 2025 pm 05:15 PM

DeepSeek의 공식 웹 사이트는 이제 사용자에게 쇼핑 경험을 제공하기 위해 여러 할인 활동을 시작하고 있습니다. 신규 사용자는 10 달러짜리 쿠폰을 받기 위해 가입하고 전체 잠재 고객에게 15% 제한된 시간 할인을 즐기십시오. 추천 친구들도 보상을받을 수 있으며 쇼핑 할 때 선물의 구속을 위해 포인트를 축적 할 수 있습니다. 이벤트 마감일은 다릅니다. 자세한 내용은 DeepSeek 공식 웹 사이트를 방문하십시오.

See all articles