Créez une plateforme de vote en ligne PHP sûre et fiable
Avec le développement rapide d'Internet, les plateformes de vote en ligne sont largement utilisées dans divers domaines, tels que les élections gouvernementales, les élections scolaires, la prise de décision en entreprise, etc. Cependant, la sécurité et la fiabilité deviennent des préoccupations importantes dans la conception des plateformes de vote en ligne. Cet article expliquera comment utiliser le langage PHP pour créer une plateforme de vote en ligne sûre et fiable, et fournira des exemples de code à titre de référence.
1. Conception et création de bases de données
Tout d'abord, nous stockons les données relatives au vote via la base de données MySQL. Voici des exemples de création de plusieurs tables de bases de données requises par la plateforme de vote :
Utilisateurs CREATE TABLE (
id INT(11) PRIMARY KEY AUTO_INCREMENT, username VARCHAR(50) NOT NULL, password VARCHAR(100) NOT NULL
);
CREATE TABLE sondages (
id INT(11) PRIMARY KEY AUTO_INCREMENT, title VARCHAR(100) NOT NULL, description TEXT NOT NULL
);
Options CRÉER UNE TABLE (
id INT(11) PRIMARY KEY AUTO_INCREMENT, poll_id INT(11) NOT NULL, option_text VARCHAR(200) NOT NULL, votes INT(11) DEFAULT 0
);
CREATE TABLE votes (
id INT(11) PRIMARY KEY AUTO_INCREMENT, user_id INT(11) NOT NULL, poll_id INT(11) NOT NULL, option_id INT(11) NOT NULL, FOREIGN KEY (user_id) REFERENCES users(id), FOREIGN KEY (poll_id) REFERENCES polls(id), FOREIGN KEY (option_id) REFERENCES options(id)
);
2. Fonctions d'enregistrement et de connexion des utilisateurs
Lors de la création d'une plateforme de vote sécurisée, les fonctions d'enregistrement et de connexion des utilisateurs sont un élément très important. Ce qui suit est un exemple de code simple de la fonction d'enregistrement et de connexion de l'utilisateur :
<?php if ($_SERVER['REQUEST_METHOD'] == 'POST') { $username = $_POST['username']; $password = password_hash($_POST['password'], PASSWORD_DEFAULT); // 将用户名和密码插入至数据库 $sql = "INSERT INTO users (username, password) VALUES ('$username', '$password')"; // 执行插入操作 $result = mysqli_query($conn, $sql); if ($result) { echo "注册成功!"; } else { echo "注册失败,请重试!"; } } ?> <form action="register.php" method="POST"> <input type="text" name="username" placeholder="用户名" required> <input type="password" name="password" placeholder="密码" required> <button type="submit">注册</button> </form>
<?php session_start(); if ($_SERVER['REQUEST_METHOD'] == 'POST') { $username = $_POST['username']; $password = $_POST['password']; // 根据用户名查询数据库 $sql = "SELECT * FROM users WHERE username='$username'"; $result = mysqli_query($conn, $sql); $user = mysqli_fetch_assoc($result); if ($user && password_verify($password, $user['password'])) { $_SESSION['user_id'] = $user['id']; $_SESSION['username'] = $user['username']; header("Location: dashboard.php"); } else { echo "用户名或密码错误!"; } } ?> <form action="login.php" method="POST"> <input type="text" name="username" placeholder="用户名" required> <input type="password" name="password" placeholder="密码" required> <button type="submit">登录</button> </form>
3. Créez une fonction de vote
dans Après avoir implémenté les fonctions d'enregistrement et de connexion des utilisateurs, nous présenterons ci-dessous comment créer la fonction de vote. Voici un exemple de code pour créer un sujet de sondage et des options :
<?php session_start(); if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_SESSION['user_id'])) { $title = $_POST['title']; $description = $_POST['description']; $options = $_POST['options']; // 插入投票主题表 $sql = "INSERT INTO polls (title, description) VALUES ('$title', '$description')"; mysqli_query($conn, $sql); $poll_id = mysqli_insert_id($conn); foreach ($options as $option) { // 插入选项表 $sql = "INSERT INTO options (poll_id, option_text) VALUES ('$poll_id', '$option')"; mysqli_query($conn, $sql); } echo "投票主题创建成功!"; } ?> <form action="create_poll.php" method="POST"> <input type="text" name="title" placeholder="投票标题" required> <textarea name="description" placeholder="投票描述" required></textarea> <label>选项1:<input type="text" name="options[]" required></label> <label>选项2:<input type="text" name="options[]" required></label> <button type="submit">创建投票</button> </form>
<?php session_start(); if (isset($_SESSION['user_id'])) { // 查询所有投票主题 $sql = "SELECT * FROM polls"; $result = mysqli_query($conn, $sql); $polls = mysqli_fetch_all($result, MYSQLI_ASSOC); foreach ($polls as $poll) { echo "<h3>" . $poll['title'] . "</h3>"; echo "<p>" . $poll['description'] . "</p>"; // 查询选项列表 $sql = "SELECT * FROM options WHERE poll_id=" . $poll['id']; $result = mysqli_query($conn, $sql); $options = mysqli_fetch_all($result, MYSQLI_ASSOC); foreach ($options as $option) { echo "<label><input type='radio' name='option' value='" . $option['id'] . "'> " . $option['option_text'] . "</label>"; } echo "<button type='submit'>投票</button>"; echo "<hr>"; } } else { echo "请先登录!"; } ?>
En résumé , nous avons réussi. Une plateforme de vote en ligne PHP sûre et fiable a été créée. Grâce à la conception et à la création de la base de données, à la mise en œuvre de fonctions d'enregistrement et de connexion des utilisateurs et au développement de fonctions de vote, nous pouvons facilement organiser un vote en ligne. Bien entendu, l'exemple de code ici n'est qu'une simple implémentation. Dans les applications réelles, davantage de problèmes de sécurité doivent être pris en compte, tels que la prévention des injections SQL, des attaques XSS, etc. J'espère que cet article vous sera utile et je vous souhaite de créer une meilleure plateforme de vote en ligne !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!