使用户活动/非活动php mysql

时间:2013-10-31 21:43:48

标签: php mysql

我正在尝试为用户可以登录和编辑用户/产品的网站构建管理员登录部分。我希望能够使用户和产品处于活动/非活动状态,而不是从数据库中删除它们。

我知道我可以将tinyint(1)用于真值或假值(活动或非活动)。在我的数据库中,我有一个“isactive”字段,其数据类型为tinyint(1),并将默认值设置为1.(希望这将表示真或活动)

在我的编辑用户表单顶部,我有以下代码:

if (isset($_GET['id'])) {
$_SESSION['editId'] = $_GET['id'];
$status = $_GET['isactive']; 
} else {
$_SESSION['editId'] = 0;    
}

我编辑用户的功能是:

function db_updateUser($user, $id, $connection) {

foreach ($user as $key => $value) {
    $$key = $value;                         
}   
$sql = "UPDATE  tbl_users SET name='$name', username='$username',password='$password', email='$email', level='$level', isactive='$isactive' WHERE id='$id'";
$result = mysqli_query($connection, $sql);  
$numRows = mysqli_affected_rows($connection);
if ($numRows >= 1) {
    return true;    //user updated
} else {
    return false;   //user not updated
}   
}

表单选择如下所示:

<label>Active : </label>
<select name="status">
<option value="Active" <?php if ($status=="Active" || !isset($status)) echo "selected='selected'"; ?>>Active</option>
<option value="Inactive" <?php if ($status=="Inactive") echo "selected='selected'"; ?>>Inactive</option>
</select>

我收到错误“Undefined index:isactive”

如果有人能指出我正确的方向,我会非常感激。感谢。

1 个答案:

答案 0 :(得分:2)

假设:

<select name="status">

您应该使用

$_POST['status'];

因为这是特定表单字段提交的名称。

同样,不要使用该foreach()循环来重新创建extract()。这是非常糟糕的编程习惯,也是非常不安全的。考虑有人将脚本提交到您的脚本并提交_POST = foo的情况。现在你的$ _POST数组已经GONE。