更新用户信息
问题描述:
我想要做的是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 = 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'];
...
}
答
花花公子在$ulevel = is_numeric($_POST['level']);
is_numeric在回答中返回1或0如果条件如
$ulevel = echo(is_numeric($_POST['level'] && !empty(is_numeric($_POST['level']))?$_POST['level']:"";
现在好吧
谢谢我刚刚发现这是我发布这个问题时的问题。 –