【问题标题】:Make a user active/inactive PHP MySQL使用户活跃/不活跃 PHP MySQL
【发布时间】:2013-11-12 02:03:32
【问题描述】:

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

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

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

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>

我收到一个错误“未定义的索引:已激活”

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

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    给定:

    <select name="status">
    

    你应该使用

    $_POST['status'];
    

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

    同样,不要使用 foreach() 循环来重新创建 extract()。这是非常糟糕的编程实践,而且非常不安全。考虑一下有人破解了您的脚本提交并提交_POST = foo 的情况。现在你的 $_POST 数组已经消失了。

    【讨论】:

    • 感谢您抽出宝贵时间发表评论。我现在使用了 '$status = $_POST['status'];'但我仍然收到警告 Undefined index: status...
    • 如果您的表单使用method="get" 而您使用的是$status = $_POST['status'];,那么是的,它将报告它未定义。 @PhilPountney
    猜你喜欢
    • 2013-02-27
    • 1970-01-01
    • 2014-02-16
    • 2012-08-31
    • 2012-11-07
    • 1970-01-01
    • 1970-01-01
    • 2022-07-22
    • 1970-01-01
    相关资源
    最近更新 更多