Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.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 - Fatal编程技术网

访问PHP函数的替代方法

访问PHP函数的替代方法,php,Php,目前,我正在使用标准PHP开发一个应用程序。因此,存在从表单调用的各种函数。一些示例包括注册、登录、注销等 我使用includes文件夹中的phpscript.php文件,而不是为每个函数创建单独的文件。要从html输入执行函数,我在URL中填充?action=functionName。在脚本文件中,我使用switch/case树根据S_GET['action']变量执行适当的函数 有没有更好的方法来实现对PHP函数的HTML调用?没有,这是将HTML表单与PHP脚本接口的正确方法。其他替代方案

目前,我正在使用标准PHP开发一个应用程序。因此,存在从表单调用的各种函数。一些示例包括注册、登录、注销等

我使用includes文件夹中的
phpscript.php
文件,而不是为每个函数创建单独的文件。要从html输入执行函数,我在URL中填充
?action=functionName
。在脚本文件中,我使用switch/case树根据
S_GET['action']
变量执行适当的函数


有没有更好的方法来实现对PHP函数的HTML调用?

没有,这是将HTML表单与PHP脚本接口的正确方法。其他替代方案包括使用URL重写(将类似
/actions/functionname/param
的内容转换为
?action=functionname¶m=x
),但基本原则保持不变。

为了您的理智。。。考虑一个脚本来处理所有请求,如上面的请求。类似于/process_action.php。您可以处理统一的操作,例如:检查以确保函数存在、检查已登录的用户、连接到数据库、创建共享资源等

如果您使用的是Apache,那么可以使用mod rewrite使URL变得漂亮。你可以转身

/actions/function/?restofquery
进入

通过在网站的.htaccess文件中使用类似以下内容

RewriteEngine On
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^/actions/([-_a-zA-Z0-9]+)/?$ /process_action.php?action=$1&%1 [L]

作为旁注,你的问题听起来像是你即将发现答案。有几个很棒的框架,但不要因此而气馁。边做边学:)

我可以用?action=deleteALL或其他一些猜测来点击你的url吗?考虑一下学习使用@Dagon,不。那不行,因为所有其他功能都依赖于POST值。GET仅用于将按钮操作定向到函数。@meager,这是一个好主意,但该项目的一个要求是最大限度地降低函数性并最小化外部依赖性。这意味着没有框架…两者都可以发布到url get\post,我永远不会公开这样的函数名。问题是,这个项目有一个最小的依赖性需求,或者我会从在心跳中集成Zend或CodeIgniter开始。
RewriteEngine On
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^/actions/([-_a-zA-Z0-9]+)/?$ /process_action.php?action=$1&%1 [L]