개발 꿀팁/PHP

php와 Mysql 데이터베이스를 이용하여 사용자 등록 로그인 등 조작 완료

Jammie 2022. 7. 5. 17:06
반응형

PHP와 Mysql 데이터베이스를 사용하여 사용자 등록 절차를 완료하며, 양식 항목을 자유롭게 지정할 수 있으며, 가능한 모든 양식 유형을 포함하고, 등록이 완료되면 새 페이지에 등록 정보를 표시하고, 등록 중에 업로드해야 하는 사진의 조작 기능은 사용자 정의 함수를 사용하여 호출하고, 등록이 완료되면 사진을 표시합니다.


2.PHP와 Mysql 데이터베이스를 이용하여 사용자 로그인 기능을 수행한다.

단계는 다음과 같습니다.

(1) 데이터베이스 설계:

users.sql:

set default_storage_engine=InnoDB;
set character_set_client = gbk ; 
set character_set_connection = gbk ; 
set character_set_database = gbk ; 
set character_set_results = gbk ; 
set character_set_server = gbk ; 
create database register; 
use register; 
create table users( 
     user_id int primary key auto_increment, 
     userName char(20) not null unique, 
     password char(10) not null, 
     sex char(10) not null, 
     interests char(100), 
     my_picture char(200), 
     remark text 
);

등록 인터페이스:

register.htnl:

<!DOCTYPE html>
<h2>사용자 등록 시스템</h2> 
<hr/> 
<form action="register.php" method="post" enctype="multipart/form-data"> 
아이디: 
<input type="text" name="userName" size="20" maxlength="15" value="아이디를 입력해야 합니다" /> 
@ 
<select name="domain"> 
  <option value="@163.com" selected>163.com</option> 
  <option value="@126.com">126.com</option> 
</select> 
<br/> <br/> 
로그인 비밀번호: 
<input type="password" name="password" size="20" maxlength="15" /> 
<br/> <br/> 
암호를 확인하다: 
<input type="password" name="confirmPassword" size="20" maxlength="15" /> 
<br/> <br/> 
성별 선택: 
<input name="sex" type="radio" value="남자" checked />남자 
<input name="sex" type="radio" value="여자" />여자
<br/> <br/> 
개인의 취미: 
<input name="interests[]" type="checkbox" value="음악" checked />음악
<input name="interests[]" type="checkbox" value="게임" checked />게임 
<input name="interests[]" type="checkbox" value="영화" />영화
<input name="interests[]" type="checkbox" value="농구" />농구
<br/> <br/> 
개인 사진: 
<input type="file" name="myPicture" size="25" maxlength="100" /> 
<br/> <br/> 
메모 정보 : 
<textarea name="remark" cols="30" rows="4">비고 정보를 기입해 주십시오</textarea> 
<br/> <br/> 
<input type="submit" name="submit" value="등록 단추" /> 
<input type="reset" name="cancel" value="다시 기입하다" /> 
</form>

책 운영 절차:

register.php:

<?php 
include_once("functions/fileSystem.php"); 
include_once("functions/database.php"); 
if(empty($_POST)){ 
     exit("제출한 양식 데이터가 초과되었습니다post_max_size의 설정!<br/>"); 
} 
$password = $_POST['password']; 
$confirmPassword = $_POST['confirmPassword']; 
if($password!=$confirmPassword){ 
     exit("입력한 비밀번호와 확인 비밀번호가 일치하지 않습니다!"); 
} 
$userName = $_POST['userName']; 
$domain = $_POST['domain']; 
$userName = $userName.$domain; 
//아이디 점유 여부 판단
$userNameSQL = "select * from users where userName='$userName'"; 
getConnection(); 
$resultSet = mysql_query($userNameSQL); 
if(mysql_num_rows($resultSet)>0){ 
     closeConnection(); 
     exit("아이디가 이미 사용 중입니다. 다른 아이디를 바꾸십시오!"); 
} 
//사용자 기타 정보 수집
$sex = $_POST['sex']; 
if(empty($_POST['interests'])){ 
     $interests = ""; 
}else{ 
     $interests = implode(";",$_POST['interests']); 
} 
$remark = $_POST['remark']; 
$myPictureName = $_FILES['myPicture']['name']; 
//"파일 업로드 성공" 또는 "첨부파일 미 업로드" 시에만 등록
$registerSQL = "insert into users values(null,'$userName','$password','$sex', '$interests','$myPictureName','$remark')"; 
$message = upload($_FILES['myPicture'],"uploads"); 
if($message=="파일 업로드 성공!"||$message=="첨부 파일을 업로드할 옵션이 없습니다!"){ 
     mysql_query($registerSQL); 
     $userID = mysql_insert_id(); 
     echo "사용자 정보 등록 성공!<br/><br/><br/>"; 
}else{ 
     exit($message); 
} 
//데이터베이스에서 사용자 등록 정보 추출
$userSQL = "select * from users where user_id=$userID"; 
$userResult = mysql_query($userSQL); 
if($user = mysql_fetch_array($userResult)){ 
     echo "등록된 사용자 이름:".$user["userName"]."<br/><br/>"; 
     echo "입력한 로그인 비밀번호는 다음과 같습니다:".$user["password"]."<br/><br/>";
     echo "성별:".$user["sex"]."<br/><br/>";
     echo "취미:".$user["interests"]."<br/><br/>";
     $pictureAdrees="uploads/".$myPictureName;
     echo "올린 사진:";
     echo '<img src="'.$pictureAdrees.'"  width="200px">';
     echo "<br/><br/>";
     echo "메모 정보:".$user['remark'];
}else{ 
     exit("사용자 정보 등록 실패!"); 
} 
closeConnection(); 
?>

