2015-07-18 161 views
-1

我想要做的是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'];

回答

0

您正在使用從is_numeric()布爾響應設置級別,它只是以往任何時候都返回取決於值1或0 level

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

嘗試

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

    ... 
} 
+0

謝謝我剛剛發現這是我發佈這個問題時的問題。 –

0

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

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

現在好吧