웹마스터 팁

초간단 허접설문조사 소스입니다.
여기서 설문관련 소스 찾을려니까 없는것 같아서 제가 간단하게 만들어 봤습니다.
허접하지만 필요한 분이 있으면 좋겠네요..

설문조사는 총 3개의 페이지로 이루어 집니다.
저는 poll.php, pollinsert.php, pollview.php 이렇게 파일명을 만들었습니다.

제일먼저 mysql db 테이블을 만들어야 겠죠..

CREATE TABLE poll (
id int(11) DEFAULT '0' NOT NULL auto_increment,
answer varchar(20) NOT NULL,
wdate int(11) NOT NULL,
ip varchar NOT NULL,
PRIMARY KEY (id)
);

이렇게 만들면 됩니다. 간단하죠 ^^;;

이제 페이지 소스를 보도록 하겠습니다.

첫번째, poll.php 는 설문페이지 입니다.
제가 만든것은 찬성,반대 두개이지만 더 추가하실수 있습니다.

============== poll.php 소스 ==========================

<html>
<head>
<title>설문조사</title>
<script language=javascript>
        function chkAnswer()
        {
                var Form = eval(document.form1);
                var chk = 0;
                if(Form.answer[0].checked == true) chk++;
                if(Form.answer[1].checked == true) chk++; //답변추가시 이곳에 번호순으로 추가하세요
                if(chk == 0) {
                        alert('선택해주세요. ^^');
                        return false;
                }
                Form.action = 'pollinsert.php';
                Form.submit();
        }

</script>
</head>
<body>
<form name=form1 method=post>
이거 찬성, 반대 말해봐봐~~~~  <br>

//답변추가시 이곳에 value를 번호순으로 추가하시면 됩니다.

찬성 <input type=radio name=answer value=1> <br>
반대 <input type=radio name=answer value=2> <br>  


<br>
<a href=javascript:; onClick="chkAnswer(); return false;">설문<a>

</form>
</body>
</html>



두번째, pollinsert.php
이 페이지는 poll.php에서 넘어 온 값을 db에 만든 poll이라는 테이블에 저장하도록 하는 페이지입니다.

============== pollinsert.php 소스 ==========================
<?
$board = "테이블명"; //이곳은 db에 만들었던 테이블명을 적으면 됩니다. 위에서 poll이라고 만들었죠..
$conn = mysql_connect("localhost","db아이디","db비번");
mysql_select_db("db이름", $conn);

$wdate = time();
$ip = getenv("REMOTE_ADDR");

/*
아래 부분은 설문에 중복참여를 방지하는 곳입니다.
현재는 막아 놓았는데 필요하시다면 풀면 됩니다. (// <-이것 제거)
현재 ip주소가 같은면 중복으로 되어 있는데 회원제일 경우 회원 아이디로
변경하셔도 무방합니다.
*/

//$res1 = mysql_query("SELECT ip FROM $board WHERE ip='$ip'",$conn);

// 중복참여 체크
//if(mysql_num_rows($res1)) {
//        @mysql_close($conn);
//echo("<script>alert('이미 이벤트에 참여하셧습니다.nn참여해주셔서 감사합니다.^^');history.back();</script>"); exit; }
        


// 설문 참여 성공 부분입니다. poll.php에서 넘어온 값이 이곳을 통해 db의 poll테이블에 저장니다.
$res2 = mysql_query("INSERT INTO $board (id,answer,wdate,ip) VALUES ('','$answer','$wdate','$ip')",$conn);

if(!$res2) dbError();

@mysql_close($conn);

echo("<script>alert('참여해주셔서 감사합니다.^^');self.location.href='pollview.php'</script>");
//설문을 마치고 돌아가는 페이지... (저는 설문결과보기가 되어 있는 pollview.php로 연결했습니다.
?>


세번째, pollview.php
이 페이지는 설문결과페이지입니다.
몇명이 설문에 응했는지 각번호(질문)를 몇분이 선택했는지 등이 나옵니다.

============== pollview.php 소스 ==========================

