간단 로그인 페이지 만들기

  • 너무 간단한 로그인 페이지.. 어떻게 기능을 구현했는지 알아보는 시간..

  • 예쁜 완성본은 Secret Diary Project 여기서.!

    image

1. HTML에서 간단한 form만들기

  • post로 php에 정보를 넘긴다.
<form method="post">
    <input name="email" type="text">
    <input name="password" type="password">
    <input type="submit">
</form>

2. 만약 $_POST가 있다면

if(array_key_exists('email',$_POST) OR array_key_exists('password', $_POST)){
    //실행
}

3. php에서 mySQL로 연결한다.

if(array_key_exists('email',$_POST) OR array_key_exists('password', $_POST)){
    //자신의 DB정보 입력하면 된다.
    $link = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');
    if(mysqli_connect_error()){
        die("There was an error connecting to the database");
    }else{
        //DB에 접속 성공했을 때
    }
}

4. 빈칸 확인, 빈칸 없으면 이메일로 DB 조회

  • SQL 명령어, mysqli_query();로 실행.

    $query= "INSERT INTO `users` (`email`,`password`) VALUES ('".mysqli_real_escape_string($link,$_POST['email'])."','".mysqli_real_escape_string($link,$_POST['password'])."')";
    $result=mysqli_query($link,$query); //select 명령문은 mysqli_result object를 리턴한다.
    mysqli_num_rows($result); //이 명령어로 리턴된 리코드 수 알 수 있다.
    
  • 이메일이 DB에 있고, 비번도 맞으면 로그인 성공! 비번 없으면 아무일도 안 일어난다.

  • 이메일이 DB에 없으면 DB에 추가하고 회원가입됨.

    <?php
    if($_POST['email']==''){
        echo "<p>Email address is required.</p>";
    }else if($_POST['password']==''){
        echo "<p>Password is required.</p>";
    }else{
        $query = "SELECT `id` from `users` WHERE email='".mysqli_real_escape_string($link,$_POST['email'])."'";
        $result=mysqli_query($link,$query);
        if(mysqli_num_rows($result)>0){
            echo "<p>the email address is already taken.</p>";
        }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 "<p>You have been signed up</p>";
        }else{
            echo "<p>There was a problem signing you up - please try again later.</p>";
        }
    }
    }
    ?>
    
  • 전체 코드

<?php
if(array_key_exists('email',$_POST) OR array_key_exists('password', $_POST)){
    $link = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');
    if(mysqli_connect_error()){
        die("There was an error connecting to the database");
    }
    if($_POST['email']==''){
        echo "<p>Email address is required.</p>";
    }else if($_POST['password']==''){
        echo "<p>Password is required.</p>";
    } else{
        $query = "SELECT `id` from `users` WHERE email='".mysqli_real_escape_string($link,$_POST['email'])."'";
        $result=mysqli_query($link,$query);
        if(mysqli_num_rows($result)>0){
            $query = "SELECT `id` from `users` WHERE email='".mysqli_real_escape_string($link,$_POST['email'])."' AND '".mysqli_real_escape_string($link,$_POST['password'])."'";
            $result=mysqli_query($link,$query);
            if(mysqli_num_rows($result)>0){
                echo "<p>Welcome! You are a member of our site.</p>";
            }else{
                echo "<p>the email address is already taken.</p>";
            }
        }else{
            $query= "INSERT INTO `users` (`email`,`password`) VALUES ('".mysqli_real_escape_string($link,$_POST['email'])."','".mysqli_real_escape_string($link,$_POST['password'])."')";
            echo "<p>You have been signed up</p>";
        }
    }
}
?>
<!DOCTYPE html>
<html lang="en" dir="ltr">
    <head>
        <meta charset="utf-8">
        <title></title> </head>
    <body>
        <form method="post">
            <input name="email" type="text">
            <input name="password" type="password">
            <input type="submit">
        </form>
    </body>
</html>

© 2018. All rights reserved.

Powered by Hydejack v8.5.2