0

我正在尝试在 PHP 中创建一个投票系统。除了使用“USER”和“PASS”作为包含登录信息的字段创建标准表之外,我还创建了另一个包含字段的表:“USER”和“CHECK”,其中“CHECK”是二进制 INT,默认值为“0 ”。但是当学生投票时,“检查​​”字段会更新为“1”。

我设计了登录脚本,使其首先检查“USER”和“PASS”中的记录,然后检查“USER”和“CHECK”表中的另一条记录,以获取默认值“0”以允许投票。如果它是“1”,它会重定向到“AlreadyVoted.htm”页面。

<?php
session_start();
$_SESSION['StudentID']=$_POST['UserID'];

include 'db_conneck.php';

$studentid=mysql_real_escape_string($_POST['UserID']);
$userpass=mysql_real_escape_string($_POST['LogPass']);
$sql="SELECT * FROM user_login WHERE studentid='$studentid' and password='$userpass'";
$sql1="SELECT * FROM check_login WHERE studentid='$studentid' and check='0'";
$sql2="SELECT * FROM check_login WHERE studentid='$studentid' and check='1'";
$result=mysql_query($sql);
$result1=mysql_query($sql1);
$result2=mysql_query($sql2);
$count=mysql_num_rows($result);
$count1=mysql_num_rows($result1);
$count2=mysql_num_rows($result2);

if ($count==1 and $count1==1){
    header ("location:FirstVote.php");
}
else if ($count==1 and $count2==1){
    header ("location:AlreadyVoted.html");
}
else {
    echo "Information Not On Database";
}
exit()
?>

但是我收到此错误

警告:mysql_num_rows() 期望参数 1 是资源,布尔值在第 13 行的 C:\xampp\htdocs\xampp\FirstVotePage\LoginCombo.php 中给出

警告:mysql_num_rows() 期望参数 1 是资源,布尔值在 C:\xampp\htdocs\xampp\FirstVotePage\LoginCombo.php 第 14 行信息不在数据库中给出

4

4 回答 4

1
$result=mysql_query($sql) or die(mysql_error());
$result1=mysql_query($sql1) or die(mysql_error());
$result2=mysql_query($sql2) or die(mysql_error());

注意: mysql 扩展已弃用,将来将被删除。

于 2013-08-05T09:29:07.100 回答
1

CHECK保留关键字,您应该通过反引号将其转义。

改用这些查询。

 $sql1="SELECT * FROM check_login WHERE studentid='$studentid' and `check`='0'";
 $sql2="SELECT * FROM check_login WHERE studentid='$studentid' and `check`='1'";
于 2013-08-05T09:35:18.307 回答
0

注意: 我仍然感到惊讶的是,一些 PHP 程序员仍然使用或死亡与 mysql_error() 结合使用或将其作为示例代码,黑客喜欢它,因为信息泄漏......

于 2013-08-05T11:47:41.443 回答
0

查询中有问题尝试回显查询,然后尝试在数据库中手动执行。

您的查询返回布尔值 false 而不是资源。

于 2013-08-05T09:34:47.460 回答