System.php:

<?php
function upload($file,$filePath){
	$error = $file['error'];
	switch ($error){
		case 0:
			$fileName = $file['name'];
			$fileTemp = $file['tmp_name'];
			$destination = $filePath."/".$fileName;
			move_uploaded_file($fileTemp,$destination);
			return "파일 업로드 성공!";
		case 1:
			return "로드 첨부 파일이 php.ini의 upload_max_filesize 옵션 제한을 초과함!";
		case 2:
			return "업로드한 첨부 파일의 크기가 폼 MAX_FILE_SIZE 옵션에서 지정한 값을 초과했습니다!";
		case 3:
			return "첨부 파일이 일부만 업로드되었습니다!";
		case 4:
			return "첨부 파일을 업로드할 옵션이 없습니다!";
	}
}
?>

atabase.php:

<?php  
$databaseConnection = null; 
function getConnection(){ 
     $hostname = "localhost"; 			//데이터베이스 서버 호스트명, IP로 대체 가능
     $database = "register"; 				//데이터베이스 이름
     $userName = "root"; 				//데이터베이스 서버 사용자
     $password = ""; 					//데이터베이스 서버 암호
     global $databaseConnection; 
     $databaseConnection = @mysql_connect($hostname, $userName, $password) or die (mysql_error()); 							//데이터베이스 서버 연결
     mysql_query("set names 'gbk'");	//문자 집합 설정
     @mysql_select_db($database, $databaseConnection) or die(mysql_error()); 
} 
function closeConnection(){ 
     global $databaseConnection; 
     if($databaseConnection){ 
     		mysql_close($databaseConnection) or die(mysql_error()); 
     } 
} 
?>

로그인 인터페이스:

login.html:

<h2>로그인 인터페이스</h2>
<hr><br/><br/>
<form action="login_process.php" method="post"> 
아이디: 
<input type="text" name="userName" size="20" maxlength="15" value="아이디 및 도메인 이름을 기입해 주십시오" /> 
<br/> <br/>
로그인 비밀번호: 
<input type="password" name="password" size="20" maxlength="15" /> 
<br/><br/> 
<input type="submit" value="로그인" /> 
<input type="reset" value="다시 기입하다" /> 
</form>

기록 작업 프로그램:

login.php:

<?php 
include_once("functions/database.php"); 
//양식 제출 데이터 수집
$userName = addslashes($_POST['userName']); 
$password = addslashes($_POST['password']); 
//데이터베이스 서버 연결
getConnection(); 
//사용자 이름과 비밀번호가 올바른지 판단하기
$sql = "select * from users where userName='$userName' and password='$password'"; 
$resultSet = mysql_query($sql); 
if(mysql_num_rows($resultSet)>0){ 
     echo "아이디와 비밀번호 입력이 정확합니다!로그인 성공!"; 
}else{ 
     echo "아이디와 패스워드가 잘못 입력되었습니다!로그인을 실패하였습니다!"; 
} 
closeConnection(); 
?>

 

반응형