PHP脚本的多个表单提交选项的HTML最佳实践

时间:2011-11-02 21:59:56

标签: php html

我最终遇到的情况是,我将要在表格,一组div或其他内容中保留一个条目列表。每个条目都有多个可以对其执行的操作 - “编辑”,“删除”等

从UI的角度来看,我相对擅长CSS / HTML,但我仍然对表单中的信息管理感到朦胧。

我知道我可以使用GET表示法(addr.com?id=17&act=edit)使用超链接转到地址,我应该能够使用GET的PHP脚本读取值。这是......聪明吗?处理这种情况的方法呢?

我不确定它是否足够安全,或者是否有一种常见的方法来处理这种情况。你可以通过一种常见的方式处理这种情况的任何亮点都会很精彩。

2 个答案:

答案 0 :(得分:1)

我经常这样做,而且我几乎总是使用你所描述的GET符号。它可以很容易地将动作和记录的UID分开来进行操作。

e.g. /submit.php?action=edit&uid=17

然后我们可以简单地在PHP中路由多个操作:

<?php

$uid = $_REQUEST['uid'];
switch ( $_REQUEST['action'] ) {
    case 'edit':
        $notice = editRecord ( $uid );
        break;

    case 'delete':
        sqlQuery("DELETE FROM `records` WHERE `uid` = '$uid' LIMIT 1");
        $notice = 'The record has been removed.';
        break;

    case 'rename':
        $newname = $_REQUEST['name'];
        sqlQuery("UPDATE `records` SET `name` = '$newname' WHERE `uid` = '$uid' LIMIT 1");
        $notice = 'The record has been renamed.';
        break;

    default:
}

?>
<h1>Admin Panel</h1>
<?php if ( isset( $notice ) ) echo $notice; ?>

我们还可以在必要时使用POST保存编辑内容,上传图片等。因为我们依赖于$ _REQUEST超全局变量,所以$ _GET和$ _POST都被输入到它中,因此它适用于两种类型的表单提交。

答案 1 :(得分:1)

我没有使用GET进行这些操作的任何问题,因为它被广泛使用。但是,使用POST实际上可能会更安全一些(如果您保护免受CSRF攻击等等。)

这完全取决于您需要多少安全措施以及应用程序中的数据或操作的敏感程度。只要您记住某些安全原则,您就可以同时使用GET和POST。 对于GET和POST,始终重要的是永远不要相信输入,转义和过滤,并尝试阻止CSRF和其他攻击。

我建议您在网上阅读一些教程,并尝试亲自了解哪种请求方法是最佳选择。