我有令牌系统,每次你提交表格时,你的总代币都需要-1。
我使用common.php
$ses_sql="Select * from users where name='testuser' and id='1'";
$result = $conn->query($ses_sql);
$row = $result->fetch_assoc();
$token = $row['tokens'];
因此,在菜单栏旁边,无论您在哪个页面,它都会查看您的总积分,以便您可以看到它。
现在来到表单部分。页面名称adduser.php
<?
// Included on all pages.
include 'include/common.php';
echo $token;
?>
<form method="post" action="adduser.php?save=all">
<input type="text" name="username">
</form>
<?
$kalk = $token - 1;
if (isset($_GET['save']) && $_GET['save'] == 'all'{
$sqllog = "UPDATE `reseller` set `tokens`='$kalk' where id='1'";
$check1 = mysqli_query($conn,$sqllog);
}
?>
所有这一切工作,完美。但请记住页面顶部的标注$ token在提交后不会刷新,但进入其他页面或刷新浏览器后值将更新。感谢帮助。
答案 0 :(得分:2)
旁注编辑:此答案基于OP的原始帖子https://stackoverflow.com/revisions/33807477/1和第二版https://stackoverflow.com/revisions/33807477/2,并在发布后进行了编辑。
好的,我提交了这个,因为我没有在评论中从OP获得任何其他反馈,并指出语法错误。
这行代码:
$sqllog = 'UPDATE `reseller` set `tokens`='$kalk' where id='1'";
^ single ^ double
您将使用单引号打开您的对帐单,然后使用双引号将其关闭。
错误检查会抛出语法错误消息。
需要阅读:
$sqllog = "UPDATE `reseller` set `tokens`='$kalk' where id='1'";
// or where id=1 but doubt that would make a difference.
已完成
$check1 = mysqli_query($conn,$sqllog) or die(mysqli_error($conn));
表示语法错误。
“$令牌在提交后不会刷新”
那是因为您需要自己刷新页面或使用重定向方法。
在堆栈上看看这个Q&amp; A:
您也可以使用SQL注入。使用准备好的声明。
将error reporting添加到文件的顶部,这有助于查找错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
旁注:只应在暂存时进行显示错误,而不是生产。
其他调试工具:
var_dump()
http://php.net/manual/en/function.var-dump.php print_r()
http://php.net/manual/en/function.print-r.php 并回显您的查询。