[PHP_Registration] using DB

http://silnex.kro.kr/PHP_Tutorial/cookie_login/register.php

==PHP REGISTER==

register_php_흐름도
귀찮이즘이 느꺄지는 흐름도….

흐름도를 보면알 수 있다 시피 총 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”이 뜨면 대부분의 경우 제가 막아 놓은 겁니다.

글의 문제가 있다면 댓글을 달아 주세요.

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.