更新用户信息

时间:2015-07-18 21:11:07

标签: php pdo

我尝试做的是update用户级别,但当我尝试更新用户时,由于某种原因,sets始终value为1。我不确定HTML部分是否错误或PHP部分是否错误,因为它看起来确实更新了,但它没有设置我要求它做的正确值。

这里是我的下面的代码(我知道有更好的方法可以在函数中调用它,但我只是想开始简单并引导我的方式上升)

if (isset($_POST['update'])) {
    $ulevel    = is_numeric($_POST['level']);
    $nusername    = $_POST['username'];

            $sql = $conn->prepare("UPDATE users SET level = :Level WHERE username = :Player");
            $sql->bindParam(':Player',$nusername);
            $sql->bindParam(':Level',$ulevel);
           if($sql->execute()){
                $msg =  $msg."Permission have been updated!";
            } else {
                $msg = $msg."Problems changing permissions";
            }

        }


?>

这是HTML论坛。

 <form action="" method="POST">
        <p>[Enhance '.$username.'\'s Player Permissions]</p>
        <input type="hidden" value="'.$username.'" name="username">
        User Level
        <input type=range min=0 max=5 name="level" value="'.$userLevel.'" id=fader step=1 oninput="outputUpdate(value)">
        <output for=fader id=volume>'.$userLevel.'</output><br>
</form>

$userlevel$username是获取数据$ username为$username = isset($_GET['u']) ? $_GET['u'] : die();且等级为$userLevel = $dbUser['level'];的变量。

2 个答案:

答案 0 :(得分:0)

您使用来自is_numeric()的布尔响应来设置级别,它只会返回1或0,具体取决于level的值

$ulevel = is_numeric($_POST['level']);

尝试

if (isset($_POST['update']) && is_numeric($_POST['level'])) {
   $ulevel = $_POST['level'];

   ...
}

答案 1 :(得分:0)

老兄      $ulevel = is_numeric($_POST['level']); 如果条件如

,is_numeric在回答中返回1或0
$ulevel = echo(is_numeric($_POST['level'] && !empty(is_numeric($_POST['level']))?$_POST['level']:"";

好的