【问题标题】:Display URL variables in webpage using PHP使用 PHP 在网页中显示 URL 变量
【发布时间】:2012-01-02 23:41:13
【问题描述】:

我有数据通过 HTTP post 传递到另一个页面。本质上是将数据从一台服务器传递到另一台服务器。在目标页面上,我无法让 php 看到 URL 变量。我做错了什么吗?有没有更好的方法来做到这一点?

网址字符串:

form_listener.php?
使用ContactID = 101460&inf_custom_ddState = IN&inf_custom_txtZipCode = 46268&inf_custom_ddClientDegreeId = 729&inf_custom_txtCity =印第安纳波利斯和inf_custom_txtLastName =安德森和inf_form_xid = f28acf3ff321cb273cb4696e996008e0&inf_custom_ddStartSemesterYear = Fall2012&inf_custom_ddMilitaryAffiliation =是&infusionsoft_version = 1.23.11.30&inf_custom_txtFirstName =有人&inf_custom_txtAddress2 = inf_custom_txtAddress1 = 4707 +东+ 72 +街与inf_custom_ddHSGradYearCustomLiberty = 2011&inf_form_name = LibertyOnline&inf_option_Signmeupforthenewsletter = 432&inf_custom_txtEmailAddress = killing.fields%40gmail.com&inf_custom_affiliateid =D80576&inf_custom_ddEducationLevel=CLGJ&captcha.typed=jydqb

PHP 代码:

$ddState= $_GET['inf_custom_ddState'];

echo $_GET['ddState'];

?>

【问题讨论】:

  • 您的网址长度为 684 个字符。您可能会遇到问题,因为它包含超过 255 辆汽车。 不,好像我错了:stackoverflow.com/questions/417142/…
  • 我认为最后一行应该是echo $ddState?
  • @JMax 标准对 URL 长度没有任何限制,但是一些浏览器会人为地限制。 IE 是我所知道的最低的,只有 4096 个字符。
  • @tandu 服务器也可以限制它;见stackoverflow.com/q/1289585/212218

标签: php forms url variables


【解决方案1】:

你可以使用任何一种方式

echo $_GET['inf_custom_ddState']; 

或者

$ddstate=$_GET['inf_custom_ddState']; 
echo $ddstate;

【讨论】:

    【解决方案2】:
    $ddState= $_GET['inf_custom_ddState'];
    
    echo $ddState;
    // or 
    echo $_GET['inf_custom_ddState'];
    

    【讨论】:

      【解决方案3】:

      首先,确保您的页面正在获取请求参数。尝试$_REQUEST['inf_custom_ddState'] 或使用print_r($_REQUEST) 打印所有变量。

      $_REQUEST 是一个关联数组,默认包含$_GET$_POST$_COOKIE 的内容。如果有任何东西传递到页面,那么它应该被打印出来。

      【讨论】:

        【解决方案4】:

        当您使用$_GET 时,您是在告诉 php 该变量来自 URL。 通过这样做:

        $ddState = $_GET['inf_custom_ddState'];

        您正在“创建”一个具有 $_GET['inf_custom_ddState'] 内容的局部变量 ($ddState),因此您不必再使用 $_GET 变量。

        所以你的回声可以有两种方式:

        1. echo $_GET['inf_custom_ddState'];
        2. echo $ddState;

        【讨论】:

          【解决方案5】:

          由于$_GET$_POST 是全局数组,您可以使用以下代码查看值:

          echo "<pre>Get data</pre>";
          print_r($_GET);
          echo "<pre>Post data</pre>";
          print_r($_POST);
          

          检查请求中是否设置了这些变量。如果没有,请尝试使用 post 方法,因为它可以容纳比 get 方法更多的数据。

          【讨论】:

            【解决方案6】:

            URI 中没有ddState。您想要:echo $ddState;(因为这是您将数据复制到的变量)或者更确切地说(为了避免打开 XSS 安全漏洞)您真正想要:

            echo htmlspecialchars($ddState);
            

            【讨论】:

              【解决方案7】:

              你的回声应该只是echo $ddState;

              您正在将 URL 变量的值分配给局部变量。完成后,您将处理本地范围内的内容。

              【讨论】:

                猜你喜欢
                • 2015-06-26
                • 2017-07-24
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2021-09-27
                • 1970-01-01
                相关资源
                最近更新 更多