开发者

wordpress / PHP - acessing post and get variables

开发者_开发技巧

Could anyone tell me why I am not retrieving info from a form I have submited within a wordpress template? The variables are being passed but they have no values?!?


New answer to an age-old question!

I came across this post, which didn't help, and wrote my own utility (happily shared and feel free to improve)

/* Get Parameters from $_POST and $_GET (WordPress)
    $param = string name of specific parameter requested (default to null, get all parameters
    $null_return = what you want returned if the parameter is not set (null, false, array() etc

    returns $params (string or array depending upon $param) of either parameter value or all parameters by key and value

    Note:   POST overrules GET (if both are set with a value and GET overrules POST if POST is not set or has a non-truthful value
            All parameters are trimmed and sql escaped
*/

function wordpress_get_params($param = null,$null_return = null){
    if ($param){
        $value = (!empty($_POST[$param]) ? trim(esc_sql($_POST[$param])) : (!empty($_GET[$param]) ? trim(esc_sql($_GET[$param])) : $null_return ));
        return $value;
    } else {
        $params = array();
        foreach ($_POST as $key => $param) {
            $params[trim(esc_sql($key))] = (!empty($_POST[$key]) ? trim(esc_sql($_POST[$key])) :  $null_return );
        }
        foreach ($_GET as $key => $param) {
            $key = trim(esc_sql($key));
            if (!isset($params[$key])) { // if there is no key or it's a null value
                $params[trim(esc_sql($key))] = (!empty($_GET[$key]) ? trim(esc_sql($_GET[$key])) : $null_return );
            }
        }
        return $params;
    }
}


Just came up against the same/similar issue; it is not ideal to use get variables on Wordpress as the URL is structured using mod_rewrite and has some reserved query parameters. The Wordpress Docs on query vars gives you a bit of a list, but it is not comprehensive.

In summary, the variables you were using may have been one of those reserved or modified or handled by Wordpress?

(I know this is an old question but it needs an answer or clarification.)


Please check form method

<form name="frmlist" method="post">


Try with this

print var_dump($_GET);
print var_dump($_POST);
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