建设一个简单交互的网站(五)
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)){
?>
/*
他のオプションを追加したい場合は、直接追加できます
*/
}else{
$descArray=array(1=>"詳細情報",
2=>"より美しい Web ページ",
3=> "改善なし",
4=>"その他"
);
$poll_resultBarHeight = 9; // 結果テーブルのパーセントバーの高さ
$poll_resultBarScale = 1; // 結果バーのスケール (100 の倍数)ピクセル)
$poll_tableHeader="
";
$poll_rowHeader=""; ="";
$poll_rowFooter="
";
$coutfile="data.pol";
// カウンターファイルを読み取ります
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){ //
for ( $i=1;$i$curArray[$i]=0;
}
}
if(isset($poll)){
$ curArray[$poll_voteNr] ++;
$poll_sum++;
echo $poll_tableHeader;
// すべてのオプションを循環編集
reset($curArray)
while (list($K, $V) = each ($ Curarray)
$ POLL_OPTIONTEXT = $ Descarray [$ K];
$ Poll_optingCount = $ V
ECHO $poll_optionText;
if($poll_sum);投票率 = 100 * $poll_optionCount / $poll_sum;
else
$poll_percent = 0;
echo $poll_dataHeader;
{
$poll_percentScale = (int)($poll_percent * $poll_resultBarScale) ;
}
printf(" %.2f %% (%d)", $poll_percent, $poll_optionCount);
echo $poll_dataFooter;
echo $poll_rowFooter
}
echo "総投票数:< font color=red> $poll_sum";
echo $poll_tableFooter;
echo "
";
echo "< input type="submit" name="Submit1" value="ホームページに戻る" onClick="javascript:location='http://gophp.heha.net/index.html'">";
echo " ";
if(isset($poll )){
// カウンターファイルを書き込みます
$fp = fopen($coutfile, "wt");
reset($curArray);
while (list($Key, $Value) = each($curArray))
{
$tmp = sprintf( "%s %dn", $Key, $Value );
fwrite($fp, $tmp);
// ファイルを閉じる
}
>
上記から、投票システムの基本プロセスがわかります。
1. ファイルを開き、配列 $curArray にデータを取得します (ファイルが存在しない場合は、配列 $curArray を初期化します)
2. カレンダー配列をコンパイルします。データを処理して必要な値を取得します
3. パーセンテージを計算し、統計バー画像の幅を制御します
4. データを「data.pol」に保存します
ここで注意すべき点が 1 つあります。テキスト ファイルには書き込み権限が必要です。
http://www.bkjia.com/PHPjc/316996.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/316996.html技術記事シンプルなインタラクティブなウェブサイトの構築 (5) 8. 投票システム 多くの場合、サーファーやネチズンの意見を収集する必要があります。例: 特定のページの新しいバージョンと古いバージョンの比較...
声明:この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。