[英]is it possible to read the action value of a form with php?
我想知道是否有一种方法可以读取或提取php中表单标签的动作参数值? <form name="..." method="post" action="*this*">
这段代码返回表单内每个元素的每个值,但不是从form
-tag本身返回:
foreach($_POST as $_FORM_value){
$_FORM_values[] = $_FORM_value;
}
有任何想法吗?
现在,我只是使用一个隐藏字段来执行正确的脚本:
<input type="hidden" name="load-script" value="ScriptName" readonly>
最重要的是,在hta页开始加载并将任何html发送到客户端之前,我正在检查是否已提交任何表单:
if(isset($_POST['load-script'])){include dir_setup.'post.exec.php';}
在post.exec.php内部:
# get name from submit-button
foreach($_POST as $_FORM_ELEMENT_name=>$_FORM_ELEMENT_value){
if (!strncmp($_FORM_ELEMENT_name,'submit_',7)){
$_FORM_ELEMENT_submit_name=explode('_',$_FORM_ELEMENT_name);
$_FORM_name=$_FORM_ELEMENT_submit_name[1];
}
}
//
# fetch script
if(empty($_POST['load-script'])){
$_SITE_notices[] = '<code><b>load-script</b></code> in <code><b>'.$_FORM_name.'</b></code> is empty.';
}else{
$_FORM_SCRIPT=$_POST['load-script'].'.script.php'; // script to search for.
if(file_exists(dir_scripts.$_FORM_SCRIPT)){ // check locally first.
include dir_scripts.$_FORM_SCRIPT; // include script from local folder - if found.
}else{ // script was not found locally.
if($_SITE_FRAMEWORK){
if(file_exists(ROOT_FRAMEWORK.dir_scripts.$_FORM_SCRIPT)){ // check framework.
include ROOT_FRAMEWORK.dir_scripts.$_FORM_SCRIPT; // include script from framework - if found.
}else{ // script was not found in either directory; quit searching and throw error.
$_SITE_notices[] = 'Could not locate <code><b>'.$_FORM_SCRIPT.'</b></code> in either <code><small><ROOT></small><b>/'.dir_scripts.'</b></code> or <code><small><FRAMEWORK></small><b>/'.dir_scripts.'</b></code>';
}
}else{ // framework is not activated; quit searching and throw error.
$_SITE_notices[] = 'Could not locate <code><b>'.$_FORM_SCRIPT.'</b></code> in <code><small><ROOT></small><b>/'.dir_scripts.'</b></code>';
}
}
}
//
我的想法是消除对隐藏的load-script元素的需要,仅使用form action值确定要加载的脚本。 但这可能不可能吗?
该action
定义了要调用的脚本的URL。 因此,您可以在某些$_SERVER
变量中查看所有操作的详细信息-也许$_SERVER['PHP_SELF']
和$_SERVER['QUERY_STRING']
对您很有用。
不,就其定义提交表单只序列中的所有值form
问题,并将由定义的那些服务器的method
。 在PHP中,您可以使用以下命令检查回发中的内容:
var_dump($_POST); // assuming POST method
HTML不会返回任何其他数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.