我想知道是否有方法来读取或提取从PHP中的表单标签的操作参数的值? <form name="..." method="post" action="*this*">
是否可以使用php读取表单的动作值?
此代码返回表单内的每个元素的每个值,但不能从form
- 标签本身:
foreach($_POST as $_FORM_value){
$_FORM_values[] = $_FORM_value;
}
任何想法?
现在,我只是用一个隐藏字段来执行正确的脚本:
<input type="hidden" name="load-script" value="ScriptName" readonly>
,并在极顶,前HTA页开始加载任何HTML被发送到客户端,我米检查瑟如果任何形式已经submittet:
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>';
}
}
}
//
我的想法是消除对隐藏的加载脚本元素的需求,并使用表单操作值来阻止加载哪个脚本。但那可能不可能?
不要太挑剔 - 但这些价值正是Apache“看到”的。两者都可能被HTTP重定向,重写规则或什么东西所改变。不能保证这些值与原始HTML字段相对应。 – 2014-09-03 23:41:33
你是对的,他们肯定会*不*包含'action =“...”'中的字符串。 ThomasK想要“使用表单动作值来阻止脚本加载”,也许他会发现'$ _SERVER [something]'足够有用。 – 2014-09-03 23:46:07