代码之家  ›  专栏  ›  技术社区  ›  fabrik

缺少PHP REST变量

  •  2
  • fabrik  · 技术社区  · 14 年前

    this tutorial processRequest 方法:

    ...
    switch ($request_method){
    case 'get':
            $data = $_GET;
            break;
    case 'post':
            $data = $_POST;
            break;
     ...
    

    当$POST发生时,似乎忽略了$GET变量(至少在我的测试设置中发生了这种情况-不是同一个脚本,但想法类似)。

    我的测试用例:

    //URL: `example.com/?iam=get`
    //HTML:
    <form action="?iam=get" method="post">
        <input type="text" name="textinput" />
        <input type="submit" />
    </form>
    

    印刷 $data

    Array ( [iam] => get ) //Opening the page without submit
    Array ( [textinput] => angry fabrik ) //Submitting the form
    

    (由于表单的操作,url没有改变,但是$GET变量 iam 不见了。)

    我经常混合使用$GET和$POST变量(AJAX请求、处理表单等),但现在我确信我忽略了一些东西。我的误会呢?

    提前谢谢你, 法布里克

    3 回复  |  直到 14 年前
        1
  •  1
  •   Tobias Reithmeier    14 年前

    请求方法总是在这里post,所以switch命令忽略了“get”部分。

    尝试

    ...
    switch ($request_method){
    case 'get':
            $data_get = $_GET;
            break;
    case 'post':
            $data_post = $_POST;
            $data_get = $_GET;
            break;
     ...
    

        2
  •  0
  •   thomasmalt    14 年前

    在上面提供的代码中 $data

    如果提交表单,则忽略$GET。但无论哪种情况,$GET仍将包含 "iam “变量,您可以随时访问它

    $iam = $_GET['iam'];
    
        3
  •  0
  •   Belinda    14 年前

    $请求可能是您要找的。 $_REQUEST Manual . 如果你不想信任它(它也存储$COOKIE),你可以写你自己的合并$GET和$POST。