- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有三个 PHP 页面。登录、投票和投票流程。在投票页面,用户可以为候选人投票。有单选按钮和复选框。以下是投票页面的代码:
<?php
error_reporting(E_ALL & ~E_NOTICE);
session_start();
if (isset($_SESSION['uname'])) {
$username = $_SESSION['uname'];
}
else {
header('Location: login_user.php');
die();
}
?>
<html>
<head>
<title>Trinity University of Asia Voting System</title>
</head>
<body>
<img src="images/tua_logo.jpg"><marquee>Practice your right to vote.</marquee><br>
<center>
<a href="/">Home</a> | <a href="results.php">Results</a> | <a href="logout.php">Logout</a><br>
<h3>Cast Your Vote</h3>
<form action="processvoting.php" method="post">
<table cellpadding="4" border="1">
<tr>
<th>Position</th>
<th>Choice 1</th>
<th>Choice 2</th>
</tr>
<tr>
<th>President</th>
<td><input type="radio" name="president" value="pres1"> JOHN MICHAEL KALEMBE<br>College of Business Administration</td>
<td><input type="radio" name="president" value="pres2"> SUZAN JOHN<br>College of Education</td>
</tr>
<tr>
<th>Vice President</th>
<td><input type="radio" name="vice_president" value="vicepres1"> JULIUS SAMWEL<br>College of Medical Technology</td>
<td><input type="radio" name="vice_president" value="vicepres2"> JEUNICE MARIANO<br>College of Business Administration</td>
</tr>
<tr>
<th>Secretary</th>
<td><input type="radio" name="secretary" value="sec1"> ANGELO CHRSTIAN DE GUZMAN<br>College of Medical Technology</td>
<td><input type="radio" name="secretary" value="sec1"> MICHAEL SANGA<br>College of Hospitality and Tourism Management</td>
</tr>
<tr>
<th>Treasurer</th>
<td><input type="radio" name="treasurer" value="treas1"> MARIE DANIELLE THEREZE VALDEZ<br>College of Hospitality and Tourism Management</td>
<td><input type="radio" name="treasurer" value="treas1"> JEUNICE MARIANO<br>College of Business Administration</td>
</tr>
<tr>
<th>Auditor</th>
<td><input type="radio" name="auditor" value="aud1"> KOBI TSARLZ GONZALES<br>College of Computing and Information Sciences</td>
<td><input type="radio" name="auditor" value="aud1"> MARIAN ENTERO<br>College of Business Administration</td>
</tr>
<tr>
<th>Business Manager</th>
<td><input type="checkbox" name="bus_manager" value="bus1"> MICAH EDILYN TAN<br>College of Arts and Sciences</td>
<td>N/A</td>
</tr>
<tr>
<th>Public Relations Officer (PRO)</th>
<td><input type="checkbox" name="pro" value="pro1"> MARIBETH LIAMZON<br>College of Education</td>
<td>N/A</td>
</tr>
</table>
<input type="submit" name="submit" value="Cast Your Vote"> <input type="reset" value="Reset">
</form>
</center>
</body>
</html>
用户投票后,他将被重定向到投票流程页面,代码如下:
<?php
error_reporting(E_ALL & ~E_NOTICE);
session_start();
if (isset($_SESSION['uname'])) {
$username = $_SESSION['uname'];
}
else {
header('Location: login_user.php');
die();
}
include 'connection.php';
if(isset($_POST['submit'])) {
$president = $_POST['president'];
$vicepres = $_POST['vice_president'];
$secretary = $_POST['secretary'];
$treasurer = $_POST['treasurer'];
$auditor = $_POST['auditor'];
$businessmanager = $_POST['bus_manager'];
$pro = $_POST['pro'];
$conn = mysqli_connect('localhost', 'root', '', 'electiondb');
if (!$conn) {
die("Connecton failed: " . mysqli_connect_error());
}
$votesql = "SELECT voted FROM student_log WHERE username = '$username'";
$query = mysqli_query($conn, $votesql);
while($record = mysqli_fetch_array($query)) {
$hasvoted = $record['voted'];
}
if ($hasvoted == 0) {
if ($president == '') {
echo "You cannot leave $president blank. Please go back and try again.";;
}
elseif ($vicepres == '') {
echo "You cannot leave $vicepres blank. Please go back and try again.";
}
elseif ($secretary == '') {
echo "You cannot leave $secretary blank. Please go back and try again.";
}
elseif ($treasurer == '') {
echo "You cannot leave $treasurer blank. Please go back and try again.";
}
elseif ($auditor == '') {
echo "You cannot leave $auditor blank. Please go back and try again.";
}
elseif ($businessmanager == ''){
echo "You cannot leave $businessmanager blank. Please go back and try again.";
}
elseif ($pro == '') {
echo "You cannot leave $pro blank. Please go back and try again.";
}
else {
switch ($president) {
case 'pres1':
$votepres1 = "UPDATE vote_log SET choice1 = choice1+1 WHERE position = 'president'";
$runpres1 = mysqli_query($conn, $votepres1);
break;
case 'pres2':
$votepres2 = "UPDATE vote_log SET choice2 = choice2+1 WHERE position = 'president'";
$runpres2 = mysqli_query($conn, $votepres2);
break;
}
switch ($vicepres) {
case 'vicepres1':
$votevicepres1 = "UPDATE vote_log SET choice1 = choice1+1 WHERE position = 'vice_president'";
$runvicepres1 = mysqli_query($conn, $votevicepres1);
break;
case 'vicepres2':
$votevicepres2 = "UPDATE vote_log SET choice2 = choice2+1 WHERE position = 'vice_president'";
$runvicepres2 = mysqli_query($conn, $votevicepres2);
break;
}
switch ($secretary) {
case 'sec1':
$votesec1 = "UPDATE vote_log SET choice1 = choice1+1 WHERE position = 'secretary'";
$runsec1 = mysqli_query($conn, $votesec1);
break;
case 'sec2':
$votesec2 = "UPDATE vote_log SET choice2 = choice2+1 WHERE position = 'secretary'";
$runsec2 = mysqli_query($conn, $votesec1);
break;
}
switch ($treasurer) {
case 'treas1':
$votetreas1 = "UPDATE vote_log SET choice1 = choice1+1 WHERE position = 'treasurer'";
$runtreas1 = mysqli_query($conn, $votetreas1);
break;
case 'treas2':
$votetreas2 = "UPDATE vote_log SET choice2 = choice2+1 WHERE position = 'treasurer'";
$runtreas2 = mysqli_query($conn, $votetreas2);
break;
}
switch ($auditor) {
case 'aud1':
$voteaud1 = "UPDATE vote_log SET choice1 = choice1+1 WHERE position = 'auditor'";
$runaud1 = mysqli_query($conn, $voteaud1);
break;
case 'aud2':
$voteaud2 = "UPDATE vote_log SET choice2 = choice2+1 WHERE position = 'auditor'";
$runaud2 = mysqli_query($conn, $voteaud2);
break;
}
switch ($businessmanager) {
case 'bus1':
$votebus1 = "UPDATE vote_log SET choice1 = choice1+1 WHERE position = 'business_manager'";
$runbus1 = mysqli_query($conn, $votebus1);
break;
}
switch ($pro) {
case 'pro1':
$votepro1 = "UPDATE vote_log SET choice1 = choice1+1 WHERE position = 'pro'";
$runpro1 = mysqli_query($conn, $votepro1);
break;
}
$sqlforvoted = "UPDATE student_log SET voted = 1 WHERE username = '$username'";
$processsql = mysqli_query($conn, $sqlforvoted) or die (mysqli_error($conn));
echo "Thank you for voting. You may now logout of the system.<br><a href='logout.php'>Logout</a>";
}
}
else {
echo "You cannot vote more than once. <br><a href='logout.php'>Logout</a>";
}
}
?>
<html>
<head>
<title>Voting Process</title>
</head>
<body>
</body>
</html>
投票不会增加,但用户被视为“已投票”,因此用户一旦登录就无法再次投票。我唯一担心的是投票没有计算在内。我的代码有问题还是我对投票数的理解不够好?谢谢!
最佳答案
我认为您的 HTML 中有一些拼写错误。这里,选项是 pres1
和 pres2
:
<td><input type="radio" name="president" value="pres1"> ... </td>
<td><input type="radio" name="president" value="pres2"> ... </td>
但在这里,两个选项都是sec1
:
<td><input type="radio" name="secretary" value="sec1"> ... </td>
<td><input type="radio" name="secretary" value="sec1"> ... </td>
关于数据库交互,最好使用 PDO 和准备好的语句 - 它比大多数字符串连接方案更安全。检查此页面右侧的“相关”列 - 最有可能的问题是 this one这很好地解释了这个话题。
无论如何,这是对 submit
部分的不同看法,它只是删除了所有重复内容。它不使用 PDO(我没有添加任何数据库代码),但至少最终查询中没有未经过滤的用户输入 - 只有预定义值:
if(isset($_POST['submit']) && !empty($_POST["submit"])) {
if($hasvoted != 0){
echo "You cannot vote more than once. <br><a href='logout.php'>Logout</a>";
exit;
}
$positions = array(
"president" => null,
"vice_president" => null,
"secretary" => null,
"treasurer" => null,
"auditor" => null,
"bus_manager" => null,
"pro" => null
);
foreach (array_keys($positions) as $position)
{
if (!isset($_POST[$position]) || empty($_POST[$position])) {
echo "All positions must be filled. Please try again.<br>";
exit;
}
else{
$choice = "";
$choice_num = substr($_POST[$position], -1);
if($choice_num == 1 || $choice_num == 2){
$choice = "choice" . $choice_num;
}
else{
echo "Error - invalid option";
exit;
}
$positions[$position] = $choice;
}
}
foreach (array_keys($positions) as $position)
{
$choice = $positions[$position];
$sql_str = "UPDATE vote_log SET " . $choice ." = " . $choice . "+1 WHERE position = '" . $position . "'";
// $sql_insert = mysqli_query($conn, $sql_str);
echo $sql_str . "<br>";
}
echo "Thank you for voting. You may now logout of the system.<br><a href='logout.php'>Logout</a>";
}
关于php - 使用单选按钮和复选框的投票系统 (PHP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37509975/
我在网站上实现了一个简单的向上/向下投票系统,并且我会跟踪个人投票以及投票时间和唯一用户 ID(散列 IP)。 我的问题不是如何计算投票的百分比或总和 - 但更多的是,根据投票确定好分数的好算法是什么
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and t
我有一个 Rails 应用程序,其中我的 Posts 模型有评论并且评论是可投票的。我正在使用 acts_as_votable。 我目前正在对评论进行投票。现在我正在尝试实现一些 javascript
几天前我刚刚开始使用 SQLAlchemy,现在我遇到了一个问题,我希望任何人都可以在我失去所有头发之前弄清楚。 当我运行单元测试时,请参阅下面的代码片段,只有序列中的第一个测试通过。测试 testP
有没有办法以编程方式访问Outlook电子邮件的“投票”功能?我希望能够发送启用了投票的电子邮件,并获得答复(最好是不进行投票)。 谢谢! 最佳答案 听起来您想使用Outlook对象模型中的MailI
我正在使用这个JQuery Ajax Voting system guide作为一个粗略的引用,但我对此的安全性有点担心。现在这个指南基本上存储了一些东西的ID和它的投票统计数据。 我想提出类似的想法
我正在使用 disqus 2012。我已经在我的网站上实现了评级系统,所以希望删除评论右上角的星号,因为它有点困惑。当我将鼠标悬停在上面时,它会显示“投票”。无论如何要从我的评论中删除它? 最佳答案
我有一个 PHP 系统,允许用户以 1 - 5 的范围对照片进行投票,我想要做的是突出显示两个人给彼此相同的投票/分数的地方。我目前无法弄清楚我的 PHP 函数的 SQL。 数据库看起来像这样 id,
tasker 等应用如何捕获上下文。假设我想捕捉当 wifi 打开时做某事的上下文。是否可以为 isWifiEnabled() 附加回调?或者在没有轮询的情况下启用 wifi 时执行处理程序。示例代码
Python(以及 StackOverflow)新手。试图弄清楚如何让它正确执行。虽然程序本身执行得很好,但我希望它没有额外的步骤。我的意思是,如果第一个语句失败,我想终止并打印与 else 语句相关
有什么方法可以制作一个安全的 php 投票系统吗?我会尝试存储 IP 地址,但有动态 IP。聪明的人可以重新连接并投票两次。 Cookie 也很容易破解。 最佳答案 任何跟踪用户的方式:cookies
我正在处理 Django tutorials ,现在我正在创建一个民意调查。 在我想创建选择之前,下面的代码工作正常,但出于某种原因,我总是收到此错误消息: line 22, in __unicode
我正在实现一些需要公共(public)轮询才能从服务器获取新值的对话框。我正在尝试使用 p:poll,但不幸的是我无法阻止它。我在用户单击一个对话框中的按钮时开始投票,并在用户单击子对话框中的按钮时尝
嘿,我需要手动将投票系统实现到模型中。 我从 Mike DeSimone 那里得到了巨大的帮助,首先完成了这项工作,但我需要扩展他的工作。 这是我当前的代码 查看 def show_game(requ
我正在实现一个投票系统,当我想使用 AJAX 更新投票数时,我会刷新所有出版物的计数。但我不能只刷新一份出版物。查看我的 HTML: @foreach($publications as $public
目前我正在投票 SCM H H(0-8) * * 5 我的意思是:周五午夜到早上 8 点之间进行民意调查。 我想要的是每隔一个星期五进行一次投票。 最佳答案 接受的答案在 Jenkins 中不起作用:
function vote() { = 1) { ?> alert("
我有一个大数据文件,该文件会不断地(同步地)被现场的测量设备附加到该文件中。我需要将最新的数据同步传送到这个文件到在线仪表板。我说等时是因为“仪表板”不关心显示数据流(高延迟情况),它只关心发送给它的
我正在学习 djangoproject.com 教程。我使用 pyCharm 设置了一个虚拟项目。在我的终端命令行上,我 cd 进入包含 manage.py 的文件夹,然后运行该行。python ma
我有一个正在尝试修改的 php/mysql 轮询。 如果您已经投票,它会设置一个唯一的 cookie,如果设置了 cookie,它会阻止您在同一个民意调查中投票两次。如果已设置,则您只能看到结果。 我
我是一名优秀的程序员,十分优秀!