2017-07-26 80 views
0

我对编码和开发网站相当陌生,对于我的第一个项目,我决定使用PHP,JQuery和MySQL制作一个答题器网站。 但是,我遇到了一个问题。通过在图像上使用click()函数,我可以轻松地将clout变量加1,并且按钮上的文本会发生变化,但是当我尝试单击按钮将变量发送到我的php文件时,发生。任何帮助?我在下面留下了所需的代码。如何设置一个PHP变量等于一个JQuery变量,然后将其插入到MySQL数据库中?

click.php:

<div class="container-main"> 
    <img src="img/inCloutWeTrust.JPG" id="cloutImg" onclick="addClout()" /> 
</div> 
<input type="submit" id="submitB" value="No Clout Available To Claim!" id="text" class="cloutButton"> 
</div> 
<script> 
    var clout = 0; 
    $("#cloutImg").click(function() { 
     clout += 1; 
     if (clout == 1) { 
      $("#submitB").val('Claim 1 Clout Token'); 
     } else if (clout > 1) { 
      $("#submitB").val('Claim ' + clout + ' Clout Tokens'); 
     } 
    }); 

    $("#submitB").click(function() { 
     $.post("addclout.php", {variable: clout}); 
    }); 
</script> 

addclout.php

<?php 
    require 'core.inc.php'; 
    require 'connect.inc.php'; 
    $clout = $_POST['variable']; 
    $query = "UPDATE `users` SET `clout`=`clout` +".$clout." WHERE `id`='" + $_SESSION['user_id'] + "'"; 
    if (mysql_query($query)) { 
     header('Location: index.php'); 
    } 
?> 

我也可以肯定的是,MySQL查询是正确的,因为我手动把它(减去的变量)上的phpMyAdmin。

任何帮助,将不胜感激!

+2

因为在PHP中至少的连接用'.'做,而不是与'+' –

+1

也请注意,'mysql_'构造函数[**,不赞成使用PHP 5.5 **的(HTTPS:/ /wiki.php.net/rfc/mysql_deprecation),并且彻底[**在PHP 7 **中被移除](https://wiki.php.net/rfc/remove_deprecated_functionality_in_php7#extmysql)。请考虑切换到[** MySQLi **](http://php.net/manual/en/book.mysqli.php)或[** PDO **](http://php.net/manual/ en/book.pdo.php),确保您还使用[**参数化查询**](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)来防止[** SQL注入**](https://en.wikipedia.org/wiki/SQL_injection):) –

+1

在PHP中,您使用'.'连接。如果您没有对这些输入进行过滤,您将会很快成为最好的队友(https://xkcd.com/327/)。 – Stuart

回答

-1

将“+”更改为“。”。连接并添加连接到mysql_query函数。

<?php 
    require 'core.inc.php'; 
    require 'connect.inc.php'; 
    // ALWAYS parse data from client to prevent SQL Inyection 
    $clout = intval($_POST['variable']); 
    // Change "+" to "." to concatenate 
    $query = "UPDATE `users` SET `clout` = `clout` + ".$clout." WHERE `id` = '".$_SESSION['user_id']."'"; 
    // Add connection and you should use "mysqli" 
    if (mysql_query($query, $conn)) 
    { 
     header('Location: index.php'); 
    } 
?> 
相关问题