<?
$board = "테이블명"; //이곳은 db에 만들었던 테이블명을 적으면 됩니다. 위에서 poll이라고 만들었죠..
$conn = mysql_connect("localhost","db아이디","db비번");
mysql_select_db("db이름", $conn);

/*
각답변에 해당하는 번호를 선택하는 것입니다.
만약 답변이 더 많으면 번호순으로 더 늘리시면 됩니다.
*/
$res1 = mysql_query("select * from $board where answer=1", $conn);
$res2 = mysql_query("select * from $board where answer=2", $conn);

//각각 선택된답변이 몇개인지를 출력
$num1 = mysql_num_rows($res1);
$num2 = mysql_num_rows($res2);

$sum = $num1 + $num2; //전체적으로 답변된것이 몇개인지 출력 (즉 설문참여자가 총몇분인지 출력한다.)
//각 선택된 답변 백분율 구하기
$img1 = (int)(($num1*100)/$sum);
$img2 = (int)(($num2*100)/$sum);
echo("
<html>
<head>
<title>설문조사결과</title>
</head>
<table width=780 border=0 cellspacing=0 cellpadding=0 align=center>
        <tr><td>
                <table width=780 border=0 cellspacing=0 cellpadding=0 align=center><tr height=10><td></td></tr><tr height=1><td bgcolor=A4A4A4></td></tr><tr height=10><td></td></tr></table>
                <table width=780 border=0 cellspacing=0 cellpadding=0 align=center style='border:1px #999999 solid'>
                        <tr height=25><td colspan=4 bgcolor=666666 align=center><font color=FFFFFF><b> 결과  (총 : $sum 표)</b></font></td></tr>
                        <tr><td colspan=4 bgcolor=999999></td></tr>
                        <tr><td>찬성($num1)</td><td><img src='bar.gif' width='$img1' height='13'></td><td>$img1 %</td></tr>
                        <tr><td>반대($num2)</td><td><img src='bar.gif' width='$img2' height='13'></td><td>$img2 %</td></tr>
                </table>
        </td></tr>
</table>
</body>
</html>
");
?>


이렇게 끝입니다.. ^^;;
제목 글쓴이 날짜
초간단 스팸방지 하면서 곧바로 메일 보내기 [3] U2em 2004.05.31
해당 ftp 파일 서버에서 다른곳의 ftp 파일 서버로 백업용도 및 전송하기.. [9] 김동욱 2004.05.30
초간단 설문조사 소스 [3] 이혁 2004.05.27
PHP로 구현하는 음악 감상실 [9] file 컴도미 2004.05.21
[국밥PHP] 1-1(1). 개념정리 Break Time (Build 1) [7] 9000㎒ 2004.05.18
팁 아닌 팁 한달전... http://zentoo.com 2004.05.15
포털사이트 처럼 시스템 점검중 만들기 [3] http://zentoo.com 2004.05.14
PHP 4에서 PHP 5로 이행 [5] 이종현 2004.04.30
PHP5 RC2 Released. [4] 써니루루☆ 2004.04.27
트랙백 구현하기 - 2. 트랙백의 형식 file TheMics 2004.04.22
트랙백 구현하기 - 2. 트랙백의 형식 file TheMics 2004.04.22
엔지오 채널 따라하기 -_-& www자동 붙이기 [6] 박종찬 2004.04.18
트랙백 구현하기 - 1. 트랙백이란 무엇인가? [4] file TheMics 2004.04.18
[국에 밥말아먹는 PHP 프로그래밍] 1-1. PHP는 뭐하는 밥이냐?! (상) (Build 2) [17] 9000㎒ 2004.04.18
배열의 정렬에 대한 약간의 강의 [2] ♡다솜지기♡ 2004.04.02
드디어 PHP 5 RC1 발표(04.03.18) [8] 써니루루☆ 2004.03.19
PHP와 MYSQL연동 관련함수 [3] 백무혼 2004.03.07
함수] Exec 함수에 대한 간략한 설명 [3] NS 2004.03.05
초간단 인라이브 방송여부 알아보기 프로그램. [12] 심심타 2004.03.01
[허접팁]윈엠프 리스트창에 방송정보 보여주기;;[수정] [5] file 『처니리♂』 2004.02.29