首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 實例教學:投票系統完整實作(含 Cookie、陣列、檔案鎖定)

     編輯:PHP 相關知識

前置準備

請先完成 PHP 安裝(Linux/Win98/Win2000)並理解表單處理基礎。

核心技術講解

Cookie 防重複投票

setcookie() 必須在任何輸出前呼叫。參數:name, value, expire, path, domain, secure。

// 設定 3 天有效期
setcookie("voted", "1", time() + 60*60*24*3);

PHP 陣列操作

// 索引陣列(預設從 0 開始)
$descArray = array(
    1 => "英文:原始碼、程式下載",
    2 => "英文:PHP 動態網頁",
    // ...
);

// 關聯陣列
$MyArray2 = array(
    "地支" => array("子","丑","寅","卯"),
    "生肖" => array("鼠","牛","虎","兔"),
    "數字" => array(1,2,3,4)
);
// 存取:$MyArray2["地支"][0] → "子"

檔案鎖定 flock() 防止競態條件

兩人同時投票讀取同一檔案,若不鎖定會導致票數遺失。

$fp = fopen("sum.txt", "r+");
flock($fp, 2); // 獨佔鎖定(寫入)
// 讀取、計算、寫入
flock($fp, 3); // 釋放鎖定
fclose($fp);

操作碼:1=共享鎖(可讀)、2=獨佔鎖(寫入)、3=釋放、4=非阻塞。

系統架構

  • vote.php:主程式
  • config.php:設定檔(標題、選項、資料檔路徑等)
  • 1.gif:圖片資源
  • sum.txt:票數資料檔

config.php 範例

<?php
$title = "讀者類型調查表";
$item = array(
    1 => "學生",
    2 => "工程師",
    3 => "教師",
    4 => "其他"
);
$datafile = "sum.txt";
$cookie_name = "vote_check";
$cookie_expire = time() + 3600*24*30; // 30 天
?>
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved