管理员验证系统PHP和mysqli(程序)

时间:2016-05-08 20:55:02

标签: php mysql mysqli

function activate($con, $email){
    $email = mysqli_real_escape_string($con, $email);
    return mysqli_query($con, "UPDATE `users` SET `active` = 1 WHERE `email` = '".$email."'");
}

if($role == 'Administrator'){
        $query = mysqli_query($con, "SELECT * FROM `users` WHERE `active` = 0");
        if(mysqli_num_rows($query) > 0){
            while($row = mysqli_fetch_assoc($query)){
                $email = $row['email'];
                $name = $row['name'];
                $surname = $row['surname'];
                echo $name . ' ' . $surname . ' - ' . $email . '<form method="post"><input type="submit" name="activate" value="Activeaza"></form></br>';
                if(isset($_POST['activate']))
                activate($con, $email);
            }           
        }

    }

这是我的代码。我想为管理员制作验证页面,以便他可以验证用户。激活用户时使用此代码可激活所有用户。我不知道如何逐个退出变量。谢谢,我是php的初学者:D

2 个答案:

答案 0 :(得分:0)

不是为每个用户创建一个表单,而是创建一个表单,并使用while循环将所有用户输入到表单中,并为每个用户提供一个不同的标识符,例如用户ID。

您可以使用HTML select或为每个用户添加一个带复选框的行

然后将代码放在表单之外。

if(isset($_POST['activate']))    
activate($con, $email);

如果使用复选框方法,则可以使用修改后的激活功能一次激活多个用户

答案 1 :(得分:0)

你不需要退出那个,但你在循环中做了太多的事情

由于您没有在表单上指定操作,因此表单必须在提交时提交给页面本身。你可以分开它。

因此您可以在表单中添加:

echo $name . ' ' . $surname . ' - ' . $email . '<form method="post">
<input type="submit" name="activate" value="Activeaza">
<input type="hidden" name="email" value=\"'. $email . \"'>
</form></br>';

并在代码顶部添加:

if ( $SERVER['REQUEST_METHOD'] == 'POST' )
{
     $email = $_POST['email'];
     activate($con,$email);
}
希望这会有所帮助 要了解有关隐藏输入类型的更多信息,请参阅此链接:
https://www.w3.org/TR/html-markup/input.hidden.html