예전에 만들어 놨던거라서 소스가 엉망입니다.
뭐 고칠 생각도 없고;;; ( 귀찮! ) 암튼간 기본적인 알고리즘 부터 설치와 실행을 해봅시다.
우선적으로 이 소스는 저작권이 없습니다. 만사 귀찮;
자. 기본적인 알고리즘.
끝말잇기의 경우엔 첫번째 단어를 입력하고
그 뒤에 천번째 단어의 가장끝 글자를 확인하여
그 글자로 시작하는 단어가 입력되면 완성인것입니다.
참 쉽죠?
그뒤 조건이 몇가지 붙습니다.
한글만 입력받음, 띄어쓰기 금지, 글자수 조절... 등등등
시작해 볼게요 ㅎㅎ
우선적으로 Table을 만들어주는 화일을 만들어 보겠습니다.
create_db.php
소스 코드 타입 : php<?include "./config.php";?>
<?
$handle = mysql_connect($db_server, $db_user, $db_pwd);
$ret = mysql_select_db($db_use, $handle);
$query = "
CREATE TABLE wordrelay (
owr_idx int(10) NOT NULL AUTO_INCREMENT,
owr_user varchar(24) NOT NULL,
owr_word varchar(30) NOT NULL,
PRIMARY KEY (owr_idx)
)";
$result = mysql_query($query);
if($result) echo "끝말잇기 DB가 만들어 졌습니다. ^^<br>";
else echo "끝말잇기 DB 생성에 실패하였습니다.. ㅠㅠ<br>";
@db_close();
exit();
?>
필드값 ( 그러니까 입력받을 값들 ) 을 살펴보게 되면 일단 인덱스와 유져이름 그리고 이을말 이 들어가게 됩니다.
뭐 나중에 심심하면 ip도 받아도 되고 암호를 받아도 됩니다.
( 하지만 귀찮으므로 패스! )
위 소스에서 보면 맨위에 config.php 라는 화일이 필요합니다.
config.php
소스 코드 타입 : php
<?
// DB 접속 정보
$db_server = "localhost";
$db_use = "DB명";
$db_user = "유져아이디";
$db_pwd = "유져비밀번호";
?>
이란 화일이 필요하죠 ^^
이 두화일을 적당한 곳에 올리고 create_db.php라고 실행시켜 줍니다.
그러면 자잔... ' 끝말잇기 DB가 만들어 졌습니다. ^^ ' 라는것이 뜰겁니다.
아니면 실패메시지가 뜰겁니다... -.-; 뭐 정안되면 phpMyAdmin 같은걸로 DB에 접속해서 노가다로 만드셔도 됩니다 -.-;;;
이제는 입력과 출력이 동시에 되는 화일을 만들어 보겠습니다.
index.php
소스 코드 타입 : php<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?
// 끝말잇기 놀이
// Coded By Ohyung.com & SSangkal.com All right kicked!!! -.-;
// 2006년 08월 26일 조낸 심심한 오형이 할일없이 만듬 -.-;
include "./config.php";
// 각종 설정
$limitnum = 9;
$conn = mysql_connect($db_server, $db_user, $db_pwd);
$ret = mysql_select_db($db_use, $conn);
@mysql_query("set session character_set_connection=utf8");
@mysql_query("set session character_set_results=utf8");
@mysql_query("set session character_set_client=utf8");
$sql = "select * from wordrelay order by owr_idx desc limit ".$limitnum;
$result = mysql_query($sql, $conn);
$wsql = "select owr_word from wordrelay order by owr_idx desc limit 1";
$wresult = mysql_query($wsql, $conn);
$wrow=mysql_fetch_array($wresult);
$bingoword = strlen($wrow[owr_word]);
?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ko" lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>쌍칼닷콤 끝말잇기</title>
</head>
<script language="javascript">
<!--
function all_check(){
var f = document.frm_write;
if (f.user.value == ""){
alert("이름을 입력해 주세요.");
f.user.focus();
return false;
}
if(f.user.value.length > 9){
alert("이름은 총 8자 이하로 해주세요.");
f.user.focus();
return false;
}
if(/[^가-힣a-zA-Z0-9\.\_\*\~]/g.test(f.user.value)){
alert("이름에 _,~,*,. 이외의 특수문자는 쓰실수 없습니다.");
f.user.focus();
return false;
}
if(f.word.value == ""){
alert("이을 단어를 입력해 주세요.");
f.word.focus();
return false;
}
if(f.word.value.length > 11){
alert("이을 단어는 총10자 이하로 해주세요.");
f.word.focus();
return false;
}
if(/[^가-힣\s]/g.test(f.word.value)){
alert("이을 단어는 한글만 쓰실수 있습니다.");
f.word.focus();
return false;
}
f.submit();
}
-->
</script>
<!-- 입력폼 부분 user와 word를 입력받는다. -->
<body style="text-align:center;margin:0;padding:0;font-size:12px;color:#000;background-color:#fff;text-decoration:none;font-family: tahoma, gulim, serif;">
<div align="center" styele="width:530px;">
<div style="width:530px;padding:0;margin:0 0 10px 0;border:0;">
<FORM action="<?=$urlsrc?>/write_ok.php" name="frm_write" method="POST">시작하실 글자는 <strong><?=Substr($wrow[owr_word], ($bingoword-3), $bingoword);?></strong> 입니다 ^^;
<div style="width:150px;border:0;float:left;">Name<input type="text" name="user" maxlength=8 style="width:106px;height:12px"></div>
<div style="border:0;float:left;"> 말<input type="text" name="word" value="<?=Substr($wrow[owr_word], ($bingoword-3), $bingoword);?>" maxlength=28 style="width:330px;height:12px"></div>
<div style="border:0;float:left;"><input style="height:20px;color:#000000" type="button" value="OK" onclick="all_check();"></div>
</FORM>
</div>
<?
while($row=mysql_fetch_array($result))
{
?>
<div style="width:520px;text-align:center;clear:left;padding:0;border:0;margin:0;">
<div style="text-align:left;width:400px;height:16px;padding:0;margin:0;border:0;border-bottom:1px dashed #000;float:left;"><?=$row[owr_word]?></div>
<div style="text-align:center;width:110px;height:16px;padding:0;margin:0;border:0;border-bottom:1px dashed #000;float:left;"><?=$row[owr_user]?></div>
</div>
<?}?>
<div style="clear:both">
<a onclick="window.open(this.href); return false;" href="./allview.php">[전체보기]</a>
</div>
</div>
</body>
</html> 자자 만들어졌습니다... 역시나 소스는 더러운게 미덕입니다;;;
여기서 보게 되면 $limitnum 에 9라는 숫자가 들어갔는데 이것은 9개의 리스트를 출력한다는 것입니다.
뭐 나중에 수정해도 되고 일단은 기본원리를 배우는것이니까...
대충 넘어가겠습니다.
이 소스에서 가장 중요한것은 자바 스크립트 입니다.
이름을 입력받고, 또한 이을 단어를 조절하죠...
글자수와 띄어쓰기를 조절하고 뭐 그런것을 합니다.
나중에 정규식에 관련된 글을 쓸 예정이오니 그때 좀더 자세히 보죠..
일단은 만들어는 졌습니다... 하지만 입력한 글을 DB에 저장하는게 없군요...
다시 만들어 보겠습니다...
write_ok.php
소스 코드 타입 : php<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ko" lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?
include "./config.php";
$connect = mysql_connect($db_server, $db_user, $db_pwd);
$ret = mysql_select_db($db_use, $connect);
@mysql_query("set session character_set_connection=utf8");
@mysql_query("set session character_set_results=utf8");
@mysql_query("set session character_set_client=utf8");
$osql = "select owr_word from wordrelay order by owr_idx desc limit 1";
$oresult = mysql_query($osql, $connect);
$orow=mysql_fetch_array($oresult);
$qword = strlen($orow[owr_word]);
$lastword = Substr($orow[owr_word], ($qword-3), $qword);
$inputword = Substr($word, 0,3);
echo " $orow[owr_word] , $lastword $inputword ";
if($orow[owr_user] == $name){
echo "
<script language='javascript'>
alert('같은 아이디로 연속 등록을 삼가하세요.');
history.go(-1);
</script>
";
}
else{
if($lastword == $inputword){
$query = "INSERT INTO wordrelay VALUES ('', '$user', '$word')";
$result = mysql_query($query, $connect) or die("시스템에 문제가 생겼습니다. 처음부터 다시 시도해 주세요.");
if($result){
echo "<script language='javascript'>alert('글이 등록되었습니다.');</script>";
echo "<html><head><meta http-equiv=Refresh content=0;url=http://ssangkal.com/index.php?page=$page></head></html>";
}
else
echo "<script language='javascript'>alert('시스템에 문제가 생겼습니다. ohyung@gmail.com으로 메일 부탁드립니다.');</script>";
}
else{
echo "
<script language='javascript'>
alert('시작말을 확인해주세요.');
history.go(-1);
</script>
";
}}
?>
자 완성되었습니다.
일단은 이런식으로 만드신뒤 utf-8문서로 저장하시고 올리신뒤 확인해보세요.
아참... 첫번째는 아무거나 입력을 해주어야 합니다.
phpmyadmin 같은걸 써서 직접 넣어주세요 ㅎㅎ
일단은 대충 이런식으로 만듭니다...
나중에 소스 정리해서 화일로 올리죠...
너무 엉망이라서...;;;
그럼 다음 소스공개까지... 열심히 해보세요...