Comment réaliser un système de sondages en ligne sur Internet en utilisant Ms Access comme base de données.
Tout d’abord, réfléchissons à comment fonctionne un système de sondages en ligne. Celui qui développe l’application (dans ce cas, nous) met à disposition un sujet avec la possibilité d’une réponse fermée. Cela signifie que le visiteur a la possibilité de choisir parmi les options disponibles.

Dans le choix des réponses, il y a deux possibilités. L’utilisateur peut voter pour une seule option parmi celles disponibles (comme sur l’image du premier pas de ce tutoriel) ou il peut choisir plusieurs choix parmi toutes celles listées comme réponses possibles au sujet publié. Cette dernière solution est moins courante.

Il existe ensuite une autre manière de développer le système, qui est en vérité très peu utilisée. Cela consiste à offrir à l’utilisateur la possibilité d’insérer un commentaire personnel, en plus des réponses multiples. Souvent, cela peut être une entrée absente des listées, parfois une suggestion ou un commentaire supplémentaire au sondage.

Quelle que soit la solution choisie, il est important de décider dès le début si un utilisateur unique peut ou non exprimer plus d’un vote. La plupart des systèmes de sondages sur le Web, les scripts préparés, ne permettent qu’un seul avis par utilisateur. Il y a des cas où un visiteur peut exprimer plusieurs votes seulement s’il choisit des options différentes.

Dans le cas où aucun type de contrainte n’est mis en place, c’est-à-dire que chaque utilisateur peut exprimer autant de votes qu’il le souhaite, le script serait de facile réalisation. Chaque avis exprimé est enregistré dans la base de données sans autre précaution. Il n’y a aucune vérification pour savoir si l’utilisateur avait déjà voté.

Il est plus compliqué de choisir si l’utilisateur peut exprimer un seul vote. Comment vérifier cet aspect ? Il existe plusieurs solutions. La plus utilisée se base certainement sur l’adresse IP du visiteur. À chaque vote, on enregistre avec la préférence également l’IP. Au vote suivant, on croise les IP déjà présentes avec celle actuelle : en cas de présence, le vote est refusé.

La solution de l’IP a l’avantage d’être simple à réaliser, mais elle a le défaut de ne pas fonctionner si l’utilisateur possède une IP dynamique, ou s’il est sur un réseau où chaque ordinateur est identifié à l’extérieur par une adresse différente. Dans des cas similaires, au changement d’IP, on ne pourrait pas détecter le vote déjà exprimé.

Une autre solution plausible est de déposer un cookie sur l’ordinateur de l’utilisateur qui vote au sondage. C’est une possibilité intéressante, car même en présence d’une IP dynamique, si l’utilisateur se déconnecte puis se reconnecte à Internet, le cookie resterait. Dommage cependant que les cookies soient facilement supprimables et que tous les utilisateurs ne les acceptent pas.

La dernière parmi les possibilités les plus utilisées est l’inscription de l’utilisateur à une Communauté en ligne, comme il en existe beaucoup. Une fois inscrit, peut-être qu’au sein des différents services offerts, le lecteur pourrait aussi exprimer son vote au sondage, uniquement après s’être connecté. Ainsi, pour chaque vote, il y aurait un seul utilisateur inscrit.

