我尝试做的是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'];
的变量。
答案 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']);
如果条件如
$ulevel = echo(is_numeric($_POST['level'] && !empty(is_numeric($_POST['level']))?$_POST['level']:"";
好的