회원가입 페이지를 만들고 그 회원가입 폼에 기입한정보를 mysql db에 입력되게끔 만들어 봅시다.
그럼 우선 메인 화면을 만들게요.
아래와 같이 입력해주세요
htdocs에 join1.php 파일로 저장해주세요.
그럼 우선 정보가 저장될 테이블을 만들어 봅시다.
database 는 join_db 로 합시다. 만들어요
table명은 account_info 로 합니다.
필드는 아이디 비밀번호 이름 주소 성별 나이 이메일 직업으로 합니다.
그럼 이제 작업을 시작 합시다.
우선 메인 페이지 입니다.
join1.php 로 htdocs에 저장해주세요. 한/영 변환이 귀찮아서 영어로 작성했고요, 틀린 문법이 와장창 일것입니다. 그냥 넘겨주세요^^
이 페이지는 절차 및 필드를 어떠한것들을 쓸건지 명시되어있습니다.
<html>
<head>
<title>[project]Membership register page </title>
</head>
<body>
<center>
<form name=f1 method=post action="join2.php">
<table border=1>
<tr>
<td><h3><b>project to make table on membership register</b></h3></td>
</tr>
<tr>
<td>procudure</td>
</tr>
<tr>
<td>1.making table </br> the fields are id,password,confirm_password,name,address,sex,age,e-mail</td>
</tr>
<tr>
<td>2.input member's information</td>
</tr>
<tr>
<td>3.saving informaton into DB</td>
</tr>
<tr>
<td>4.see list</td>
</tr>
</table>
<input type="submit" value="make table" />
</form>
</center>
</body>
</html>
위 파일을 실행하면 아래의 화면이 뜨게 되고요 submit를 누르면 join2.php파일이 작성되지 않아서 없는 페이지가 표시 됩니다.
그럼 이번엔 join2.php파일을 작성합니다.
이 파일의 역할은 우리가 만들려고하는 테이블을 찾은뒤 없다면 만들어주는 기능을 합니다.
이 소스는 제가 완벽하게 이해를 하지 못했습니다.
추가로 알게 되면 개정을 하겠습니다.
<?
$connect = mysql_connect('localhost','root','123456');
mysql_select_db('join_db',$connect);
if($result == 1){
$tb_name = mysql_list_tables("join_db");
$tb_count = mysql_num_rows($tb_name);
for($a=0; $a<$tb_count;$a++)
if(mysql_tablename($tb_name,$a) == "account_info"){
$flag = "ok";
break;
}}
if($flag != "ok"){
$sql = "create table account_info(
id varchar(30),
pwd varchar(20),
pwd2 varchar(20),
name varchar(10),
addr varchar(80),
sex varchar(3),
age int(2),
email varchar(20),
primary key(id))";
$reslut = mysql_query($sql, $connect) or die("table exists");
}
echo " it is successful to make table <br />";
echo " please go to ";
echo " <a href='join3.php'> sign up page<a/>";
mysql_close($connect);
?>
소스 설명을 위해서 이미지 파일로 다시 한번 위의 파일을 아래에 첨부하겠습니다. (라인때문에)
$connect 는 mysql_connect()함수를 이용해서 접속 정보를 변수값으로 갖고 있고요.
mysql_select_db()함수를 통해서 데이터베이스를 선택하고 접속 변수를 2번째 인자로 넣습니다.
if($result == 1) 이거 뭔지 모르겠네요,, 아시는분 답변좀..
5번째 줄의 $tb_name = mysql_list_tables("join_db"); 이것은 join_db안에 있는 모든 테이블들을 보여주는 함수입니다. 그 값은 $tb_name에 저장이 됩니다.
6번째 줄의 $tb_count=mysql_num_rows($tb_name)은 5행의 변수 $tb_name가 가지고 있는 테이블에서 레코드 개수를 산출하는 함수 입니다. 이것은 tb_count에 저장됩니다.
7행의for문은6행에서 산출된 레코드의 개수만큼 반복 수행한다. 반복 수행의 조건은 8행의 if(mysql_tablename($tb_name,$a)=='account_info")에서 account_for 테이블을 만들때까지 수행한다.
테이블을 찾으면 mysql쿼리에 대한 성공의 의미로 출력되는 ok를 $flag=ok변수에 저장한 다음 10행의 break명령을 통해 반복문을 빠져나간다.
account_info테이블이 발견되지 않았다면 14행의 create table기능을 수행하고 테이블및 필드를 생성후 $result=mysql_query($sql,$connect)로 질의문을 수행한다.
만약 질의문을 수행하지 못할 경우가 생기게 되면 or die의 () 문을 수행하게 된다.
위의 소스를 수행하면
테이블이 있는경우에는
table exists 가 출력된다.
그 다음은 회원가입 양식이다.
이 파일은 join3.php로 저장한다.
<html>
<head>
<title>sign up page</title>
<form name=f2 method=post action="join4.php">
<h1>input your information</h1>
<table border=1>
<tr>
<td>ID</td>
<td><input type="text" size=30 name='id'></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" size=30 name='pwd'></td>
</tr>
<tr>
<td>Confirm Password</td>
<td><input type="password" size=30 name='pwd2'></td>
</tr>
<tr>
<td>name</td>
<td><input type="text" size=12 maxlength=10 name='name'></td>
</tr>
<tr>
<td>address</td>
<td><input type="text" size=40 name='addr'></td>
</tr>
<tr>
<td>sex</td>
<td><input type="text" size=6 maxlength=2 name='sex'></td>
</tr>
<tr>
<td>age</td>
<td><input type="text" size=6 maxlength=2 name='age'></td>
</tr>
<tr>
<td>e-mail</td>
<td><input type="text" size=30 name='email'></td>
</tr>
</table>
<input type=submit value="submit"><input type=reset value="rewrite">
</form>
</body>
</html>
필자는 table을 좋아하지 않지만 회원가입 양식이나 달력등은 테이블로 아직까지 많이들 쓴다.
실행을 하게 되면 아래의 회원가입 양식이 출력된다. 입력된 값은 임의로 입력하면 된다.
그럼 위에 submit버튼을 아직 누르면 안된다. 당연히 그 다음 페이지가 작성되어있지 않기 때문이다.
그 다음 할 일은바로 저렇게 우리가 적어놓은 자료들이 데이터베이스에 저장되는 일이다. ^^
그럼 저장해보자 위의 소스에서 보이듯이 post방식을 사용한다.
그러므로 변수들도 포스트를 사용!
<?
$id=$_POST['id'];
$passwrd=$_POST['pwd'];
$password2=$_POST['pwd2'];
$name=$_POST['name'];
$address=$_POST['addr'];
$sex=$_POST['sex'];
$age=$_POST['age'];
$email=$_POST['email'];
$connect = mysql_connect('localhost','root','123456');
mysql_select_db('join_db',$connect);
$sql = "insert into account_info (id, pwd, pwd2, name, addr, sex, age, email)";
$sql = $sql. "values('$id','$password','$password2','$name','$address','$sex','$age','$email')";
mysql_query($sql, $connect);
mysql_close($connect);
echo "register completed <br />";
echo "<a href='join3.php'>rewrite</a>";
echo "<a href='join5.php'>view result</a>";
?>
위의소스르 join4.php로 저장하고 join3.php가 뜬 웹브라우저 창에서 sumit버튼을 눌러주면 mysql 의 join_db 데이터베이스 안의 테이블 account_info에 저장되게 된다.
그럼join3으로 가서 또 한번 임의로 자료들을 적어서 보내보자
db는
이제 게시판 프로그래밍 방법등을 익힌다면 회원제로 운영되는 사이트 완성이 가능할것이다.
직장을 다니면서 투잡(알바/부업)으로 월급 많큼 수익을 얻고 싶으시다면
아래 접속하셔서 상담받아 보실 수 있습니다. (믿음의 재택부업회사)
(회원가입을 하시면 편리한 시간에 자세히 설명해드립니다)