我正在为自己开发一个非常简单的登录系统,而不是在线发布它。 我的场景:在注册过程中,用户选择他的用户名并插入所需的点击次数进行登录,它将存储在数据库中。在登录期间,用户将首先键入他的用户名,然后用户将重定向到一个页面,用户将点击带有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
}
?>
答案 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