Le système de vérification du vote à travers l’inscription à une Communauté est un système très utilisé dans ces Forums qui permettent la création de sondages, même par les utilisateurs eux-mêmes. Un exemple est l’application en PHP vBulletin (http://www.vbulletin.com), justement un Forum dont les inscrits peuvent créer des sondages et voter aux mêmes.

Le sondage que nous verrons dans notre exemple (de Matteo Stori) autorise un seul vote par utilisateur, se basant sur les cookies. Cela parce que la solution qui nous semble la meilleure (celle à inscription) n’a pas vraiment de sens à appliquer si aucun autre service utile n’est offert pour inciter l’utilisateur à s’inscrire. Personne, ou presque, ne s’enregistrerait sur un site juste pour voter à un sondage.

Le système que nous utiliserons se base sur Access comme archive des données collectées. Comme toujours, lorsqu’il s’agit de choisir le support des données, il est important de peser les solutions possibles et choisir celle qui convient le mieux à ses propres besoins. Un sondage doit pouvoir être ajouté, supprimé et modifié rapidement et facilement. Access, dans ce cas, est très pratique (il peut être supprimé en un clic).

La structure de l’application que nous allons présenter se base sur deux tables. La première, appelée “nomesondaggio”, contient uniquement le nom du sondage (ce système supporte un sondage à la fois). La seconde, intitulée “etichette”, liste les différentes options parmi lesquelles choisir son vote.

Voyons maintenant la structure des données. Dans la première table, le champ “nomesondaggio” est de type Texte de 50 caractères (mais peut être allongé si nécessaire). Dans la seconde table, le champ “etichetta” est de type Texte (50 caractères), puis “id_etichetta”, de type Compteur avec Clé primaire. Enfin “opzioni” de type Numérique (Entier long).

Nous avons vu les données présentes et les types de données qui nous intéressent pour créer un simple système de sondages en ligne avec Microsoft Access. Il y a peu de données présentes, car dans la base de données nous devons uniquement sauvegarder le titre du sondage et les différentes options admises parmi lesquelles l’utilisateur devra choisir.

Pour éviter qu’à chaque modification du sondage corresponde un téléchargement puis un téléversement du fichier .mdb, il est nécessaire d’avoir un panneau de contrôle sur le Web qui nous permette de modifier le titre du sondage ou les différentes options, directement en ligne.

Que pouvons-nous faire exactement depuis ce panneau de contrôle en ligne ? La première chose est de modifier le titre du sondage, c’est-à-dire la question à laquelle les utilisateurs devront répondre. C’est la première possibilité offerte par le panneau, dans le premier encadré en haut.

La seconde possibilité offerte par le panneau de contrôle est d’ajouter de nouvelles étiquettes, c’est-à-dire de nouvelles options parmi lesquelles les utilisateurs pourront choisir. Pour ce faire, on spécifie le nombre de nouvelles entrées à ajouter, puis on modifie le champ créé (il prend par défaut un numéro) avec la valeur choisie.

Nous avons vu que pour ajouter une option, il est implicitement demandé de savoir modifier la nouvelle entrée créée. Voyons donc comment changer une des options : on insère le nouveau texte à côté de l’entrée à modifier puis on appuie sur le bouton « Envoyer » en bas de page.

Évidemment, il est aussi possible d’éliminer une des entrées présentes dans le sondage. On le fait quand on a fait une erreur en ajoutant une option, ou pour créer un nouveau questionnaire, on découvre que les options présentes sont trop nombreuses. Pour en supprimer une ou plusieurs, on coche les cases (techniquement des checkboxes) à côté des options puis on appuie sur le classique « Envoyer » en bas de page.

Une question que beaucoup de lecteurs pourraient se poser concerne l’adresse IP. C’est-à-dire, pourquoi sauvegarder cette valeur numérique du visiteur qui commente ? Tout d’abord pour avertir le commentateur de ne pas abuser du service. Ensuite, pour transmettre cette valeur (avec l’heure et la date) aux autorités compétentes en cas de plaintes.

Avant de voter, on peut aussi contrôler comment le sondage se déroule (c’est une option publique dans ce système, c’est-à-dire disponible à tous les visiteurs). Il suffira de cliquer sur le lien « résultats » au bas de la page sondage.asp pour obtenir les données extraites directement de la base de données.

Une fois exprimé son vote, les résultats mis à jour avec le dernier vote exprimé seront affichés (comme dans l’image du pas précédent). Si le vote avait déjà été exprimé, alors il ne sera pas enregistré dans la base de données et une nouvelle page apparaîtra avec le texte « Vous avez déjà voté ».


Soyez le premier à commenter