Table des matières
" . $poll['title'] . "
Maison développement back-end tutoriel php Construisez une plateforme de vote en ligne PHP sûre et fiable

Construisez une plateforme de vote en ligne PHP sûre et fiable

Aug 09, 2023 am 08:42 AM
php 在线投票 安全可靠

Construisez une plateforme de vote en ligne PHP sûre et fiable

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 :

  1. Table des utilisateurs (users) : stocke les informations de base des utilisateurs de la plateforme de vote, telles que les noms d'utilisateur, les mots de passe, etc.

Utilisateurs CREATE TABLE (

id INT(11) PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
password VARCHAR(100) NOT NULL
Copier après la connexion

);

  1. Tableau des sujets de sondage (sondages) : stocke les informations sur le sujet de vote, telles que le titre du vote, la description, etc.

CREATE TABLE sondages (

id INT(11) PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(100) NOT NULL,
description TEXT NOT NULL
Copier après la connexion

);

  1. Tableau d'options (options) : stocke les informations sur les options pour chaque sujet de vote.

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
Copier après la connexion

);

  1. tableau des enregistrements de vote (votes) : une table qui stocke les enregistrements de vote des utilisateurs.

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)
Copier après la connexion

);

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 :

  1. Inscription de l'utilisateur (register.php) :
<?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>
Copier après la connexion
  1. Connexion de l'utilisateur (login.php) :
<?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>
Copier après la connexion

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 :

  1. Créer un sujet de sondage (create_poll.php) :
<?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>
Copier après la connexion
  1. Afficher un sujet de sondage et des options (dashboard.php) :
<?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 id="poll-title">" . $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 "请先登录!";
}
?>
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

CakePHP travaillant avec la base de données CakePHP travaillant avec la base de données Sep 10, 2024 pm 05:25 PM

Travailler avec la base de données dans CakePHP est très simple. Nous comprendrons les opérations CRUD (Créer, Lire, Mettre à jour, Supprimer) dans ce chapitre.

Date et heure de CakePHP Date et heure de CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

Téléchargement de fichiers CakePHP Téléchargement de fichiers CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

Discuter de CakePHP Discuter de CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

CakePHP créant des validateurs CakePHP créant des validateurs Sep 10, 2024 pm 05:26 PM

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.

Journalisation CakePHP Journalisation CakePHP Sep 10, 2024 pm 05:26 PM

Se connecter à CakePHP est une tâche très simple. Il vous suffit d'utiliser une seule fonction. Vous pouvez enregistrer les erreurs, les exceptions, les activités des utilisateurs, les actions entreprises par les utilisateurs, pour tout processus en arrière-plan comme cronjob. La journalisation des données dans CakePHP est facile. La fonction log() est fournie

Comment configurer Visual Studio Code (VS Code) pour le développement PHP Comment configurer Visual Studio Code (VS Code) pour le développement PHP Dec 20, 2024 am 11:31 AM

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

See all articles