간단 로그인 페이지 만들기
너무 간단한 로그인 페이지.. 어떻게 기능을 구현했는지 알아보는 시간..
예쁜 완성본은 Secret Diary Project 여기서.!
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>