这是一个使用PHP实现的简单在线投票程序,它包括一个投票页面和一个结果页面。
1. 创建数据库和数据表
我们需要创建一个数据库来存储投票信息,假设我们使用的是MySQL数据库,可以使用以下SQL语句创建一个名为poll
的数据库和一个名为votes
的数据表:
CREATE DATABASE poll; USE poll; CREATE TABLE votes ( id INT AUTO_INCREMENT PRIMARY KEY, vote VARCHAR(255) NOT NULL );
2. 连接数据库
我们需要在PHP中连接到这个数据库,可以使用以下代码:
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "poll"; // 创建连接 $conn = new mysqli($servername, $username, $password, $dbname); // 检测连接 if ($conn>connect_error) { die("连接失败: " . $conn>connect_error); } ?>
请将$username
和$password
替换为您的数据库用户名和密码。
3. 投票页面(vote.php)
投票页面允许用户选择一个选项进行投票,以下是一个简单的HTML表单:
<!DOCTYPE html> <html> <head> <title>在线投票</title> </head> <body> <h1>在线投票</h1> <form action="submit_vote.php" method="post"> <label for="option1">选项1:</label> <input type="radio" name="vote" value="选项1" id="option1"><br> <label for="option2">选项2:</label> <input type="radio" name="vote" value="选项2" id="option2"><br> <input type="submit" value="投票"> </form> </body> </html>
4. 提交投票(submit_vote.php)
当用户提交投票时,submit_vote.php
文件将处理投票并将结果插入到数据库中,以下是处理投票的PHP代码:
<?php include 'db_connection.php'; // 包含数据库连接文件 if ($_SERVER["REQUEST_METHOD"] == "POST") { $vote = $_POST["vote"]; $sql = "INSERT INTO votes (vote) VALUES ('$vote')"; if ($conn>query($sql) === TRUE) { echo "投票成功!"; } else { echo "Error: " . $sql . "<br>" . $conn>error; } } $conn>close(); ?>
5. 显示结果页面(results.php)
我们需要一个结果页面来显示每个选项的票数,以下是一个简单的结果页面:
<?php include 'db_connection.php'; // 包含数据库连接文件 $sql = "SELECT vote, COUNT(*) as count FROM votes GROUP BY vote"; $result = $conn>query($sql); if ($result>num_rows > 0) { echo "<table><tr><th>选项</th><th>票数</th></tr>"; while($row = $result>fetch_assoc()) { echo "<tr><td>" . $row["vote"]. "</td><td>" . $row["count"]. "</td></tr>"; } echo "</table>"; } else { echo "暂无投票结果"; } $conn>close(); ?>
用户可以访问vote.php
页面进行投票,投票结果将显示在results.php
页面上。
下面是一个基本的PHP在线投票程序的示例,该程序将会将投票选项以介绍的形式显示,请注意,这个示例仅用于展示目的,它没有包括防止重复投票、数据验证或安全性措施。
<?php // 假设这是投票的数据 $votes = array( 'Option 1' => 0, 'Option 2' => 0, 'Option 3' => 0, 'Option 4' => 0, ); // 检查是否有投票提交 if ($_SERVER['REQUEST_METHOD'] == 'POST') { // 假设我们通过POST方式接收投票数据 if (isset($_POST['vote'])) { $selected_vote = $_POST['vote']; if (array_key_exists($selected_vote, $votes)) { $votes[$selected_vote]++; } } } // 投票结果保存到session,实际应用中可能需要更安全的存储方式 session_start(); $_SESSION['votes'] = $votes; // HTML介绍输出 echo '<form method="post" action="">' . PHP_EOL; echo '<table border="1">' . PHP_EOL; echo '<tr><th>Vote Options</th><th>Vote</th></tr>' . PHP_EOL; foreach ($votes as $option => $count) { echo '<tr>'; echo '<td>' . $option . '</td>'; echo '<td><input type="radio" name="vote" value="' . $option . '" required></td>'; echo '</tr>' . PHP_EOL; } echo '<tr>'; echo '<td colspan="2" align="center"><input type="submit" value="Vote"></td>'; echo '</tr>'; echo '</table>'; echo '</form>'; // 显示投票结果(可选) echo '<h2>Vote Results</h2>'; echo '<table border="1">' . PHP_EOL; echo '<tr><th>Option</th><th> Votes </th></tr>' . PHP_EOL; foreach ($votes as $option => $count) { echo '<tr>'; echo '<td>' . $option . '</td>'; echo '<td>' . $count . '</td>'; echo '</tr>' . PHP_EOL; } echo '</table>'; ?>
在上述代码中,我们创建了一个表单,其中包含几个可供选择的投票选项,每个选项旁边都有一个单选按钮,用户提交表单后,脚本会检查用户的选择,并相应地更新投票计数。
请注意以下几点:
这个脚本没有对输入进行验证或清理,这是在生产环境中非常重要的。
投票结果被存储在会话中,这意味着在用户会话结束时,结果将会丢失,在实际应用中,你可能会将结果存储在数据库中。
没有防止重复投票的机制。
这个示例仅用于教学目的,不应在生产环境中直接使用。
在实际部署之前,你应该添加更多的安全措施和错误处理功能。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/712583.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复