簡體   English   中英

是否有可能用php讀取表單的操作值?

[英]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>&lt;ROOT&gt;</small><b>/'.dir_scripts.'</b></code> or <code><small>&lt;FRAMEWORK&gt;</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>&lt;ROOT&gt;</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不會返回任何其他數據。

在此處可以找到HTML5標准中的相關部分 ,尤其是表單數據集的構造邏輯

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM