Check query string (PHP)

后端 未结 5 1954
闹比i
闹比i 2021-01-14 21:21

I use a query string, for example test.php?var=1.

How can I check if a user types anything after that, like another string...

I try to redirect

相关标签:
5条回答
  • 2021-01-14 21:58

    test.php?a=23?var=123 (this is a bad link, redirect to index..)

    In this case, you only have one variable sent, named "a" containing the value "a?var=123", therefore it shouldn't be a problem for you.

    test.php?var=123132&a=23 (this is a bad link, redirect to index..)

    In this case you have two variables sent, ("a" and "var").

    In general you can check the $_GET array to see how many variables have been sent and act accordingly, by using count($_GET).

    0 讨论(0)
  • 2021-01-14 22:02

    I'm not sure I fully understand what you want, but if you're not interested in the positioning of the parameters this should work:

    if ( isset($_GET['var']) && count($_GET) > 1 ) {
        //do something if var and another parameter is given
    }
    
    0 讨论(0)
  • 2021-01-14 22:08

    I think you are trying to get rid of unwanted parameters. This is usually done for security reasons.

    There won't be a problem, however, if you preinitalize every variable you use and only use variables with $_GET['var'], $_POST['var'] or $_REQUEST['var'].

    0 讨论(0)
  • 2021-01-14 22:10

    Look in $_SERVER['QUERY_STRING'].

    0 讨论(0)
  • 2021-01-14 22:11

    Similar to Tom Haigh’s answer, you could also get the difference of the arguments you expect and those you actually get:

    $argKeys = array_keys($_GET);
    $additionalArgKeys = array_diff($argKeys, array('var'));
    var_dump($additionalArgKeys);
    
    0 讨论(0)
提交回复
热议问题