php中的复选框问题
我的问题是当用户点击复选框时,用户被激活。此代码运行良好。但当用户再次单击取消复选框时,用户再次被取消激活。怎么做?这是我的工作代码 当用户单击复选框时激活用户php中的复选框问题,php,javascript,Php,Javascript,我的问题是当用户点击复选框时,用户被激活。此代码运行良好。但当用户再次单击取消复选框时,用户再次被取消激活。怎么做?这是我的工作代码 当用户单击复选框时激活用户 if($_GET['doAction'] == 'Activate') { if(!empty($_GET['q'])) { $userid = $_GET['q']; $conn = db_connection(); $query = "UPDATE user SET activ
if($_GET['doAction'] == 'Activate') {
if(!empty($_GET['q'])) {
$userid = $_GET['q'];
$conn = db_connection();
$query = "UPDATE user SET activate = '1' WHERE userid = '".$userid."' ";
$result=$conn->query($query);
}
}
这是我的复选框
<input type="checkbox" name="app" onchange="callUser(this.value,doAction.value);" value="<?php echo $userid;?>" <?php if($row['approved'] == '1'){ echo "checked=\"true\""; }?>/>
<input type="hidden" name="doAction" id="doAction" value="Approved" />
如果用户取消选中doAction='Deactivate'复选框,您需要什么?
在这里发布callUser函数的源代码如果用户取消选中复选框而不是doAction='Deactivate'?
在此处发布callUser函数的源代码您应该发送复选框的状态,而不是隐藏字段值
onchange="callUser(<?php echo $userid;?>,this.value);"
另外,请注意,您的代码示例和我的anwser都非常不安全。您很容易受到SQL注入攻击和潜在的权限问题
编辑:修复不发送用户ID的问题。您应该发送复选框的状态,而不是隐藏字段值
onchange="callUser(<?php echo $userid;?>,this.value);"
另外,请注意,您的代码示例和我的anwser都非常不安全。您很容易受到SQL注入攻击和潜在的权限问题
编辑:修复不发送用户ID。更新:鉴于刚刚公布的Javascript方法破坏了网页的默认表单发送功能,请忽略此答案
提交表单时,未选中的复选框不会传回服务器。因此,在这种情况下:
if($_GET['doAction'] == 'Activate') {
if(!empty($_GET['q'])) {
$userid = $_GET['q'];
$conn = db_connection();
if (!empty($_GET['app'])) {
$query = "UPDATE user SET activate = '1' WHERE userid = '".$userid."' ";
}
else {
$query = "UPDATE user SET activate = '0' WHERE userid = '".$userid."' ";
}
$result=$conn->query($query);
}
}
希望这有帮助
此外,最好使用参数并将变量绑定到SQL,而不是串接字符串。这将大大有助于防止SQL注入攻击。更新:鉴于刚刚公布的Javascript方法破坏了网页的默认表单发送功能,请忽略此答案
提交表单时,未选中的复选框不会传回服务器。因此,在这种情况下:
if($_GET['doAction'] == 'Activate') {
if(!empty($_GET['q'])) {
$userid = $_GET['q'];
$conn = db_connection();
if (!empty($_GET['app'])) {
$query = "UPDATE user SET activate = '1' WHERE userid = '".$userid."' ";
}
else {
$query = "UPDATE user SET activate = '0' WHERE userid = '".$userid."' ";
}
$result=$conn->query($query);
}
}
希望这有帮助
此外,最好使用参数并将变量绑定到SQL,而不是串接字符串。这将大大有助于防止SQL注入攻击。另一件事是,您不会使用值来设置其是否已选中
checked=“checked”
表示在输入标记中启用
那么谁说它没有被发送是正确的呢?你最好的检测方法就是使用
isset($\u请求['checkBx'])
例如
另一件事是您不使用值来设置是否选中
checked=“checked”
表示在输入标记中启用
那么谁说它没有被发送是正确的呢?你最好的检测方法就是使用
isset($\u请求['checkBx'])
例如
您正在调用JavaScript函数callUser
。你能发布这个函数吗?html中根本没有Activate
word。是否遗漏了某些内容?选中复选框时,其值为(在URL的?
部分中),未选中时,该复选框将丢失。您正在调用JavaScript函数callUser
。你能发布这个函数吗?html中根本没有Activate
word。你遗漏了什么吗?选中复选框时,其值为(在URL的?
部分中),未选中时,其值为。或者你可以使用mysql\u real\u secape\u string($userid)
,效果一样,但网站却很少work@barkermn01else{$query=“更新用户集激活='0',其中userid='.$userid.“'”;}
此语句将永远不会执行,因为我正在从数据库检索app
的值。app应仅在其处于活动状态时发送。是否每次都有一些javascript激活复选框?或者可以使用mysql\u real\u secape\u字符串($userid)
同样好,但却少了一个该死的站点work@barkermn01else{$query=“UPDATE user SET activate='0'其中userid='“$userid.”“;}
此语句将永远不会执行,因为我正在从数据库中检索app
的值。app应该只在它处于活动状态时发送。是否每次都有一些javascript激活复选框?对安全性的一个常见误解是,它是一个附加组件或修补程序,稍后再执行。安全系统必须设计为从一开始就安全,以获得最佳效果。这也是更多的工作,以添加所有比你去做,就像代码注释。谢谢你的建议。您的代码正在运行。再次感谢。:-)对安全性的一个常见误解是,它是一个附加组件或修补程序,以后再做。安全系统必须设计为从一开始就安全,以获得最佳效果。这也是更多的工作,以添加所有比你去做,就像代码注释。谢谢你的建议。您的代码正在运行。再次感谢。:-)
if(isset($_REQUEST['checkbx'])){
// code for they are enabled
}else{
// code for they are disabled
}