更新用户信息

问题描述:

我想要做的是update用户级别,但当我尝试更新用户时,它总是setsvalue为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 = isset($_GET['u']) ? $_GET['u'] : die();和水平$userLevel = $dbUser['level'];

您正在使用从is_numeric()布尔响应设置级别,它只是以往任何时候都返回取决于值1或0 level

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

尝试

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

    ... 
} 
+0

谢谢我刚刚发现这是我发布这个问题时的问题。 –

花花公子在
$ulevel = is_numeric($_POST['level']); is_numeric在回答中返回1或0如果条件如

$ulevel = echo(is_numeric($_POST['level'] && !empty(is_numeric($_POST['level']))?$_POST['level']:""; 

现在好吧