Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用变量传递提交按钮名称?_Php_Html - Fatal编程技术网

Php 用变量传递提交按钮名称?

Php 用变量传递提交按钮名称?,php,html,Php,Html,我有很多不同形式的文件。所有表单都发送到同一个文件,该文件将包括要使用的正确文件,具体取决于提交按钮的名称。以下是一个例子: start.php: <form name="input" action="controller.php" method="post"> <input type="submit" name="dostuff1" value="SEND1" /> <input type="submit" name="dostuff2" valu

我有很多不同形式的文件。所有表单都发送到同一个文件,该文件将包括要使用的正确文件,具体取决于提交按钮的名称。以下是一个例子:

start.php:

<form name="input" action="controller.php" method="post">
    <input type="submit" name="dostuff1" value="SEND1" />
    <input type="submit" name="dostuff2" value="SEND2" />
</form>
现在,我正在寻找一种方法来抛弃整个“如果其他”部分。我想知道的是,是否可以发送一个带有按钮的表单,该按钮的名称中存储了一个变量,例如:

<input type="submit" name="action["dostuff1"]" value="SEND" />

注意:我仍然是一个noob(显然),我正在使用的应用程序将仅用于私人目的(这里不考虑安全性)。

您可以使用:

显然,这对安全来说是个糟糕的主意,但你确实说过:

我正在处理的应用程序将仅用于私人目的(这里不考虑安全性)

一个更好的安全理念(一般而言)是:

$files = array("dostuff1", "dostuff2");
foreach ($files as &$file) {
    if (isset($_POST[$file])) {
        include($file . ".php");
        break;
    }
}
unset($file);
您可以使用:

显然,这对安全来说是个糟糕的主意,但你确实说过:

我正在处理的应用程序将仅用于私人目的(这里不考虑安全性)

一个更好的安全理念(一般而言)是:

$files = array("dostuff1", "dostuff2");
foreach ($files as &$file) {
    if (isset($_POST[$file])) {
        include($file . ".php");
        break;
    }
}
unset($file);
首先

失去额外的报价

<input type="submit" name="action[dostuff1]" value="SEND">
然后,您可以检查该数组中的条目,例如

if (isset($_POST['action']) && is_array($_POST['action'])) {
    $keys = array_keys($_POST['action']);
    $key = reset($keys);
    if (!array_key_exists($key, $incs)) {
        throw new UnexpectedValueException('Bad key');
    }

    include $incs[$key];
}
首先

失去额外的报价

<input type="submit" name="action[dostuff1]" value="SEND">
然后,您可以检查该数组中的条目,例如

if (isset($_POST['action']) && is_array($_POST['action'])) {
    $keys = array_keys($_POST['action']);
    $key = reset($keys);
    if (!array_key_exists($key, $incs)) {
        throw new UnexpectedValueException('Bad key');
    }

    include $incs[$key];
}

你试过那样做吗?试着亲自去看看比到这里来等待回应要快。为什么?你不喜欢你做这件事的方式是什么?你试过吗?试着亲自去看看比到这里来等待回应要快。为什么?您不喜欢的工作方式是什么?@user574632为什么?“我正在开发的应用程序将仅用于私人用途(此处不涉及安全问题)”从问题中可以看出,这只是一种不好的做法,其他人可能会阅读并使用它code@user574632为什么?“我正在开发的应用程序将仅用于私人目的(此处不涉及安全性)”从问题中可以看出,这只是一种不好的做法,其他人可能会阅读并使用此代码