>백엔드 개발 >PHP 튜토리얼 >PHP가 처음이시라면 저를 도와주세요. PHP가 처음이시라면 저를 도와주세요. (9)

PHP가 처음이시라면 저를 도와주세요. PHP가 처음이시라면 저를 도와주세요. (9)

WBOY
WBOY원래의
2016-07-29 08:34:59883검색

建设一个简单交互的网站(五)
8. 投票系统
  在许多时候,我们需要收集上网者和网友们的意见。例如:新版页面与旧版页面的比较;对某一事情的看法;对体育比赛结果的预测等等。这时候,你需要一个非常有效的网上调查系统。使用PHP就可以非常方便地实现你的这一构想。
8.1 投票系统(mypolls.php3):
$status=0;
if(isset($polled)&&($polled=="c-e")){
$status=1;
}
#echo "$status";
if(isset($poll)&&($status==0)){
setcookie("polled","c-e",time()+86400,"/");#time=24h
}
?>


新版页面调查




与旧版页面相比较您觉得新版页面:


if(!isset($submit)){
?>


추가 정보
웹페이지가 더 아름답습니다

개선 없음
="radio" name="poll_voteNr" value="4" >
기타



설문조사 결과 보기

/*
다른 옵션을 추가하고 싶다면 직접 추가할 수 있습니다. 그냥 올라가세요
*/
}else{
$descArray=array(1=>"추가 정보",
2=>"웹페이지가 더 아름답습니다",
3 =>"개선 없음",
4=>"기타"
);
$poll_resultBarHeight = 9; // 결과 테이블의 백분율 막대 높이
$poll_resultBarScale = 1; // 결과 표시줄의 크기(100픽셀의 배수)
$poll_tableHeader=""
$poll_rowHeader=""; >$poll_dataHeader=""
$poll_rowFooter="
$poll_tableFooter="< ;/table>";
$coutfile="data.pol";
$poll_sum=0;
// 카운터 파일 읽기
if (file_exists( $coutfile))
{
$fp = fopen( $coutfile, "rt");
while ($Line = fgets($fp, 10))
{
// 줄을 식별자/카운터로 분할
if (ereg( "([^ ]*) *([0-9]*)", $Line, $tmp))
{
$curArray[(int)$tmp[1]] = ( int)$tmp[2];
$poll_sum =(int)$tmp[2];
}
}
// 파일 닫기
fclose($fp); }else{//
for ($i=1;$i<=count($descArray);$i ){
$curArray[$i]=0;
}
}
if(isset($poll)){
$curArray[$poll_voteNr] ;
$poll_sum ;
}
echo $poll_tableHeader
// 모든 옵션 달력 배열
reset($curArray);
while (list($K, $V) = 각각($curArray))
{
$poll_optionText = $descArray[$K]
$ poll_optionCount = $V;
echo $poll_rowHeader;
if($poll_optionText != "")
{
echo $poll_dataHeader;
echo $poll_dataFooter; >if($poll_sum)
$poll_percent = 100 * $poll_optionCount / $poll_sum;
else
$poll_percent = 0;
echo $poll_dataHeader
if ($poll_percent > 0 )
{
$poll_percentScale = (int)($poll_percent * $poll_resultBarScale);
}
printf(" %.2f %% (%d)", $poll_percent, $poll_optionCount); 🎜>echo $poll_dataFooter
}
echo $poll_rowFooter;
}
echo "총 투표 수: $poll_sum"; $poll_tableFooter;
echo "
";
echo "";
echo " ";
if (isset($poll)){
// 카운터 파일 쓰기
$fp = fopen($coutfile, "wt")
reset($curArray)
while(list($Key) , $Value) = 각각($curArray))
{
$tmp = sprintf( "%s %dn", $Key, $Value)
fwrite($fp, $tmp)
}
// 파일 닫기
}
}
?>
🎜>참고: 위에서 투표 시스템의 기본 프로세스를 볼 수 있습니다.
1. 파일을 열어 $curArray 배열에 데이터를 가져옵니다(파일이 없으면 $curArray 배열을 초기화합니다). 🎜>2. 달력 배열, 처리 데이터가 필요한 값을 얻습니다
3. 백분율을 계산하고 통계 막대 이미지의 너비를 제어합니다
4. 데이터를 "data.pol"에 저장합니다
여기서 주의할 점: 여기 data.pol 텍스트 파일에는 쓰기 권한이 필요합니다. 

이상은 PHP 초보자를 부탁드립니다. (9) 초보자를 부탁드립니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
";
$poll_dataFooter="