0

我正在使用 htpasswd 文件的 file_get_contents() 显示所有当前用户(作为表单开头的复选框对象)的表单提交页面 (POST),并允许用户使用 exec() 更新这些用户功能。这一切都正常工作,除了用户通过表单提交按钮提交更改后页面上显示的用户列表没有更新。我知道发生这种情况的原因是因为更新结果的代码发生在结果的回显之后。

所以我的问题是:有什么方法可以在执行实际函数之前修改/更新输出(使用 PHP)?我已经包含了我的基本代码结构以帮助可视化我的情况:

表格.php:

<form method="post">

<?php
    //Code to read htpasswd file, then output results as form input checkboxes
?>

<select name="action">
    <option value=""></option>
    <option value="delete"></option>
    <option value="change"></option>
    <option value="create"></option>
</select>

<input type="submit">

<?php
    if($_POST['action'] !== '')
    {
        switch($_POST['action'])
        {
            case delete:
            //run exec() command to delete each user

            case change:
            //run exec() command to change pw for each user

            case create:
            //run exec() command to create a user
        }
    }
?>

如果 PHP 无法做到这一点,那么 Javascript 能胜任吗?

4

1 回答 1

0

在 j08691 和 Ariane 的帮助下,我能够通过交换代码来获得预期的结果,如下所述:

<form method="post">

<?php
    if(isset($_POST['action']) && $_POST['action'] !== '')
    {
        switch($_POST['action'])
        {
            case delete:
            //run exec() command to delete each user

            case change:
            //run exec() command to change pw for each user

            case create:
            //run exec() command to create a user
        }
    }
?>

<?php
    //Code to read htpasswd file, then output results as form input checkboxes
?>

<select name="action">
    <option value=""></option>
    <option value="delete"></option>
    <option value="change"></option>
    <option value="create"></option>
</select>

<input type="submit">
于 2013-08-23T13:19:43.437 回答