比较图像上的点击次数与数据库中记录的点击次数

时间:2013-01-07 23:08:14

标签: php javascript

我正在为自己开发一个非常简单的登录系统,而不是在线发布它。 我的场景:在注册过程中,用户选择他的用户名并插入所需的点击次数进行登录,它将存储在数据库中。在登录期间,用户将首先键入他的用户名,然后用户将重定向到一个页面,用户将点击带有onclick功能的图像来计算点击次数。

问题:如何从login.php获取“点击次数”,然后在checkclick.php中与数据库中记录的点击次数进行比较?我已经尽力找到自己的想法已经好几天了。但是,我失败了。说实话,我在编程方面很慢而且很弱,所以我希望我能在这里得到一些帮助。我的朋友确实建议我使用AJAX,但经过教程后,我真的不明白。有人可以帮忙吗?我将不胜感激。

非常感谢您阅读和帮助解决我的问题。

login.php    

<?php
include("connection.php");
$username = $_SESSION["CID"];
$table1=mysql_query("select * from pic_a");
$table2=mysql_query("select * from pic_b");
$table3=mysql_query("select * from pic_c");

$tab1[0]=0;
$tab2[0]=0;
$tab3[0]=0;

$i=0;
while($row=mysql_fetch_assoc($table1))
{
    $tab1[$i]= $row["pic_link"];
    $i++;
}

$i=0;
while($row=mysql_fetch_assoc($table2))
{
    $tab2[$i]= $row["pic_link"];
    $i++;
}

$i=0;
while($row=mysql_fetch_assoc($table3))
{
    $tab3[$i]= $row["pic_link"];
    $i++;
}


$rand1=rand(0,9);
$rand2=rand(0,9);
$rand3=rand(0,9);


?>
<script type="text/javascript">
var count = 0;
function countClicks() {
count = count + 1;
document.getElementById("clicks").innerHTML = count;
}
</script>

<body>
<h1>login</h1>

    <form action = "" name = "allpass" method = "post" enctype = "multipart/form-data">

        <p style="font-size:20px">Username: <?php echo $username;?> </p>
        <p style="font-size:20px">Password:</p>
    <p><table border = 0>

    <td>
        <div STYLE=" height: 800px; width: 165px; font-size: 12px;">
    <table border="1">
         <tr id="bird" onclick="countClicks();">
            <td><img src="password\<?php echo $tab1[$rand1]; ?>" alt="" width="76" height="67"></td>
            <td>Bird</td>
         </tr>
         <tr id="car" onclick="countClicks();">
            <td><img src="password\<?php echo $tab2[$rand2]; ?>" alt="" width="76" height="67"></td>
            <td>Car</td>
         </tr>
         <tr id="computer" onclick="countClicks();">
            <td><img src="password\<?php echo $tab3[$rand3]; ?>" alt="" width="76" height="67"></td>
        </table>
        </div>
        </td>
        </table>
        <p id="clicks">0</p>
        <input type = "submit" style=" height: 25px; width: 75px" value = "Login" name = "submitbtn" />
</form></p>
</div>


</body>
</html>

checkclicks.php
<?php
    include("connection.php");


if(!isset($_GET["username"]) || !isset($_GET["clicks"]))
die("Error");
    $username = $_GET["username"];
    $jsClicks = $_GET["clicks"];
    $phpClicks = null;

$data = mysql_query("SELECT clicks FROM customerdetails WHERE customer_username='$username'");
while($row = mysql_fetch_array($data))
{
$phpClicks = $row["clicks"];
}
    if( $phpClicks == $clicks)
    {
    ?>
    <script type="text/javascript">
        alert("success");
        location = "welcome.php";
    </script>
<?php
} else {
?>
    <script type="text/javascript">
        alert("fail");
        location = "login.php";
    </script>

<?php
}
?>

2 个答案:

答案 0 :(得分:0)

我认为最简单的解决方案是设置一个java变量,它等于从您的数据库导入的php变量。例如:

function countClicks() {
var myclicks = <?php echo $value_from_database; ?>;
count = count + 1;
if(count >= myclicks){
window.location = "success.html";
}}

答案 1 :(得分:0)

一种解决方案是使用JQuery使用$post将数据发布到数据库。下面的代码将数据发布到PHP文件到INSERT name&amp;数

$(document).ready(function(){
   number = 0; 
   $("#count").click(function(){//id of image 
   ++number;
   $('#counter').val(number);
   });

  $("#submit").click(function(){
    name= $("input").val();//id of text field for name
    $.post("ClickInsert.php",
    {
      name:name,
      ClickCount:number
    },
    function(data,status){
      alert("Insert status: " + status);
    });
  });
});

不使用已弃用的mysql_函数,而是使用PDO以下代码是针对新用户的INSERT。

<?php
//dependant on your setup
$host= "localhost";
$username="XXX";
$password="YYY";
$database="ZZZ";
// connect to the database  
$name = $_POST["name"];
$ClickCount = $_POST["ClickCount"];

try {  

    $dbh = new PDO("mysql:host=$host;dbname=$database", $username, $password);  
    $dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );  
    //
    $stmt = $dbh->prepare("INSERT INTO `tablename` (`id`, `Name`, `ClickCount`) VALUES (NULL, ?, ?);");  
    $stmt->bindParam(1,$name);
    $stmt->bindParam(2,$ClickCount);
    $stmt->execute(); 
    echo "Welcome ". $name;
  }   
catch(PDOException $e) {  
    echo "Error .". $e->getMessage() ;// Remove or modify after testing 
    file_put_contents('PDOErrors.txt',date('[Y-m-d H:i:s]'). $e->getMessage()."\r\n", FILE_APPEND);  
}  
// close the connection
$dbh = null;
?>

可以将代码更改为SELECT user