http://silnex.kro.kr/PHP_Tutorial/cookie_login/register.php
==PHP REGISTER==

흐름도를 보면알 수 있다 시피 총 2개의 파일을 이용해 Register을 구현했다.
각 php 파일의 대한 설명은 register.php > regi_check.php 순서로 하겠다.
Register.php
회원가입 정보를 입력 받는 페이지
<html> <head> <title> Registration PAGE </title> </head> <h1> Registration PAGE </h1> <form method='post' action='regi_check.php'> <table> <tr> <td>ID :</td> <td><input type='text' name='regi_id' value='<?php echo $regi_id ?>'/></td> <td rowspan='4'><input type='submit' value='회원가입' style='height:100px' onclick="submit_click();"/></td> </tr> <tr> <td>PW :</td> <td><input type='password' name='regi_pw'/></td> </tr> <tr> <td>NAME :</td> <td><input type='text' name='regi_name'/></td> </tr> <tr> <td>E-mail :</td> <td><input type='text' name='regi_email'/></td> </tr> </table> </form> </html>
이에 대한 설명은 [PHP] $_POST에서 했으므로 넘어가겠다.
Regi_check.php
<?php if(!isset($_POST['regi_id'])||!isset($_POST['regi_pw'])||!isset($_POST['regi_name'])&&!isset($_POST['regi_email'])) exit; $regi_id=$_POST['regi_id']; $regi_pw=$_POST['regi_pw']; $regi_name=$_POST['regi_name']; $regi_email=$_POST['regi_email']; if($regi_id == ''|| $regi_pw == ''||$regi_name == ''||$regi_email == ''){ echo "<script> alert('모든 항목을 입력해 주세요') </script>"; echo "<script> history.back(); </script>"; } else { include_once("conn.php"); $sql = "SELECT `user_id` FROM `user_info` WHERE `user_id`='$regi_id'"; $result=mysqli_query($conn,$sql); $db=mysqli_fetch_assoc($result); if (isset($db['user_id'])){ echo "<script> alert('이미 등록된 ID 입니다.') </script>"; echo "<script> history.back(); </script>"; } else { $sql="INSERT INTO `user_info`(`user_id`, `user_pw`, `username`, `email`) VALUES ('$regi_id','$regi_pw','$regi_name','$regi_email')"; if(mysqli_query($conn, $sql)){ echo "<script> alert('New record created successfully') </script>"; echo "<meta http-equiv='refresh' content='0;url=login.php'/>"; } else { echo "<script> alert('SQL SERVER ERROR') </script>"; echo "<script> history.back(); </script>"; } } } ?>
분석
2번째 줄 : 잘못된 접근 차단
3번째 줄 : POST를 통해 전달 받은 값을 각각 변수에 저장
4~7번 줄 : 입력하지 않은 값 필터링
10~17번 줄 : ID의 중복을 확인
19~28번 줄 : 계정 등록이 완료되면 login.php로 실패하면 뒤로 돌려줌.
P.S. 만약 “SQL SERVER ERROR”이 뜨면 대부분의 경우 제가 막아 놓은 겁니다.