PHP를 사용하여 간단한 로그인 기능을 구현하는 방법

15391 단어 HTMLPHP

무엇 때문에


PHP를 사용하여 로그인 기능을 설치합니다.
(간단)
또한 본 보도는 mysql를 사용했습니다.
또한 로컬 환경에서 사용하기 위해$link= mysqli_connect("localhost","root","root","app")으로
memberap은 이번 작업 파일의 이름입니다.

주의점


또 이번에는 비밀번호 등 안전성을 고려하지 않았기 때문에 정식 시행 시 주의가 필요하다.
결국'이런 일을 할 수 있다'는 정도로 생각해주세요.
이번에 사용한 환경은 PHP7입니다.

실행 프로그램


1. 전자 우편과 비밀번호의 입력 형식을 설정하고 '등록' 단추를 누르십시오
2. 데이터를 입력했는지 확인
3. 메일 주소가 이미 사용되었는지 확인
4. 반복하지 않으면 가입자
5. 사용자 등록 성공 메시지 표시

1. 등록 버튼 설정


먼저 HTML에 다음 내용을 기술합니다.
<form method="post">
  <p>メールアドレスを入力してください</p>
  <input name="email" type="text" placeholder="Eメール">
  <p>パスワードを入力してください</p>
  <input name="password" type="text" placeholder="パスワード">
  <input type="submit" value="登録する!">
</form>
그래서 이런 화면이 됐어요.

2. 데이터를 입력했는지 확인


다음은 PHP의 기술입니다.
  if(array_key_exists('email', $_POST) OR array_key_exists('password',$_POST)){
    if($_POST['email'] == ''){
      echo "Eメールアドレスを入力してください";
    }elseif($_POST['password'] == ''){
      echo "パスワードを入力してください";
    }
  }
array_key_exists () 부분에서 지정한 키나 문자가 배열 중인지 조사 중입니다.
이번 경우.
이메일 열쇠POST는 이 형식으로 전송된 데이터에 있는지 여부를 조사합니다.
※ 참고자료
http://php.net/manual/ja/function.array-key-exists.php

3. 메일 주소가 이미 사용되었는지 확인

else{
      $query = "SELECT `id` FROM `users` WHERE email ='".mysqli_real_escape_string($link,$_POST['email'])."'";
      $result = mysqli_query($link,$query);
    }
mysqli_real_escape_string은 SQL에서 특수 문자를 사용하지 않도록 합니다.
* 참고 자료
http://php.net/manual/ja/mysqli.real-escape-string.php
즉, 방금 코드와 연결되면 다음과 같다.
  if(array_key_exists('email', $_POST) OR array_key_exists('password',$_POST)){
    if($_POST['email'] == ''){
      echo "Eメールアドレスを入力してください";
    }elseif($_POST['password'] == ''){
      echo "パスワードを入力してください";
    }else{
      $query = "SELECT `id` FROM `users` WHERE email ='".mysqli_real_escape_string($link,$_POST['email'])."'";
      $result = mysqli_query($link,$query);
    }
  }

4. 반복하지 않으면 가입자


먼저 중복될 때의 오구를 만들어라.

if(mysqli_num_rows($result) > 0){
        echo "そのメールアドレスは既に使用されています";
      }
mysqli_num_결과가 반환됩니다.
* 참고 자료
http://php.net/manual/ja/mysqli-result.num-rows.php
이 경우 3번에 검사한 (즉 $result) 가 있다면
"그 메일 주소는 이미 사용되었다"는 잘못된 문장을 보냈다.
이어서 중복되지 않는 상황(즉 사용자 등록이 가능한 상황)에 대한 기술을 진행한다.
else {
        $query = "INSERT INTO `users` (`email`,`password`) VALUES
        ('".mysqli_real_escape_string($link,$_POST['email'])."','".mysqli_real_escape_string($link,$_POST['password'])."')";
사용자 테이블에 추가된 의미를 INSERT INTO에 기술합니다.
그때 VALUE에 mysqli가 있었어요.real_escape_추가string () 의 이메일과password를 기술합니다.

5. 사용자 등록 성공 메시지 표시

if(mysqli_query($link,$query)){
   echo "おめでとうございます、登録されました";
} else {
   echo "登録に失敗しました";
  }
순조롭게 등록 성공 여부에 따라 글을 표시합니다.

소스 코드 완성

<?php
  $link=
  mysqli_connect("localhost","root","root","app");

  if(array_key_exists('email', $_POST) OR array_key_exists('password',$_POST)){
    if($_POST['email'] == ''){
      echo "Eメールアドレスを入力してください";
    }elseif($_POST['password'] == ''){
      echo "パスワードを入力してください";
    }else{
      $query = "SELECT `id` FROM `users` WHERE email ='".mysqli_real_escape_string($link,$_POST['email'])."'";
      $result = mysqli_query($link,$query);
      $query = "SET GLOBAL sql_mode=NO_ENGINE_SUBSTITUTION";
      mysqli_query($link,$query);
      if(mysqli_num_rows($result) > 0){
        echo "そのメールアドレスは既に使用されています";
      }else {
        $query = "INSERT INTO `users` (`email`,`password`) VALUES
        ('".mysqli_real_escape_string($link,$_POST['email'])."','".mysqli_real_escape_string($link,$_POST['password'])."')";
        if(mysqli_query($link,$query)){
          echo "おめでとうございます、登録されました";
        } else {
          echo "登録に失敗しました";
        }
      }
    }
  }

?>

<form method="post">
  <p>メールアドレスを入力してください</p>
  <input name="email" type="text" placeholder="Eメール">
  <p>パスワードを入力してください</p>
  <input name="password" type="text" placeholder="パスワード">
  <input type="submit" value="登録する!">
</form>
(INSERT가 원활하게 진행되지 않으면 등록이 실패할 경우)
$query = "SET GLOBAL sql_mode=NO_ENGINE_SUBSTITUTION";
mysqli_query($link,$query)
INSERT 문 앞에 기술하십시오.

좋은 웹페이지 즐겨찾기