kangjacob 2021-08-09 13:28 采纳率: 96.8%
浏览 41
已结题

为什么testTime一会跳两个数字,一会儿又减少一个数字


<?php
$servername = "--";
$username = "---";
$password = "--";
$dbname = "--";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
} else {
    echo '连接成功!<br>';
}
echo "userSex:".$_COOKIE['userSex'].'<br>';//从登陆页面获取
echo 'testTime:'.$_COOKIE['testTime'];//从登陆页面获取
/*
if( $_COOKIE['userSex']=='male'){
    echo $_COOKIE['userSex'];
}
echo '<br>';
echo 'userSex'. $_COOKIE['userSex'];
if($_COOKIE['userSex']=='female'){
    echo $_COOKIE['userSex'];
}
*/
$userName = $_COOKIE['userName'];
$userPassword = $_COOKIE['userPassword'];
$sql = "SELECT * FROM user_table WHERE userName='{$userName}' and userPassword='{$userPassword}'";//php的双引号里面可以放变量
$result = $conn->query($sql);
$row=$result->fetch_assoc();
if ($result->num_rows > 0) {
    setcookie('cautionWord', '健康开心每一天');
    setcookie('userRight', 'normalRight');
    setcookie('userSex', $row['userSex']);
    setcookie('testTime', $row['testTime'] + 1);
    //make sure the time of test
    $testTime = $_COOKIE['testTime'];
    $sql = "UPDATE  user_table SET testTime='{$testTime}' WHERE userName='{$userName}'";//insert the testTime
    $result = $conn->query($sql);
 //echo 'testTime:'.$tesTime;
    $userName = $_COOKIE['userName'];
    echo 'userName:' . $userName;
    $sql = "UPDATE  user_table SET testTime='{$testTime}' WHERE userName='{$userName}'";//insert the testTime
    if ($result = $conn->query($sql)) {
        echo 'insert successfully';
    } else {
        echo 'please insert again.';
    }
}else{
    echo 'there is no such customer!';
}
?>

登陆页面登陆之后,进入这个页面,原本是想要testTime加1就可以了,但是但先是 +2 ,然后再登陆一次,又是 -1,被整晕了

  • 写回答

2条回答 默认 最新

  • CSDN专家-showbo 2021-08-09 14:10
    关注

    登录页面怎么设置testTime这个cookie的?代码发来看下。

    一般记录登录次数直接sql语句+1就行了,不需要从cookie获取值来更新。要不客户端修改了cookie值代码逻辑全乱了。而且更新代码怎么执行了2 次。。

    if ($result->num_rows > 0) {
        setcookie('cautionWord', '健康开心每一天');
        setcookie('userRight', 'normalRight');
        setcookie('userSex', $row['userSex']);
        setcookie('testTime', $row['testTime'] + 1);
        //make sure the time of test
        $testTime = $_COOKIE['testTime'];
        ////////////直接数据库字段+1 就行了,而且额不需要执行2$sql = "UPDATE  user_table SET testTime=testTime+1 WHERE userName='{$userName}'";//insert the testTime
        //$result = $conn->query($sql);
     //echo 'testTime:'.$tesTime;
       // $userName = $_COOKIE['userName'];
       // echo 'userName:' . $userName;
        //$sql = "UPDATE  user_table SET testTime='{$testTime}' WHERE userName='{$userName}'";//insert the testTime
        if ($result = $conn->query($sql)) {
            echo 'insert successfully';
        } else {
            echo 'please insert again.';
        }
    }else{
        echo 'there is no such customer!';
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月17日
  • 已采纳回答 8月9日
  • 创建了问题 8月9日

悬赏问题

  • ¥15 使用yolov5-7.0目标检测报错
  • ¥15 对于这个问题的解释说明
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥20 java在应用程序里获取不到扬声器设备